2,1K подписчиков

В чем секрет .NET Framework? / Полная история и редкое фото.

704 прочитали

Язык программирования C#, о котором я писал в прошлой статье, тесно связан с платформой разработки .NET. Давай обсудим что это за платформа и как она появилась. Как и любой стартап, первые версии Windows были сделаны не слишком качественно, и работали не слишком стабильно. Не было и нормальной документации, поэтому для разработки приложений нужно было действовать отчасти "наугад".

Оптимизма не добавляло и множество подходов к программированию - внутри Windows одновременно конкурировали языки C++, asm, Visual Basic и C#. Как можно понять, всё это не способствовало развитию и привлечению разработчиков, и совсем не способствовало хорошим продажам. И с этой проблемой надо было что-то делать.

На помощь пришла логичная идея - сделать "понятную", "удобную" и "универсальную" оболочку над всем этим безобразием. Что-то вроде надстройки над низкоуровневыми кодами ОС Windows. Ну то есть, спрятать все ужасы где-то там глубоко внутри, а на каждый баг добавить специальный чудо-костыль. Одновременно с этим, Microsoft решили сделать поворот в сторону кросс-платформенности. Иными словами, добавить возможность разработки приложений для Linux и Mac.

В результате пересечения всех этих проблем, идей и концепций, появился .NET Framework. Первая версия была вроде "обёртки" над низкоуровневыми кодами Windows, которая сопровождалась более щедрой документацией.

.NET Framework был впервые представлен широкой публике в 2002 году. Я долго и упорно искал фотографию с этого мероприятия, и кажется мне повезло.

14 февраля 2002 года. Конференция, посвященная Visual Studio. Красивый упитанный мужчина на фотографии - Билл Гейтс, который впервые представляет .NET Framework 1.0. Коробка с розовым сердцем символизирует .NET. Как-то так.
14 февраля 2002 года. Конференция, посвященная Visual Studio. Красивый упитанный мужчина на фотографии - Билл Гейтс, который впервые представляет .NET Framework 1.0. Коробка с розовым сердцем символизирует .NET. Как-то так.

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

Платформа .NET и язык CIL 🔢

Кросс-платформенность .NET - это компиляция программы в промежуточный код CIL. Обычные программы на C или C++ после "сборки" превращаются в "чистый" машинный код. Такой код готов для работы напрямую с процессором. В случае с C# / .NET, программа собирается в "промежуточный код" специального формата. И уже в зависимости от устройства (процессора), этот код "на лету" транслируется в команды, понятные конкретному оборудованию.

Именно эта инновация и стала визитной карточкой .NET. Благодаря чему, .NET стал одной из первых систем для кросс-платформенной разработки, с базированием на ОС Windows. Но так же, справедливости ради стоит сказать, что этот подход не был "авторским", а был позаимствован у языка Java, который был сделан за 10 лет до этих событий.

Спустя почти 20 лет с момента запуска, подход к "промежуточному языку" CIL не только не изменился, но и в каком-то смысле обрёл силу. В одной из прошлых статей я писал про MAUI - инструмент для разработки мобильных приложений в среде .NET. Там так же используется промежуточный язык CIL, качественно разжиревший до такого уровня, при котором программный код C# транслируется в языки для устройств Android, iOS и Tizen.

Основные компоненты .NET 📦

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

Архитектура .NET Framework с хронологией развития с 2005 по 2012 годы. С тех пор компоненты стали ещё лучше, и их стало больше.
Архитектура .NET Framework с хронологией развития с 2005 по 2012 годы. С тех пор компоненты стали ещё лучше, и их стало больше.

ASP.NET - это фреймворк для создания веб-сайтов на базе .NET. Он предоставляет множество инструментов для работы с запросами, маршрутизацией, управлением состоянием и другими аспектами веб-разработки. ASP.NET включает в себя ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API и ASP.NET Core.

ADO.NET - это технология доступа к базам данных в .NET. Он предоставляет набор классов и интерфейсов для работы с различными базами данных, включая SQL Server, Oracle, MySQL и другие. ADO.NET включает в себя объекты для соединения с базой данных, выполнения запросов и получения данных.

WinForms - это фреймворк для создания Windows-приложений на базе .NET. Он предоставляет инструменты для создания графического интерфейса пользователя, управления событиями и обработки пользовательского ввода. В данный момент этот компонент является устаревшим, хотя многие приложения для Windows написаны на его основе.

WPF - это так же фреймворк для создания Windows-приложений на базе .NET. Он предоставляет инструменты для создания более современных и динамических графических интерфейсов пользователей, включая поддержку 3D графики и анимации. Является наследником WinForms.

LINQ - это специальный язык запросов, который используется в .NET для работы с коллекциями и массивами объектов, базами данных и другими источниками данных. Он позволяет выполнять запросы на выборку данных с помощью набора операторов языка, которые подобны SQL.

Entity Framework - это ORM (Object-Relational Mapping) для работы с базами данных в .NET. Он предоставляет инструменты для создания моделей данных, миграции баз данных и выполнения запросов к ним. Entity Framework поддерживает множество провайдеров баз данных, включая SQL Server, Oracle, MySQL и другие.

TPL (Task Parallel Library) - это библиотека для параллельного и асинхронного программирования в .NET. Он предоставляет инструменты для управления задачами и потоками в приложении, включая выполнение задач в фоновом режиме и распределение нагрузки между несколькими ядрами процессора. TPL также включает в себя инструменты для работы с лямбда-выражениями и динамической компиляцией кода.

.NET сегодня 🏆

На сегодняшний день, .NET представляет из себя огромную экосистему для разработки приложений. Он успешно пережил огромное количество этапов развития, изменений и улучшений. И если когда-то это была "небольшая" система для решения конкретных проблем, то сегодня это целый набор компонентов на все случаи жизни.

Это десятки тысяч страниц документации MSDN / Learn. Это большое сообщество разработчиков по всему миру. И это платформа NuGet, которая позволяет создавать и распространять свои собственные библиотеки кода для .NET. Это инструменты MAUI / Xamarin для разработки мобильных приложений. И многое, многое другое.

Начиная разработку под Windows, или рассматривая возможности мобильной разработки - я определённо рекомендую посмотреть в сторону .NET. Это простой и лёгкий способ приступить к коммерческой разработке приложений на основе комплексной платформы и уже готового кода для решения множества задач.

.NET это прекрасный выбор как для начинающих, так и для опытных разработчиков.
.NET это прекрасный выбор как для начинающих, так и для опытных разработчиков.

🔥 Понравилось? Подпишись! Изучай IT из первых рук! 🔥

Язык программирования C#, о котором я писал в прошлой статье, тесно связан с платформой разработки .NET. Давай обсудим что это за платформа и как она появилась.-4

🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀

P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка