Так с чем же придется столкнуться при разработке новых приложений, ориентированных на Windows, веб или веб-сервисы?
.NET имеет в себе общеязыковую среду времени выполнения (CLR, common language runtime). Ее можно сравнивать с Java Runtime Environment, хотя есть и отличия. Любой программный код, написанный под новую платформу называется управляемым (managed code) и компилируется в бинарный вид, понятный .NET runtime.
Данная среда выполнения сейчас имеется для многих версий Windows и доступна для скачиваня из сети интернет.
Именно эта прослойка между кодом и системой позволяет использовать большинство возможностей .NET. Так как код компилируется в промежуточный бинарный формат, он может быть использован в любом языке, поддерживающем CLR. Этот формат называется Microsoft Intermediate Language (MSIL, IL). Этот формат поддерживает ООП, хранит полную информацию о типах, их связях. Более того, этот формат для любого компонента хранит мета-информацию, которая определяет параметры выполнения, среды безопасности и многое другое.
Трудно переоценить значение перехода на новый бинарный формат. Именно этот шаг позволил создать новую базовую библиотеку классов (Base Class Library), которая предоставляет объектно-ориентированный интерфейс к системным и вспомогательным возможностям. Уже сейчас можно сказать, что разработчики пишут не на конкретном языке, а на .NET, так как вся системная библиотека у них общая.
MSIL и BCL позволил включить несколько языков, работающих с .NET уже в Preview версию. Сейчас базовыми считаются C#, Visual Basic.NET, Managed C++, JScript, но количество совеместимых с .NET языков (CLS compliant) непрерывно растет. Здесь и J#, и Pascal под .NET, и COBOL.NET, Perl.NET и даже такие экзотические языки, как Mixal.NET
Но кроссязыковые возможности — не единственное достижение новой среды. Для упрощения разработки в среду включен автоматический подсчет ссылок и сборщик мусора. Среда предоставляет расширенные возможности по управлению безопасностью кода, имеет стандартные возможности по работе с различными версиями одних и тех же компонент (versioning).
Общие возможности .NET
26 Фев, 2009
