Microsoft .NET Framework – это предложенная компанией Microsoft программная технология, основной задачей которой является предоставление разработчику набора очень удобных средств для разработки как простых программ, так и web-приложений.
Так сложилось, что .NET получилась у Microsoft, как некая работа над всеми ошибками – .NET вобрал в себя все самое лучшее, что когда либо придумали ее конкуренты:
- удобные возможности синтаксиса, крайне похожего на С++
- заимствованные из Java удобства объектной модели
- простота C++ Builder в плане построения оконных приложений и методов для доступа к переменным
- безопасный код
и это лишь малая часть тех удобств, которые получили программисты.
Хоть скорость работы идентично реализованных алгоритмов на языках C# и С++ различаются примерно в 2 раза (в пользу С++), при использовании unsafe (небезопасного) кода, C# практически догоняет по скорости выполнения С++ , не добирая всего нескольких процентов. Если учесть то, насколько сильно распространена операционная система Windows, а также насколько удачным получился продукт, то справедливо предположить, что специалисты в данной области будут очень востребованы в ближайшем будущем.
Подобно технологии Java (объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems), среда разработки .NET из исходного кода программы создаёт байт-код, предназначенный для исполнения виртуальной машиной (программной или аппаратной средой, исполняющей некоторый код (например, байт-код или машинный код реального процессора).
Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language) или CIL (Common Intermediate Language) или просто IL. Применение байт-кода предназначено для получения кроссплатформенности на уровне скомпилированного, а не только на уровне исходного текста программы, как, например, в языке С. С помощью JIT-компилятора (just in time, компиляция на лету) непосредственно перед запуском сборки в среде исполнения CLR происходит преобразование байт-кода в машинные коды целевого процессора. Native сборку (компиляция в родной для ОС код) можно выполнить с помощью утилиты NGen.exe, которая поставляется вместе с .NET Framework.
Часто разработчикам приходиться писать программы на разных языках программирования. Библиотека классов .NET Framework позволяет разработчикам использовать один программный интерфейс для всех функциональных средств CLR. Универсальность библиотеки классов .net является одной из ее сильнейших сторон.