Приложения в настоящее время функционирующие операционные системы от Microsoft компилируются в машинный код процессора и взаимодействуют с операционной системой через набор предоставляемых системой функций, называемых Win32API ( API ). Такое решение вызывает множество проблем, основными из которых являются:
- непереносимость программ между разными процессорами или неиспользование приложениями всех возможностей процессора,
непереносимость приложения между версиями системы из-за различий в наборе и работе функций из набора API.
Microsoft решила решить эту проблему, используя решения, аналогичные тем, которые используются в Java : - компиляторы компилируют исходный код в универсальный код, называемый промежуточным кодом (теперь он называется CIL — ранее он назывался MSIL),
метод класса компилируется в машинный код во время первого вызова, последующие вызовы метода ведут непосредственно к скомпилированному коду. Это достигается путем присоединения к каждому методу во время загрузки временного фрагмента кода ( называемого. Stub), который передает управление компилятору и затем заменяется скомпилированным кодом. Это называется компиляция на лету (вызывается точно в срок ). Также возможно скомпилировать весь модуль во время установки. В то же время библиотеки классов были перестроены, чтобы облегчить доступ к компонентам системы.
Среда разработки
Флагманской средой программирования Microsoft, связанной с платформой .NET, является Microsoft Visual Studio , которая позволяет писать на нескольких языках программирования. Существуют также другие среды, которые работают с платформой .NET, включая коммерческое решение от Borland, а также среды разработки MonoDevelop и SharpDevelop с открытым исходным кодом.