Введение
JScript NET — это язык программирования .NET, разработанный Microsoft. Основные различия между JScript и JScript NET можно суммировать следующим образом: во-первых, JScript является скриптовым языком, и как таковой программы (или, точнее, скрипты) могут выполняться без предварительной компиляции кода. Это не относится к компилятору командной строки JScript NET, поскольку эта версия нового поколения полагается на среду выполнения .NET Common Language Runtime (CLR) для выполнения, что требует компиляции кода в Common Intermediate Language (CIL), ранее известную как Microsoft Intermediate Language (MSIL), перед запуском. Тем не менее, JScript NET по-прежнему обеспечивает полную поддержку интерпретации кода во время выполнения (например, через конструктор Function или функцию eval), и интерпретатор может быть доступен пользовательским приложениям, использующим движок JScript NET через интерфейсы VSA. Во-вторых, JScript имеет прочную основу в технологиях Microsoft ActiveX/COM и в основном использует компоненты ActiveX для обеспечения большей части своей функциональности (включая доступ к базам данных через ADO, работу с файлами и т. д.), в то время как JScript NET использует .NET Framework для предоставления эквивалентной функциональности. Для обеспечения обратной совместимости (или в тех случаях, когда эквивалентная библиотека .NET отсутствует), JScript NET по-прежнему обеспечивает полный доступ к объектам ActiveX через .NET/COM Interop, используя как конструктор ActiveXObject, так и стандартные методы класса .NET Type. Хотя .NET Framework и языки .NET, такие как C# и Visual Basic .NET, получили широкое распространение, JScript NET не привлек особого внимания ни со стороны СМИ, ни со стороны разработчиков. Он не поддерживается в основном инструменте разработки Microsoft, Visual Studio .NET. Однако ASP.NET поддерживает JScript NET.
JScript NET is a NET programming language developed by Microsoft. The primary differences between JScript and JScript NET can be summarized as follows:
Firstly, JScript is a scripting language, and as such programs (or more suggestively, scripts) can be executed without the need to compile the code first. This is not the case with the JScript NET command line compiler, since this next generation version relies on the NET Common Language Runtime (CLR) for execution, which requires that the code be compiled to Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL), code before it can be run. Nevertheless, JScript NET still provides full support for interpreting code at runtime (e. g., via the Function constructor or the eval function) and indeed the interpreter can be exposed by custom applications hosting the JScript NET engine via the VSA interfaces. Secondly, JScript has a strong foundation in Microsoft's ActiveX/COM technologies, and relies primarily on ActiveX components to provide much of its functionality (including database access via ADO, file handling, etc. ), whereas JScript NET uses the NET Framework to provide equivalent functionality. For backwards compatibility (or for where no NET equivalent library exists), JScript NET still provides full access to ActiveX objects via NET / COM Interop using both the ActiveXObject constructor and the standard methods of the NET Type class. Although the NET Framework and NET languages such as C# and Visual Basic NET have seen widespread adoption, JScript NET has never received much attention, by the media or by developers. It is not supported in Microsoft's premier development tool, Visual Studio NET. However, ASP. NET supports JScript NET.
Языковые различия
Ниже приведены яркие примеры языковых различий между JScript .NET и другими языками .NET, в том числе сопоставления.
Различия с C#
JScript NET не требует наличия главной функции, которую операционная система должна вызывать напрямую при запуске приложения JScript NET, поэтому логика программы JScript NET может основываться на глобальном коде. Благодаря очень слабой системе проверки типов, JScript NET легко освоить, поскольку явное объявление типов не является обязательным. JScript NET не требует явных ссылок на базовую библиотеку классов .NET Framework, так как некоторые функции, присутствовавшие в более ранних версиях JScript, доступны и в JScript NET (например, функции для вычисления тангенса угла в прямоугольном треугольнике). JScript NET тесно связан с синтаксисом языка C, что делает его легким в изучении для разработчиков, знакомых с C#, Java или C++. Хотя JScript NET можно использовать для создания приложений Windows Forms, он может столкнуться с некоторыми трудностями, поскольку делегаты можно только использовать в JScript NET, но не создавать. Таким образом, реализовать пользовательские события в JScript NET достаточно сложно.
Разница с Java
Синтаксис и лексические правила JScript NET схожи с синтаксисом Java, поскольку оба языка произошли от C. Изначально JScript был реализацией Microsoft стандарта ECMAScript, более известного как JavaScript, хотя он не имеет отношения к Java. Поэтому пользователям Java и других языков, произошедших от C, будет проще освоить JScript. JScript NET позволяет разработчикам использовать переменные без явного указания типа, а также может определять их тип на основе использования для оптимизации скомпилированного кода. В отличие от этого, Java требует, чтобы всем переменным был задан тип. JScript NET позволяет добавлять свойства и методы к объектам во время выполнения, в то время как объекты Java всегда соответствуют своему объявленному интерфейсу. JScript NET поддерживает глобальные переменные, чего не делает Java.
Различия с более старыми версиями JScript
JScript .NET позволяет разработчикам объявлять переменные и функции с информацией о типе (например, var x : String;), в то время как для переменных и функций JScript объявление информации о типе невозможно (например, var x;). Скрипты JScript .NET не интерпретируются, а выполняются независимо. При выполнении приложение JScript .NET вызывает CLR. CLR выполняет инструкции CIL без использования интерпретатора. JScript .NET может выполняться без браузера или другого механизма сценариев, поскольку компилятор способен генерировать автономные исполняемые файлы и сборки. Однако для их запуска все равно требуется установленная платформа .NET Framework. JScript .NET предоставляет доступ к BCL (базовой библиотеке классов) .NET Framework, что значительно расширяет функциональность. JScript .NET доступен только как язык сценариев для ASP.NET – технологии, используемой для генерации веб-страниц; таким образом, JScript .NET выполняет аналогичную роль, что и PHP и другие серверные языки сценариев. Однако Internet Explorer по-прежнему использует устаревший механизм JScript, поэтому JScript .NET нельзя использовать для написания сценариев для веб-страниц (или HTA или HTC). В этом плане JScript гораздо более универсален, чем JScript .NET.