NET Framework — это технология, которая способна поддерживать формирование и исполнение веб-служб и программных приложений Windows.
Введение
NET Framework выступает как программная платформа, которую выпустила компания Mìcrosoft в 2002-ом году. Базой этой платформы может считаться общая среда языков исполнения Common Language Runtìme (CLR), которая может подойти для различных языков программирования. Набор функциональных возможностей CLR доступен практически во всех языках программирования, которые используют данную среду.
Предполагается, что платформа NET Framework стала ответом корпорации Mìcrosoft на, обладавшую на тот период времени большой популярностью, платформу Java корпорации Sun Mìcrosystems (ныне принадлежащей Oracle). Хотя NET Framework считается запатентованной технологией компании Mìcrosoft и официально предназначена для работы под операционными системами семейства Mìcrosoft Windows, известен ряд независимых проектов, таких как, Mono и Portable.NET, позволяющих осуществлять запуск программы NET Framework и на иных операционных системах.
Проектирование платформы было начато в 1999-ом году, однако официально о начале работ над новой технологией было заявлено 13 января 2000-го года, то есть, когда Билл Гейтс сделал официальное заявление о сложении своих полномочий и передаче роли главы Mìcrosoft Стиву Балмеру. Одновременно руководящие работники компании озвучили свою новую стратегию, которая получила наименование Next Generation Wìndows Services (NGWS), то есть, новое поколение служб Wìndows. Новая стратегия была призвана объединить в единую совокупность уже существовавшие, а также и будущие, проекты Microsoft, чтобы предоставить возможность пользователям работать с Всемирной Сетью Интернет с беспроводных устройств, которые имеют доступ в Интернет, как со стационарного компьютерного оборудования.
NET Framework
Главной идеей при проектировании NET Framework считалась необходимость обеспечить свободу разработчика путем предоставления ему возможности формирования приложений разных типов, способных исполняться на разных типах устройств и в разнообразных средах. Другим принципом явилась ориентация на системы, которые работают под управлением семейства операционных систем Mìcrosoft Wìndows.
Программа для NET Framework, которая написана на каком-либо поддерживаемом языке программирования, в начале должна быть переведена компилятором в единый промежуточный байт-код Common Intermedìate Language (CIL), ранее именуемый как Mìcrosoft Intermedìate Language (MSIL). В терминах NET Framework должна получиться сборка (assembly), а далее код или подлежит исполнению виртуальной машиной Common Language Runtime (CLR), или должен транслироваться при помощи утилиты NGen.exe в исполняемый код для определенного целевого процессора.
Применение виртуальной машины является более предпочтительным, поскольку это способно избавить разработчиков от необходимости учитывать особенности аппаратного обеспечения. При использовании виртуальной машины CLR, имеющийся в ней JIT-компилятор буквально «на лету» (just in time) способен преобразовать промежуточный байт-код в машинные коды выбранного процессора. Передовая технология динамической компиляции предоставляет возможность достигать высокий уровень быстродействия.
Виртуальная машина CLR также способна сама позаботиться об основной безопасности, управлении памятью и системе исключений, что избавляет проектировщиков от значительной части работы.
Архитектура NET Framework представлена и опубликована в спецификации Common Language Infrastructure (CLI), которая разработана Microsoft и утверждена ISO и ECMA. В CLI приводится описание типов данных NET Framework, форматы метаданных о структуре программы, система исполнения байт-кода и много других аспектов.
Объектные классы NET Framework, которые доступны для всех поддерживаемых языков программирования, имеются в библиотеке Framework Class Library (FCL). В FCL включены классы Windows Forms, ADO.NET, ASP.NET, и некоторые другие. Ядро FCL именуется как Base Class Library (BCL).
Средами разработки, которые поддерживают NET Framework, являются:
- Среда Microsoft Visual Studio (C#, Visual Basic .NET, Managed C++, F#).
- Среда SharpDevelop.
- Среда MonoDevelop.
- Среда Embarcadero RAD Studio (Delphi for .NET). Раньше Borland Developer Studio (Delphi for .NET, C#).
- Среда Zonnon.
- Среда PascalABC.NET
Приложения NET Framework также могут разрабатываться в текстовом редакторе простым вызовом компилятора из командной строки.
Одним из основных недостатков NET Framework может считаться недостаточно рациональное использование системных ресурсов в сравнении с иными технологиями. Так, к примеру, несколько приложений, которые выполняются в управляемой среде, могут стремиться завладеть большим объемом ресурсов, чем приложения того же класса, но имеющие более прямой доступ к ресурсам компьютерного оборудования.
С точки зрения техники платформа также критиковалась по причине отсутствия поддержки вызовов Streaming SIMD Extensions (SSE) в управляемом коде. В программе Mono данная проблема была решена путем добавления поддержки SIMD Extensions версии 2.2 в пространство имен Mono.Simd. В состав .NET Framework 4.6 был включен новый JIT-компилятор RyuJIT, который поддерживает SIMD через пространство имен Microsoft.Bcl.Simd.
Еще одним недостатком может считаться поддержка стандартов, которые фактически ограничивают кроссплатформенную реализацию NET Framework, в результате чего полноформатный вариант платформы имеется только для Windows. Частично подобная проблема была компенсирована разработкой нескольких версий платформы для мобильных устройств, а также созданием урезанных версий NET Framework для иных операционных систем. Тем не менее, невзирая на близость стандартов, которые были приняты при разработке данных версий, финальные их реализации полной совместимости все-таки не имеют.