Чтение онлайн

на главную

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

Фильтры действий

Код "перед" выполняется немедленно перед выполнением метода действия, а код "после" выполняется сразу после выполнения метода действия. Фильтры действий могут замкнуть накоротко метод действия и любые фильтры, помещенные внутрь фильтров действий.

Фильтры исключений

Фильтры исключений реализуют сквозную обработку ошибок в приложении. У них нет событий, возникающих до или после, но они обрабатывают любые необработанные исключения, сгенерированные при создании контроллеров, привязке

моделей, запуске фильтров действий либо выполнении методов действий.

Фильтры результатов

Фильтры результатов завершают выполнение экземпляра реализации

IActionResult
для метода действия. Распространенный сценарий применения фильтра результатов предусматривает добавление с его помощью информации заголовка в сообщение ответа HTTP.

Нововведения в ASP.NET Core

Помимо поддержки базовой функциональности ASP.NET MVC и ASP.NET Web API разработчики ASP.NET Core сумели добавить множество новых средств и улучшений в сравнении с предшествующими инфраструктурами. В дополнение к унификации инфраструктур и контроллеров появились следующие усовершенствования и инновации:

• встроенное внедрение зависимостей:

• система конфигурации, основанная на среде и готовая к взаимодействию с облачными технологиями;

• легковесный, высокопроизводительный и модульный конвейер запросов HTTP.

• вся инфраструктура основана на мелкозернистых пакетах NuGet;

• интеграция современных инфраструктур и рабочих потоков разработки для клиентской стороны;

• введение вспомогательных функций дескрипторов;

• введение компонентов представлений;

• огромные улучшения в плане производительности.

Встроенное внедрение зависимостей

Внедрение зависимостей (dependency injection — DI) представляет собой механизм для поддержки слабой связанности между объектами. Вместо создания зависимых объектов напрямую или передачи специфических реализаций в классы и/или методы параметры определяются как интерфейсы. Таким образом, классам или методам и классам могут передаваться любые реализации интерфейсов, что разительно увеличивает гибкость приложения.

Поддержка DI — один из главных принципов, заложенных в переписанную версию ASP.NET Core. Все службы конфигурации и промежуточного ПО через внедрение зависимостей получает не только класс

Startup
(рассматриваемый позже в главе); ваши специальные классы могут (и должны) быть добавлены в контейнер DI с целью внедрения в другие части приложения. При конфигурировании элемента в контейнере ASP.NET Core DI доступны три варианта времени существования, кратко описанные в табл. 29.8.

Элементы в контейнере DI могут быть внедрены внутрь конструкторов и методов классов, а также в представления Razor.

На заметку! Если вы хотите использовать другой контейнер DI, то имейте в виду, что инфраструктура ASP.NET Core проектировалась с учетом такой гибкости. Чтобы узнать, как подключить другой контейнер DI, обратитесь в документацию по ссылке

https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/dependency-injection
.

Осведомленность

о среде

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

IWebHostEnvironment
. В табл. 29.9 описаны свойства, доступные в этом интерфейсе.

Помимо доступа к важным файловым путям интерфейс

IWebHostEnvironment
применяется для выяснения среды времени выполнения.

Выяснение среды времени выполнения

Инфраструктура ASP.NET Core автоматически читает значение переменной среды по имени

ASPNETCORE_ENVIRONMENT
, чтобы установить среду времени выполнения. Если переменная
ASPNETCORE_ENVIRONMENT
не установлена, тогда ASP.NET Core устанавливает ее значение в
Production
(производственная среда). Установленное значение доступно через свойство
EnvironmentName
интерфейса
IWebHostEnvironment
.

Во время разработки приложений ASP.NET Core переменная

ASPNETCORE_ENVIRONMENT
обычно устанавливается с использованием файла настроек или командной строки. Последовательно идущие среды (подготовительная, производственная и т.д.), как правило, задействуют стандартные переменные среды операционной системы.

Вы можете применять для среды любое имя или одно из трех имен, которые предоставляются статическим классом

Environments
.

public static class Environments

{

public static readonly string Development = "Development"; // среда разработки

public static readonly string Staging = "Staging"; // подготовительная среда

public static readonly string Production = "Production"; // производственная среда

}

Класс

HostEnvironmentEnvExtensions
предлагает расширяющие методы на
IHostEnvironment
для работы со свойством имени среды, которые описаны в табл. 29.10.

Ниже перечислены некоторые примеры использования настройки среды:

• выяснение, какие конфигурационные файлы загружать:

• установка параметров отладки, ошибок и ведения журнала:

• загрузка файлов JavaScript и CSS, специфичных для среды.

Вы увидите все это в действии при построении приложений

AutoLot.Api
и
AutoLot.Mvc
в последующих двух главах.

Поделиться:
Популярные книги

Релокант. По следам Ушедшего

Ascold Flow
3. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант. По следам Ушедшего

Везунчик. Дилогия

Бубела Олег Николаевич
Везунчик
Фантастика:
фэнтези
попаданцы
8.63
рейтинг книги
Везунчик. Дилогия

Мама для дракончика или Жена к вылуплению

Максонова Мария
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мама для дракончика или Жена к вылуплению

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Темный Патриарх Светлого Рода 2

Лисицин Евгений
2. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 2

Стражи душ

Кас Маркус
4. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Стражи душ

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Приручитель женщин-монстров. Том 6

Дорничев Дмитрий
6. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 6

Кровавая весна

Михайлов Дем Алексеевич
6. Изгой
Фантастика:
фэнтези
9.36
рейтинг книги
Кровавая весна

Право налево

Зика Натаэль
Любовные романы:
современные любовные романы
8.38
рейтинг книги
Право налево

Мимик нового Мира 3

Северный Лис
2. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 3

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Эра мангуста. Том 4

Третьяков Андрей
4. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра мангуста. Том 4