Основы C#. Урок 2. Что такое NET Runtime?
Если перевести слова NET Runtime на русский язык, то мы получим
что-то вроде "Среда выполнения". Именно вы этой среде и выполняется код,
получаемый в результате компиляции программы написанной на C#. NET
Runtime основын не на ассемблере (т. е. не на коде, родном для
процессора), а на некотором промежуточном коде. Отдаленно он напоминает
виртуальную Java машину. Только если в случае Java у нас был только один
язык для виртуальной машины, то для NET Runtime таких языков может быть
несколько. Теоретически программа для среды NET Runtime может
выполняться под любой операционной системой, в которой NET Runtime
установлена. Но на практике пока единственная платформа для этого - это
Windows.
NET Runtime состоит из нескольких частей. Одна из них - это Common
Language Runtime. Это, говоря кратко, это некоторый набор стандартов,
котрые должны поддерживать все языки платформы .NET. Например, в
предыдущих версиях Visual Studio была такая проблема, что разные языки
по разному хранили данные одного по идее типа. Так, скажем, тип целого в
Visual Basic'е занимал два байта, а в Visual C++ - четыре. А это
порождало кучу проблем при совместном использовании языков. Так вот,
Common Language Runtime как раз в частности и определяет стандартные для
все языков .NET типы данных. И уже есть гарантии, что целый тип в одном
языке будет в точности соответствовать одноименному типу в другом.
Еще одна важная часть NET Runtime - это набор базовых классов. Их
очень много (порядка несколько тысяч). Кроме того, эти классы относятся
не к конкретному языку, а к NET Runtime. Т. е. мы получаем набор
классов, общий для всех языков .NET, что достаточно удобно.
Далее. Именно NET Runtime берет на себя некоторые рутинные функции.
Например в нем организована сборка мусора. И если раньше программисту
приходилось самому освобождать объекты, созданные динамически, то теперь
эту задачу берет на себя среда NET Runtime. Еще одно свойство среды NET
Runtime - это проверка типов. Означает это вот что. Когда программа
выполняется, то в принципе некоторой функции можно подсунуть параметр
неправильного типа. Скажем вместо целого подставить действительное число
или еще что-нибудь в этом роде. Языки типа C++ свои параметры функций
не проверяют, в результате чего записанная переменная большего размера
может повредить чужую область памяти и программа может просто рухнуть.
Еще классический пример на эту тему - это выход за пределы массива. В
NET Runtime же такого невозможно. NET Runtime сама позаботится о
проверке типов и других вещах.
Существует несколько языков для NET Runtime. В настоящее время это
C#, VB.NET и Visual C++. Кроме того фирма Borland объявила, что ее
продукты C++ Builder и Delphi тоже будут поддерживать NET Runtime.
|