NET Framework
NET Framework — это программная платформа, выпущенная компанией Microsoft, предназначенная для разработки и выполнения приложений, преимущественно для операционных систем семейства Windows. Она представляет собой среду выполнения (common language runtime, CLR) и обширную библиотеку классов (Framework Class Library, FCL), предоставляющую разработчикам готовые компоненты для работы с данными, пользовательским интерфейсом, сетью, файловой системой и другими системными функциями. Ключевой особенностью .NET Framework является поддержка множества языков программирования (C#, Visual Basic .NET, C++/CLI и другие), код которых компилируется в единый промежуточный язык (Common Intermediate Language, CIL), исполняемый средой CLR.
История
Предпосылки и создание
В конце 1990-х годов Microsoft столкнулась с проблемой фрагментации своих технологий разработки: существовали отдельные платформы для веб-приложений (ASP), настольных приложений (Win32 API, MFC, Visual Basic), баз данных (ADO) и т. д. Разработчики вынуждены были изучать разные API и парадигмы. В 1998 году под руководством Андерса Хейлсберга (создателя Turbo Pascal и Delphi) началась работа над проектом Next Generation Windows Services (NGWS), который должен был стать единой платформой для всех типов приложений.
Первая бета-версия .NET Framework была представлена в 2000 году на конференции Professional Developers Conference (PDC). Официальный релиз .NET Framework 1.0 состоялся 13 февраля 2002 года одновременно с выходом Visual Studio .NET 2002.
Основные версии
| Версия | Дата выхода | Ключевые особенности |
|---|---|---|
| 1.0 | 2002 | Первый релиз. Поддержка C#, VB.NET, ASP.NET, Windows Forms, ADO.NET. |
| 1.1 | 2003 | Улучшенная поддержка мобильных устройств (ASP.NET Mobile Controls), встроенная поддержка IPv6. |
| 2.0 | 2005 | Значительное расширение библиотеки классов (Generics, Nullable types, Partial classes), улучшение производительности CLR. |
| 3.0 | 2006 | Добавлены Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), Windows CardSpace. |
| 3.5 | 2007 | LINQ (Language Integrated Query), ASP.NET AJAX, улучшения в WCF и WPF. |
| 4.0 | 2010 | Parallel Extensions (PLINQ, Task Parallel Library), Dynamic Language Runtime (DLR), Managed Extensibility Framework (MEF). |
| 4.5 | 2012 | Улучшенная асинхронность (async/await), поддержка Metro-приложений для Windows 8, улучшение производительности серверных приложений. |
| 4.6 | 2015 | Поддержка 64-разрядных JIT-компиляторов (RyuJIT), улучшения в WPF и ASP.NET. |
| 4.7 | 2017 | Поддержка Windows 10 Creators Update, улучшения в WPF (Touch, Stylus). |
| 4.8 | 2019 | Последняя версия. Улучшения в WPF, ASP.NET, JIT-компиляторе. |
В 2014 году Microsoft анонсировала .NET Core — кроссплатформенную и открытую версию платформы, которая в 2020 году стала основой для единой платформы .NET 5.0. С этого момента развитие классического .NET Framework было заморожено, хотя он продолжает поддерживаться как компонент ОС Windows.
Архитектура
Common Language Runtime (CLR)
CLR — это виртуальная машина, обеспечивающая выполнение управляемого кода. Она отвечает за:
- Загрузку и верификацию сборок (assemblies) — проверку типов и безопасности кода.
- JIT-компиляцию (Just-In-Time) — преобразование CIL в машинный код непосредственно перед выполнением.
- Управление памятью — автоматическую сборку мусора (Garbage Collector, GC), освобождающую память от неиспользуемых объектов.
- Обработку исключений — единый механизм обработки ошибок для всех языков.
- Безопасность доступа к коду (Code Access Security, CAS) — ограничение возможностей кода в зависимости от его источника.
Framework Class Library (FCL)
FCL — это обширная иерархическая библиотека классов, охватывающая практически все аспекты разработки:
- System — базовые типы (String, Int32, DateTime), математические функции, консольный ввод/вывод.
- System.Collections — структуры данных (списки, словари, очереди, стеки).
- System.IO — работа с файловой системой, потоками, сериализация.
- System.Net — сетевые протоколы (HTTP, TCP, UDP), работа с Web-запросами.
- System.Data — ADO.NET: доступ к базам данных (SQL Server, Oracle, OLE DB).
- System.Windows.Forms — создание настольных Windows-приложений с графическим интерфейсом.
- System.Web — ASP.NET: веб-формы, MVC, Web API, SignalR.
- System.Xml — обработка XML-документов.
- System.Threading — многопоточность, синхронизация, параллельные вычисления.
Common Type System (CTS) и Common Language Specification (CLS)
CTS определяет единую систему типов, которую должны поддерживать все языки .NET. CLS — это подмножество правил, обеспечивающих совместимость между языками (например, C# может вызывать код на VB.NET).
Классификация приложений
Настольные приложения
- Windows Forms — классическая технология для создания оконных приложений с элементами управления (кнопки, поля ввода, таблицы).
- Windows Presentation Foundation (WPF) — более современная технология, использующая XAML для описания интерфейса и поддерживающая аппаратное ускорение графики, анимацию, стили, шаблоны.
Веб-приложения
- ASP.NET Web Forms — модель событийного программирования, аналогичная Windows Forms.
- ASP.NET MVC — реализация шаблона Model-View-Controller, обеспечивающая четкое разделение логики.
- ASP.NET Web API — создание RESTful HTTP-сервисов.
- ASP.NET SignalR — библиотека для добавления функций реального времени (чат, уведомления).
Сервисы и фоновые процессы
- Windows Communication Foundation (WCF) — унифицированная платформа для создания распределенных приложений, поддерживающая различные протоколы (HTTP, TCP, MSMQ) и форматы (XML, JSON, бинарный).
- Windows Workflow Foundation (WF) — платформа для построения рабочих процессов (workflows) в приложениях.
- Windows Services — создание служб Windows, работающих в фоновом режиме.
Библиотеки классов
Сборки (DLL-файлы), содержащие переиспользуемый код для других приложений.
Применение и значение
Корпоративная разработка
.NET Framework широко применяется в корпоративной среде для создания:
- Систем управления предприятием (ERP) — например, Microsoft Dynamics 365.
- Систем управления взаимоотношениями с клиентами (CRM).
- Финансовых систем, банковских приложений.
- Систем документооборота и управления контентом.
Веб-разработка
ASP.NET является одной из популярных платформ для создания веб-сайтов и веб-приложений, особенно в сочетании с Microsoft SQL Server и Internet Information Services (IIS).
Разработка игр
Среда .NET Framework используется в игровых движках, например, Unity (C# является основным языком скриптов).
Научные и инженерные расчеты
Библиотеки для работы с математикой, статистикой, визуализацией данных (например, Math.NET, ILNumerics).
Критика и ограничения
- Привязка к Windows — классический .NET Framework работает только на ОС Windows, что ограничивает его использование в кроссплатформенных проектах.
- Размер и сложность — полная установка .NET Framework занимает значительный объем дискового пространства (сотни мегабайт) и может замедлять развертывание приложений.
- Версионность — разные версии .NET Framework могут устанавливаться параллельно, что иногда приводит к проблемам совместимости.
- Производительность — хотя JIT-компиляция обеспечивает хорошую производительность, она уступает нативным приложениям, написанным на C++.
- Безопасность — в ранних версиях были обнаружены уязвимости, связанные с CAS (Code Access Security), что привело к его упрощению в .NET 4.0.
Интересные факты
- Название «.NET» изначально было маркетинговым ходом, подчеркивающим ориентацию на сетевые технологии (Internet и Web).
- Технология Windows Forms была создана как эволюция Visual Basic 6.0, а WPF — как преемник Windows Forms.
- В 2014 году Microsoft открыла исходный код .NET Core под лицензией MIT, что стало важным шагом в развитии платформы.
- .NET Framework 4.8 является последней версией классической платформы. Microsoft рекомендует переходить на .NET 5+ для новых проектов.
Источники
- Microsoft Docs: .NET Framework documentation
- «CLR via C#» by Jeffrey Richter (4th edition, 2012)
- «Pro .NET Framework» by Andrew Troelsen (6th edition, 2013)
- «C# 9.0 in a Nutshell» by Joseph Albahari (2021)
- «.NET Framework Architecture and Components» — Microsoft Developer Network (MSDN)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →