Содержание
ASP.NET Core является кроссплатформенной, высокопроизводительной платформой с открытым исходным кодом для создания современных web-приложений. В качестве языков программирования для разработки приложений на ASP.NET Core используются C# и F#.
Обзор ASP.NET Core
На данный момент, ASP.NET Core можно представить следующим образом:

Верхний уровень представлен Web UI — это различные модели взаимодействия с пользователем, такие как MVC (Model-View-Controller), Razor Pages, SPA (Single Page Application — одностраничные приложения с использованием Angular, React, Vue), Blazor. Также на этом уровне представлены сервисы в виде встроенных HTTP API, библиотеки SignalR или gRPC.
Все эти модели взаимодействуют или базируются на ASP.NET Core, который представлен на втором уровне так называемым ПО промежуточного слоя — Middleware, которые применяются для обработки запроса, кэширования запросов, локализации и т.д.
Нижний уровень в ASP.NET Core представлен различными серверами. Приложение ASP.NET Core работает в рамках какого-либо сервера. Это может быть сервер Kestrel, IIS/IIS Express или же библиотека HTTP.sys.
Модели разработки приложения ASP.NET Core
В зависимости от требований, которые предъявляются к приложению ASP.NET Core мы можем выбрать одну из следующих моделей разработки:
- базовая модель ASP.NET Core — здесь поддерживаются все основные возможности, необходимые для современного веб-приложения: маршрутизация, конфигурация, логирование, работа с базами данных и т.д.. Начиная с версии ASP.NET Core 6 в платформу был добавлен Minimal API — упрощенная модель, позволяющая создавать приложения ASP.NET Core с минимальными усилиями буквально состоящие из одного файла. Minimal API упростил процесс разработки и написания кода приложения. Все прочие модели разработки так или иначе работают поверх базового функционала ASP.NET Core.
- ASP.NET Core MVC представляет процесс построения приложения с использованием шаблона MVC в котором приложение строится вокруг трех основных компонентов — Model (модели), View (представления) и Controller (контроллера). Модель — отвечают за работу с данными, контроллер — представляет логику обработки запросов пользователя, а представления, по сути, определяют визуальный интерфейс приложения.
- Razor Pages — модель, при которой за обработка запроса осуществляется специальной сущностью — страницей Razor Pages. Каждую отдельную такую сущность можно ассоциировать с отдельной веб-страницей.
- Blazor — фреймворк, который позволяет создавать интерактивные приложения как на стороне сервера, так и на стороне клиента. В Blazor, как и в Razor Pages активно используется язык разметки Razor. Но, при этом Blazor делает разработку визуального интерфейса более простой, позволяет задействовать в приложении различные фреймворки CSS и JavaScript.
- ASP.NET Core Web API — реализация паттерна REST, при котором для каждого типа http-запроса (GET, POST, PUT, DELETE) предназначен отдельный ресурс. Подобные ресурсы определяются в виде методов контроллера Web API. Эту модель разработки можно задействовать, например, для одностраничных приложений или же в том случае, если от вашего приложения вообще не требуется какая-либо визуализация.
Таким образом, ASP.NET Core предоставляет нам широкие возможности по разработки различных web-приложений с самыми разнообразными возможностями.
С чего начинать изучение ASP.NET Core?
Исходя из всего вышесказанного, можно сказать, что у человека, впервые столкнувшегося с ASP.NET Core может возникнуть резонный вопрос: с чего начать? И, второй вопрос: что необходимо знать перед тем, как начать изучать ASP.NET Core?
Возможно, что с моей точкой зрения кто-то не согласится, но попробую ответить на эти вопросы следующим образом.
С чего начинать? Во-первых, всегда стоит начинать с основ, то есть в нашем случае — это базовая модель ASP.NET Core (можно и Minimal API). Это, в дальнейшем, поможет вам понимать, как минимум, как ваше приложение вообще работает, обрабатывает запросы, взаимодействует с СУБД и т.д.
Во-вторых, стоит определится с тем, как вы видите свое приложение: это должно быть приложение с современными интерфейсом, различными «фичами» из JavaScript и крутыми спецэффектами или это будет сервис, который обрабатывает запрос пользователя и отправляет ответ, например, в виде JSON? Если это будет приложение с пользовательским интерфейсом, то порядок изучения ASP.NET Core можно выстроить следующим образом: ASP.NET Core MVC —> Razor Pages —> Blazor (Server или WebAssembly). Если вам необходим просто API — тогда берем ASP.NET Core Web API
Что необходимо знать перед тем, как начать изучать ASP.NET Core? На первом этапе (до начала работы с Razor/Blazor) необходимы хорошие знания языка C# и, в принципе, самые-самые минимальные знания html/css. А уже когда начинается работа с пользовательским интерфейсом, то здесь уже могут потребоваться знания и JavaScript и различных CSS-фреймворков, типа Bootstrap.