День шестьсот сорок девятый. #ЗаметкиНаПолях
Жизненный цикл запроса в ASP.NET Core MVC 3. Начало
Жизненный цикл запроса – это серия компонентов, событий или этапов приложения, которые обрабатывают запрос или отвечают на действие пользователя.
Жизненный цикл запроса в ASP.NET Core MVC представлен на рисунке ниже.
1. Промежуточное ПО (Middleware)
Приложения MVC в .NET Core построены на основе концепции промежуточного ПО. Компоненты промежуточного ПО образуют основные блоки HTTP-конвейера приложения. Они предоставляют такие функции, как возможность обслуживания статических файлов, авторизации пользователей, маршрутизации запросов и т.п.
2. Маршрутизация (Routing)
Модель MVC фактически реализуется с помощью промежуточного ПО маршрутизации. .NET Core 3 использует новую систему, называемую маршрутизацией конечных точек. Она выполняет две важные задачи:
- выбор конечной точки для обработки запроса,
- выполнение этой конечной точки.
В контексте MVC конечную точку можно рассматривать как метод действия контроллера. Таким образом выполнение конечной точки переводит запрос из промежуточного ПО в MVC.
3. Инициализация контроллера
Контроллер создаётся в фабрике контроллеров. Затем компонент, называемый инициатором действия контроллера, управляет выполнением метода действия, чтобы предоставить функции, с которыми мы знакомы в повседневной разработке, вроде привязки модели.
4. Выполнение метода действия
На этом этапе также вызываются фильтры действий и выполняется сам метод действия, который производит результат действия.
5. Выполнение результата действия
После того, как результат действия подготовлен, выполняется следующий этап - выполнение результата. MVC отделяет объявление результата от выполнения результата, чтобы обеспечить большую гибкость абстракции. Кроме того, на этом этапе выполняются фильтры результатов действия.
6. Отображение представления
Если результатом является тип представления, вызывается механизм представления, который отвечает за поиск и отображение представления (генерация ответа HTTP). В противном случае итогом выполнения результата действия является вывод результата в ответ HTTP напрямую.
Продолжение следует…
Источник: https://app.pluralsight.com/library/courses/aspnet-core-3-mvc-request-life-cycle/
Post #791
1.33K