Открыть сервис

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.02002Первый релиз. Поддержка C#, VB.NET, ASP.NET, Windows Forms, ADO.NET.
1.12003Улучшенная поддержка мобильных устройств (ASP.NET Mobile Controls), встроенная поддержка IPv6.
2.02005Значительное расширение библиотеки классов (Generics, Nullable types, Partial classes), улучшение производительности CLR.
3.02006Добавлены Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), Windows CardSpace.
3.52007LINQ (Language Integrated Query), ASP.NET AJAX, улучшения в WCF и WPF.
4.02010Parallel Extensions (PLINQ, Task Parallel Library), Dynamic Language Runtime (DLR), Managed Extensibility Framework (MEF).
4.52012Улучшенная асинхронность (async/await), поддержка Metro-приложений для Windows 8, улучшение производительности серверных приложений.
4.62015Поддержка 64-разрядных JIT-компиляторов (RyuJIT), улучшения в WPF и ASP.NET.
4.72017Поддержка Windows 10 Creators Update, улучшения в WPF (Touch, Stylus).
4.82019Последняя версия. Улучшения в 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.DataADO.NET: доступ к базам данных (SQL Server, Oracle, OLE DB).
  • System.Windows.Forms — создание настольных Windows-приложений с графическим интерфейсом.
  • System.WebASP.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 →