Создание middleware на базе фабрики классов

Компоненты middleware можно создавать, как в форме делегатов (inline middleware), так и в виде отдельных классов. При создании класса middleware мы использовали т.н. активацию middleware по соглашению, когда к создаваемом классу предъявляются определенные требования к конструктору, реализуемым методам и т.д. Вместе с этим в ASP.NET Core, начиная с версии 2.0 появилась третья возможность создания компонентов middleware — на базе фабрики классов (factory-based middleware).

Читать далее

Работа с окружением в ASP.NET Core. Интерфейс IWebHostEnvironment

При разработке приложения ASP.NET Core мы можем получать и работать со сведениями об окружении в котором запускается наше приложение. Для этого используется свойство Environment класса WebApplication, которое предоставляет сведения об окружении в виде IWebHostEnvironment. Посмотрим какие свойства и методы мы можем использовать для работы с окружением.

Читать далее

Порядок построения конвейера обработки запроса в ASP.NET Core

До этого момента мы создавали компоненты middleware, не заостряя внимание на важном моменте, а именно на том, что порядок, в котором компоненты middleware добавляются в файл Program.cs, определяет порядок их вызова при запросах и соблюдать этот порядок крайне важно для обеспечения безопасности, производительности и функциональности. Сегодня рассмотрим построение конвейера запросов с учётом порядка компонентов middleware в конвейере.

Читать далее

Классы middleware в ASP.NET Core

До этого момента при изучении ASP.NET Core мы использовали компоненты middleware в форме делегатов или, так называемые inline middleware. Такой подход позволяет довольно быстро встроить компонент middleware в конвейер запросов и продемонстрировать работу приложения. При этом, стоит учитывать, что далеко не всегда компонент middleware будет содержать минимум исходного кода и выполнять одно-два действия. В этом случае рекомендуется выносить логику middleware в отдельный класс с определенным описанием.

Читать далее

Ветвление конвейера с использованием методов MapWhen и UseWhen

В предыдущей части мы рассмотрели метод Map(), который также как и методы Run() и Use() используется для встраивания middleware в конвейер запросов ASP.NET и, при этом, создает ветвление конвейера. Сегодня рассмотрим ещё два метода ASP.NET Core для встраивания middleware и ветвления конвейера запросов — это методы MapWhen() и UseWhen().

Читать далее

Создание конвейера запросов в ASP.NET Core. Метод Map

В предыдущей части мы на основании данных запроса создали простейшую систему маршрутизации в нашем приложении ASP.NET Core. При этом, в ASP.NET Core имеются возможности создания веток конвейера запросов. В частности, сегодня мы рассмотрим создание конвейера запросов с использованием метода Map.

Читать далее

Получение данных запроса. Работа с HttpRequest

При разработке web-приложений в ASP.NET Core важно знать, какой именно запрос осуществляет пользователь. Как минимум нам необходимо знать по какому пути отправлен запрос, какой HTTP-метод был использован (GET, POST, PUT и т.д.). Эти и другие свойства запроса содержаться в свойстве HttpRequest объекта HttpContext о котором пойдет речь далее.

Читать далее

Отправка ответа клиенту. Работа с HttpResponse.

Как мы уже знаем, все данные запроса передаются в компоненты middleware через объект HttpContext (контекст запроса), который, помимо прочих полезных свойств, содержит также свойство HttpResponse, представляющее собой объект, содержащий данные ответа клиенту. Разберемся с этим объектом более детально.

Читать далее

Создание конвейера запросов в ASP.NET Core с помощью WebApplication. Методы Run и Use

Как мы уже знаем, запросы в ASP.NET Core обрабатываются по принципу конвейера. В самом простейшем приложении ASP.NET Core встраивается один делегат запроса, обрабатывающий все входящие запросы. В этом случае конвейер запросов как таковой отсутствует. Вместо этого в ответ на каждый HTTP-запрос вызывается одна анонимная функция.

Читать далее

Конвейер обработки запросов и middleware в ASP.NET Core

Обработка каждого запроса в ASP.NET Core устроена по принципу конвейера, который состоит из различных компонентов, которые также называются middleware. Также, в русскоязычной литературе можно встретить название «ПО промежуточного слоя», «компоненты middleware» или просто — middlewareПри получении запроса данные запроса передаются в первый компонент в конвейере, затем, компонент может завершить обработку запроса или же передать запрос далее по конвейеру. После того, как запрос обработан последним компонентом, он возвращается предыдущему и т.д.

Читать далее