Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!
Шрифт:
Интервал:
Закладка:
Нововведения в 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 в последующих двух главах.
Конфигурация приложений
В предшествующих версиях 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",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
Шаблон также создает файл appsettings.Development.json. Система конфигурации работает в сочетании с осведомленностью о среде времени выполнения, чтобы загружать дополнительные конфигурационные файлы на основе среды времени выполнения. Цель достигается инструктированием системы конфигурации о необходимости загрузки файла с именем appsettings.{имя_среды}.json после файла appSettings.json. В случае запуска приложения в среде разработки после файла начальных настроек загружается файл appsettings.Development.json. Если запуск происходит в подготовительной среде, тогда загружается файл appsettings.Staging.json. Важно отметить, что при загрузке более одного файла любые настройки, присутствующие в нескольких файлах, переопределяются настройками из последнего загруженного файла; они не являются аддитивными. Все конфигурационные настройки получаются через экземпляр реализации IConfiguration, доступный посредством системы внедрения зависимостей ASP.NET Core.
Извлечение настроек
После построения конфигурации к настройкам можно обращаться с использованием традиционного семейства методов GetXXX(), таких как GetSection(), GetValue() и т.д.:
Configuration.GetSection("Logging")
Также доступно сокращение для получения строк подключения:
Configuration.GetConnectionString("AutoLot")
Дополнительные возможности конфигурации будут повсеместно применяться в оставшемся материале книги.
Развертывание приложений ASP.NET Core
Приложения ASP.NET предшествующих версий могли развертываться только на серверах Windows с использованием IIS. Инфраструктуру ASP.NET Core можно разворачивать под управлением многочисленных операционных систем многими способами, в том числе и вне веб-сервера. Ниже перечислены высокоуровневые варианты:
• на сервере Windows (включая Azure) с применением IIS;
• на сервере Windows (включая службы приложений Azure) вне IIS;
• на сервере Linux с использованием Apache или NGINX;
• под управлением Windows или Linux в контейнере Docker.
Подобная гибкость позволяет организациям выбирать платформу развертывания, которая имеет набольший смысл для организации, включая популярные модели
Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
- 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
- 2. Просьба отказаться от оскорблений, угроз и запугиваний.
- 3. Просьба отказаться от нецензурной лексики.
- 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.
Оставить комментарий
-
Гость Наталия30 июль 23:31 Спасибо автору. Книга интересная, увлекательная, легко читается, оставляет приятные впечатления. Желаю автору дальнейших... Королева драконов - Анна Минаева
-
Гость Татьяна30 июль 22:31 Душевная книга, очень люблю Михалкову, произведения всегда сочные, с неожиданным концом. Много личных историй героев, читаются... Посмотри, отвернись, посмотри - Елена Ивановна Михалкова
-
Гость Ольга30 июль 19:51 Двоякое впечатление от книги. С одной стороны, интересные истории пациентов, интересные рассказы об операциях, с другой - слишком... На пути к сердцу. Записки кардиохирурга - Асланбек Аслудинович Дубаев