В предшествующих версиях 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.
Подобная гибкость позволяет организациям выбирать платформу развертывания, которая имеет набольший смысл для организации, включая популярные модели развертывания на основе контейнеров (скажем, Docker), и не ограничиваться серверами Windows.
Легковесный и модульный конвейер запросов HTTP
Следуя принципам .NET Core, все в ASP.NET Core происходит по подписке. По умолчанию в приложение ничего не загружается. Такой подход позволяет приложениям быть насколько возможно легковесными, улучшая производительность и сводя к минимуму объем их кода и потенциальный риск.
Создание и конфигурирование решения
Теперь, когда у вас есть опыт работы с рядом основных концепций ASP.NET Core, самое время приступить к построению приложений ASP.NET Core. Проекты ASP.NET Core можно создавать с применением либо Visual Studio, либо командной строки. Оба варианта будут раскрыты в последующих двух разделах.
Использование Visual Studio
Преимущество Visual Studio связано с наличием графического пользовательского интерфейса, который поможет вам пройти через процесс создания решения и проектов, добавления пакетов NuGet и создания ссылок между проектами.
Создание решения и проектов
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT