ASP.NET Core — что это?

ASP.NET Core — это кроссплатформенная, высокопроизводительная платформа с открытым исходным кодом для создания современных web-приложений. ASP.NET Core активно используется для создания веб-приложений и API, микросервисов, а также приложений реального времени (SignalR). В качестве языков программирования для разработки приложений на ASP.NET Core используются C# и F#.

История развития и структура

Первая версия (ASP.NET Core 1.0) была выпущена 27 июня 2016 года вместе с .NET Core 1.0. До этого проект развивался под кодовым названием «Project K« и позже — под названием «ASP.NET 5″, однако перед релизом был переименован в ASP.NET Core, чтобы подчеркнуть разрыв с прошлым и его модульную архитектуру.

Можно выделить следующие этапы развития платформы:

  • 2016 год — релиз ASP.NET Core 1.0. В данном исполнении платформа имела достаточно ограниченную функциональность.
  • 2017 год — вышла ASP.NET Core 2.0.  Добавлен метапакет Microsoft.AspNetCore.All. Он включал в себя все официальные пакеты от команд ASP.NET Core и Entity Framework Core, а также все их внутренние и сторонние зависимости. Добавив в проект всего одну ссылку на Microsoft.AspNetCore.All, разработчики получали доступ к полному набору функций ASP.NET Core 2.x, будь то MVC, SignalR, Razor Pages, Entity Framework Core или любые другие компоненты.
  • 2019 год — ASP.NET Core 3.0. В этой версии появилась полная поддержка Blazor и улучшенна работа с gRPC.
  • 2020 год — выходит .NET 5.  Microsoft объединила .NET Core и .NET Framework в единый .NET 5, а «ASP.NET Core» переименовали в «ASP.NET Core» (название сохранилось, но версия стала соответствовать .NET). Например, ASP.NET Core 6.0, 7.0, 8.0, 9.0. С этого момента ASP.NET Core выпускаются вместе с .NET. 

Упрощенно, платформу ASP.NET Core можно представить следующим образом

Структура платформы ASP.NET Core
Структура платформы ASP.NET Core

 

Уровень 1 представлен Web UI.  Этот уровень представлен различными моделями взаимодействия с пользователем, такие как MVC (Model-View-Controller), Razor Pages, SPA (Single Page Application — одностраничные приложения с использованием Angular, React, Vue), Blazor. Также на этом уровне представлены сервисы в виде встроенных HTTP API (Minimal API и Web API), библиотеки SignalR или gRPC.

Все эти модели взаимодействуют или базируются на ПО промежуточного слоя (второе распространенное название – компоненты middleware). ПО промежуточного слоя представлены на уровне 2. На данный момент ASP.NET Core содержит достаточного большое количество различного ПО промежуточного слоя, выполняющего самый различные функции в приложении, начиная от маршрутизации и кэширования и, заканчивая функциями проверки работоспособности приложения и сжатия ответов сервера.

Любое приложение ASP.NET Core будь то приложение Blazor или Web API, работает в рамках какого-либо web-сервера, который принимает запросы и формирует ответ клиенту. Доступные на данный момент серверы расположены на уровне 3 это кроссплатформенный сервер Kestrel, а также серверы IIS и HTTP.sys и т.д.

Так как ASP.NET Core, работает поверх платформы .NET, то в ASP.NET Core также используются известные технологии, например технология внедрения зависимостей (Dependency Injection), механизмы конфигурации и настройки приложения и т.д.

Таким образом, используя ASP.NET Core, мы можем создавать различные по сложности и структуре web-приложения – от крупных web-порталов, обрабатывающих тысячи запросов в секунду, до небольших корпоративных API и web-приложений, работающих на мобильных устройствах.

Модели разработки приложения ASP.NET Core

В зависимости от требований, которые предъявляются к приложению ASP.NET Core, мы можем выбрать одну из следующих моделей разработки:

  • Базовая модель — здесь поддерживаются все основные возможности, необходимые для современного веб-приложения: маршрутизация, конфигурация, логирование, работа с базами данных и т.д.. Начиная с версии NET Core 6, в платформу был добавлен Minimal API — упрощенная модель, позволяющая создавать приложения ASP.NET Core с минимальными усилиями буквально состоящие из одного файла. Minimal API упростил процесс разработки и написания кода приложения. Все прочие модели разработки так или иначе работают поверх базового функционала. Используя Minimal API, мы можем достаточно быстро создавать прототипы приложений и, в дальнейшем, использовать полученный код в других моделях разработки.
  • Web API — реализация паттерна REST, при котором для каждого типа http-запроса (GET, POST, PUT, DELETE) предназначен отдельный ресурс. Подобные ресурсы определяются в виде методов контроллера Web API. Эту модель разработки можно задействовать, например, для одностраничных приложений или же в том случае, если от вашего приложения вообще не требуется какая-либо визуализация.
  • Razor Pages— модель, при которой обработка запроса осуществляется специальной сущностью — страницей Razor Pages. Каждую такую отдельную сущность можно ассоциировать с отдельной веб-страницей. В самом простом случае, страница Razor Pages представляет из себя файл, состоящий из двух частей: кода C#, отвечающего за логику обработки запроса клиента и HTML-разметки для визуализации результатов. Таким образом, используя Razor Pages, мы можем реализовывать логику приложения, используя C#, а для графического интерфейса задействовать привычный HTML-код.
  • ASP.NET Core MVC – представляет процесс построения приложения с использованием шаблона MVC в котором приложение строится вокруг трех основных компонентов — Model (модели), View (представления) и Controller (контроллера). Модель — отвечают за работу с данными, контроллер — представляет логику обработки запросов пользователя, а представления, по сути, определяют визуальный интерфейс приложения.
  • Blazor— фреймворк, который позволяет создавать интерактивные приложения как на стороне сервера, так и на стороне клиента. В Blazor, как и в Razor Pages активно используется язык разметки Razor. Но, при этом Blazor делает разработку визуального интерфейса более простой, позволяет задействовать в приложении различные фреймворки CSS и JavaScript.

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

Как изучать возможности ASP.NET Core наиболее эффективно?

В целом, не важно с какой модели разработки вы начнете изучение. Если вам необходимо разработать приложение с графическим интерфейсом, то вы можете сразу начать с ASP.NET Core MVC или Blazor и, поверьте, что вы сможете разработать своё приложение. Однако, если вы хотите изучить ASP.NET Core наиболее эффективно, то стоит затратить чуть больше времени, но пройти весь процесс разработки последовательно, то есть ровно так, как выше представлены модели разработки. Итак, наиболее эффективный способ изучения ASP.NET Core выглядит следующим образом:

  1. Изучаем Minimal API. На этом этапе вы освоите основы построения web-приложений без графического интерфейса. То есть, как по аналогии с изучением языка C#, вы начинаете изучение с обычных консольных приложений, так и здесь — вы создадите, по сути, консольное приложение, которое будет обрабатывать различные запросы пользователей и возвращать ответ.
  2. Изучаем Web API. Здесь вы познакомитесь с основными моментами построения приложений Web API и освоите такие понятия как модель (Model) и контроллер (Controller), которые входят в структуру шаблона MVC.
  3. Изучаем Razor Pages и ASP.NET Core MVC. На этом этапе вы сможете разработать приложение, содержащее графический интерфейс, познакомитесь с шаблоном MVC, научитесь создавать свои собственные компоненты приложения и использовать стандартные возможности по построению web-приложений с графическим интерфейсом
  4. Изучаем Blazor. Пройдя предыдущие три пункта, вы сможете достаточно легко разобраться с тем, что из себя представляет фреймворк Blazor и приступить к разработке современных web-приложений, включая приложения WebAssembly.

Пройдя весь путь изучения ASP.NET Core по порядку, вы получите максимум знаний о платформе ASP.NET Core и применять их наиболее эффективно.