Рейтинговые книги
Читем онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 578 579 580 581 582 583 584 585 586 ... 642

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

 Фильтры результатов завершают выполнение экземпляра реализации 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.

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

Во время разработки приложений 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 в последующих двух главах.

Конфигурация приложений

В предшествующих версиях ASP.NET для конфигурирования служб и приложений применялся файл web.config, и разработчики получали доступ к конфигурационным настройкам через класс System.Configuration. Разумеется, помещение в файл web.config всех конфигурационных настроек для сайта, а не только специфичных для приложения, делало его (потенциально) запутанной смесью.

В ASP.NET Core была введена значительно более простая система конфигурации. По умолчанию она основывается на простых файлах JSON, которые хранят конфигурационные настройки в виде пар "имя-значение". Стандартный файл для конфигурации называется appsettings.json. Начальная версия файла appsettings.json (созданная шаблонами для веб-приложения ASP.NET Core и службы API) просто содержит конфигурационную информацию для регистрации в журнале, а также настройку для ограничения хостов:

{

  "Logging": {

    "LogLevel": {

      "Default": "Information",

      "Microsoft": "Warning",

1 ... 578 579 580 581 582 583 584 585 586 ... 642
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Похожие на Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю книги

Оставить комментарий