Как стать автором
Поиск
Написать публикацию
Обновить

Философия .NET Framework

Мы решили создать приложение, используя .NET Framework. Первое, что нам нужно сделать – это выбрать язык программирования.

Меню: C#, C++, VisualBasic, F#, Iron Python, Iron Ruby и другие.

После выбора языка можно написать простую программку, которая выводит в консоль строку “Hello world”. Но что же на самом деле произошло?

Мы сами выбрали язык программирования, который на нравится, и мы написали программу, которая успешно выполнилась. И все это произошло в рамках платформы .NET. Что же предоставляет нам возможность выбора и почему код, например, созданный на С++ будет выполнен платформой .NET?
Ответ: CLR (Common Language Runtime) – общеязыковая среда выполнения.

CLR — это место, в .NET Framework, где выполняется, сгенерированный компилятором, CIL код. Задачи CLR: управление памятью, загрузка сборок, безопасность, обработка исключений, синхронизация и т.д.
Выглядит немного запутано, но давайте прольем свет на детали.

Когда мы пишем на С++, компилятор генерирует специальный CIL код, который понимает и выполняет CLR. Так как CLR не полиглот, то для каждого языка, поддерживаемого в .NET, есть свой компилятор, который занимается проверкой написанного и генерированием CIL кода. Именно эта особенность и дает нам возможность писать на разных языках под одну и ту же платформу.

Что такое CIL код? CIL (Common Intermediate Language) – промежуточный язык, для платформы .NET. Но между чем и чем он промежуточный?
IL является промежуточным между языком высокого уровня (C++) и машинными командами. CLR во время выполнения IL кода генерирует машинные команды, которые выполняются процессором.

Но почему мы не можем выбрать один язык и разрабатывать только на нем?
С одной стороны, у нас есть, «неуправляемый код» C++, который дает доступ к системе на низком уровне (распоряжение памятью, создание программных потоков и т.д.) С другой стороны, Visual Basic позволяет очень быстро строить пользовательские интерфейсы и легко управлять COM-объектами и базами данных.
В зависимости от поставленной задачи мы можем выбирать более подходящий инструмент, для достижения поставленных целей.

Выводы:
• .NET Framework предоставляет возможность выбора разных языков;
• CLR – ключевой механизм, в платформе .NET;
• CIL – язык, который генерируют все компиляторы всех языков .NET для CLR;
• Нет универсального инструмента для решения любой задачи.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.