.NET Framework и среда Common Language Runtime
.NET Framework представляет собой основу концепции .NET. При помощи этой структуры, содержащей библиотеку классов, становится возможным управлять приложениями, защищать их. Узнать подробнее о .NET Framework можно в спецификации универсального языка (CLS – аббревиатура Common Language Specification) – именно в ней имеется в частности информация о сохранении объектов. Создатели программ имеют возможность делать .NET Framework для разных программ, но наибольшее распространение все же получила версия под Windows; ей занимается Microsoft.
Одна из основных частей .NET Framework – это CLR (аббревиатура от Common Language Runtime – общеязыковая среда исполнения) – именно эта часть и занимается запуском программ, которые пишутся на языке C#. Машинный код для конкретной платформы получается в результате компиляции программы в два этапа. На первом этапе приложение преобразовывается в промежуточный язык от Microsoft (MSIL), в котором определяются команды для CLR. А уже на втором этапе MSIL преобразуется в машинные команды и получается целое приложение.
Здесь может возникнуть вопрос: а зачем производится компиляция в два этапа? Почему не сделать сразу же в машинные коды? Есть несколько причин для этого, основные таковы:
- Поддержка переносимости кода для разных операционных систем
- Особенности управления памятью в ОС и её защита
- Взаимная функциональность языков
Возможность взаимодействия языков, которая обеспечивается .NET Framework позволяет разработчикам на разных языках (C# и Visual Basic .NET, к примеру) работать совместно над одним проектом – не изучая другие языки: код может быть объединен в цельную программу с помощью MSIL. Помимо этого, .NET Framework дает возможность объединять уже имеющиеся компоненты (написанные ранее, до появления .NET) с созданными позднее. Такая интеграция особенно важна для крупных компаний, в которых изменения проходят трудно.
В .NET Framework имеются функции, позволяющие управлять CLR, а уже сама CLR управляет памятью и защитой. Сравните: программисты C++ самостоятельно заботятся о памяти и вынуждены уделять этому свое время – тогда как могут прорабатывать в это время логику приложения.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.