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

Microsoft .NET Framework

Microsoft .NET Framework — это программная платформа (фреймворк), разработанная компанией Microsoft, предназначенная для создания, развёртывания и выполнения приложений и веб-сервисов. Основная задача .NET Framework — предоставить единую объектно-ориентированную среду выполнения и библиотеку базовых классов, абстрагируя разработчика от низкоуровневых аспектов операционной системы и аппаратного обеспечения. Платформа поддерживает несколько языков программирования, включая C#, Visual Basic .NET и F#, и является ключевым компонентом экосистемы разработки Microsoft для Windows.

История

Предпосылки и создание

В конце 1990-х годов Microsoft столкнулась с необходимостью создания унифицированной платформы для разработки приложений, которая могла бы заменить устаревшие технологии COM (Component Object Model) и MFC (Microsoft Foundation Classes). В 1998 году началась работа над проектом под кодовым названием Next Generation Windows Services (NGWS). Первая публичная бета-версия была представлена на конференции Professional Developers Conference (PDC) в 2000 году. Официальный релиз .NET Framework 1.0 состоялся 13 февраля 2002 года, одновременно с выходом Visual Studio .NET.

Эволюция версий

Платформа активно развивалась на протяжении 2000-х и 2010-х годов:

  • .NET Framework 1.1 (2003) — включён в состав Windows Server 2003, добавлена поддержка ASP.NET Mobile Controls.
  • .NET Framework 2.0 (2005) — введены обобщённые типы (generics), частичные классы, анонимные методы, значительно расширена библиотека базовых классов.
  • .NET Framework 3.0 (2006) — выпущен как часть Windows Vista, включал Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) и Windows CardSpace.
  • .NET Framework 3.5 (2007) — добавлены LINQ (Language Integrated Query), технология AJAX для ASP.NET, поддержка Entity Framework.
  • .NET Framework 4.0 (2010) — введена динамическая диспетчеризация, параллельные вычисления (TPL, PLINQ), улучшена поддержка взаимодействия с динамическими языками.
  • .NET Framework 4.5 (2012) — оптимизация для многоядерных процессоров, асинхронное программирование (async/await), улучшенная поддержка Metro-приложений.
  • .NET Framework 4.6–4.8 (2015–2019) — последние версии классического фреймворка, включающие улучшения производительности, безопасности и поддержку новых стандартов (например, HTTP/2, TLS 1.2).

Переход к .NET Core и .NET

В 2014 году Microsoft анонсировала .NET Core — кроссплатформенную, модульную и открытую версию платформы. В 2020 году .NET Core 3.1 был объединён с .NET Framework 4.x в единую платформу .NET 5, которая стала преемником обеих веток. Классический .NET Framework остаётся поддерживаемым, но новые функции в него не добавляются; все дальнейшие инвестиции Microsoft направлены на .NET (версии 5, 6, 7, 8 и далее). Последняя версия классического фреймворка — .NET Framework 4.8.1 (выпущена в августе 2022 года).

Архитектура

Общеязыковая среда выполнения (CLR)

CLR (Common Language Runtime) — это виртуальная машина, которая управляет выполнением кода, написанного на любом поддерживаемом языке .NET. Основные функции CLR:

Библиотека базовых классов (BCL)

BCL (Base Class Library) — это обширная коллекция готовых типов, классов и интерфейсов, обеспечивающая стандартные функции: работа с файлами, вводом-выводом, строками, коллекциями, сетью, XML, рефлексией и т.д. BCL является единой для всех языков .NET.

Система типов (CTS) и спецификация CLS

  • CTS (Common Type System) — определяет, как типы данных объявляются, используются и управляются в среде выполнения. Обеспечивает совместимость между разными языками.
  • CLS (Common Language Specification) — подмножество правил, которым должен следовать код, чтобы быть полностью совместимым с любым другим языком .NET. Разработчики могут не соблюдать CLS, если приложение не требует межъязыковой интеграции.

Сборки (Assemblies)

Приложение .NET компилируется в одну или несколько сборок — файлов с расширением .exe или .dll. Сборка содержит метаданные (манифест), промежуточный код (MSIL) и ресурсы (изображения, строки). Сборки могут быть частными (для одного приложения) или общими (устанавливаются в глобальный кэш сборок — GAC).

Основные компоненты

Windows Forms (WinForms)

Технология для создания настольных приложений с графическим интерфейсом (GUI) для Windows. Предоставляет набор визуальных элементов управления (кнопки, текстовые поля, списки, таблицы) и модель событийно-ориентированного программирования. WinForms остаётся популярной для быстрой разработки бизнес-приложений, хотя уступает WPF в гибкости и производительности.

Windows Presentation Foundation (WPF)

Более современная технология для создания настольных приложений, использующая язык XAML (Extensible Application Markup Language) для описания интерфейса. WPF поддерживает векторную графику, анимацию, 3D-модели, привязку данных и стили. Позволяет создавать приложения с богатым визуальным оформлением.

ASP.NET

Технология для создания веб-приложений и веб-сервисов. Включает:

  • ASP.NET Web Forms — модель с серверными элементами управления и событийной моделью (аналог WinForms для веба).
  • ASP.NET MVC — реализация паттерна Model-View-Controller, более гибкая и тестируемая.
  • ASP.NET Web API — для создания RESTful-сервисов.
  • ASP.NET SignalR — для добавления реального времени (WebSockets).

Windows Communication Foundation (WCF)

Фреймворк для построения распределённых систем, обеспечивающий унифицированную модель программирования для различных протоколов (HTTP, TCP, Named Pipes, MSMQ). WCF поддерживает безопасность, транзакции, надёжный обмен сообщениями и совместимость с веб-сервисами (SOAP, WS-*).

Windows Workflow Foundation (WF)

Технология для создания и выполнения рабочих процессов (workflows) — последовательностей действий, которые могут включать логику, условия, циклы, параллельные ветки. WF используется в бизнес-приложениях, системах документооборота и автоматизации.

Entity Framework (EF)

Объектно-реляционное отображение (ORM) для работы с базами данных. Позволяет взаимодействовать с данными через объекты .NET, а не через SQL-запросы. EF поддерживает несколько СУБД (SQL Server, Oracle, MySQL, PostgreSQL) и предоставляет возможности LINQ to Entities, Code First, Database First.

Применение

Корпоративные приложения

.NET Framework широко используется для разработки внутренних бизнес-систем: учётные системы, CRM, ERP, системы документооборота. Благодаря интеграции с Active Directory, SQL Server и SharePoint, платформа является стандартом для многих организаций.

Веб-разработка

ASP.NET — одна из основных технологий для создания веб-сайтов и веб-сервисов на платформе Windows. Крупные проекты, такие как портал Microsoft.com, Stack Overflow, GoDaddy, используют ASP.NET.

Игровая индустрия

Хотя .NET Framework редко используется для создания игр с нуля, он является основой для игрового движка Unity (C# — основной язык скриптов). Unity — одна из самых популярных платформ для разработки мобильных, ПК и консольных игр.

Научные и инженерные расчёты

Библиотека .NET Framework включает поддержку численных методов, матричных операций, статистики. Платформа используется в финансовых моделях, симуляциях, обработке данных.

Критика и ограничения

Зависимость от Windows

Классический .NET Framework работает только под управлением операционных систем Windows. Это ограничивает его использование в кроссплатформенных проектах, особенно в среде Linux и macOS. Решением стал .NET Core (и последующий .NET), который является кроссплатформенным.

Производительность

Хотя JIT-компиляция и сборка мусора обеспечивают удобство разработки, они могут приводить к снижению производительности по сравнению с нативным кодом (C++). В некоторых сценариях (высоконагруженные системы, игры) это может быть критично.

Размер и сложность

Полная установка .NET Framework занимает сотни мегабайт и включает множество компонентов, не все из которых нужны конкретному приложению. Это может быть проблемой для тонких клиентов или встраиваемых систем.

Фрагментация

Существование нескольких версий .NET Framework (4.x, .NET Core, .NET 5+) создаёт путаницу у разработчиков. Приложения, написанные для одной версии, могут не работать на другой без дополнительной настройки.

Интересные факты

  • Изначально платформа называлась .NET (без «Framework»), но после выхода .NET Core термин «.NET Framework» стал обозначать только классическую версию для Windows.
  • .NET Framework поддерживает более 30 языков программирования, включая C#, VB.NET, F#, C++/CLI, Python (IronPython), Ruby (IronRuby).
  • Сборка мусора в .NET Framework использует поколенческую модель (Gen 0, Gen 1, Gen 2), что оптимизирует время освобождения памяти.
  • Microsoft открыла исходный код .NET Core под лицензией MIT в 2014 году, что способствовало его широкому распространению.

Источники

  • Microsoft Docs: .NET Framework documentation
  • «CLR via C#» by Jeffrey Richter (Microsoft Press, 2012)
  • «Pro .NET Framework 4.5» by Andrew Troelsen (Apress, 2013)
  • «Essential .NET Framework» by Don Box, Chris Sells (Addison-Wesley, 2003)
  • MSDN Magazine: «The History of .NET Framework» (2002–2019)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →