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

на главную - закладки

Жанры

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

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

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

Создание решения и проектов

Начните с создания нового проекта в Visual Studio. Выберите в диалоговом окне Create a new project (Создание нового проекта) шаблон C# под названием ASP.NET Core Web Application (Веб-приложение ASP.NET Core). В диалоговом окне Configure your new project (Конфигурирование нового проекта) введите

AutoLot.Api
в качестве имени проекта и
AutoLot
для имени решения (рис. 29.1).

На следующем экране выберите шаблон ASP.NET Core Web API, а выше в раскрывающихся списках — .NET Core и ASP.NET Core 5.0. Оставьте флажки внутри области Advanced (Дополнительно) в их стандартном состоянии (рис. 29.2).

Добавьте в решение еще один проект ASP.NET Core Web Application, выбрав шаблон ASP.NET Core Web Арр (Model-View-Controller) (Веб-приложение ASP.NET Core (модель-представление-контроллер)). Удостоверьтесь в том, что в раскрывающихся списках вверху выбраны варианты .NET Core и ASP.NET Core 5.0; оставьте флажки внутри области Advanced в их стандартном состоянии.

Наконец, добавьте в решение проект C# Class Library (.NET Core) (Библиотека классов C# (.NET Core)) и назначьте ему имя

AutoLot.Services
. Отредактируйте файл проекта, чтобы установить
TargetFramework
в
net 5.0
:

<PropertyGroup>

<TargetFramework>net5.0</TargetFramework>

</PropertyGroup>

Добавление проектов AutoLot.Models и AutoLot.Dal

Решение требует завершенного уровня доступа к данным из главы 23. Вы можете либо скопировать файлы в каталог текущего решения, либо оставить их на месте. В любом случае вам нужно щелкнуть правой кнопкой мыши на имени решения в окне Solution Explorer, выбрать в контекстном меню пункт Add?Existing Project (Добавить?Существующий проект), перейти к файлу

AutoLot.Models.csproj
и выбрать его. Повторите такие же действия для проекта
AutoLot.Dal
.

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

Сын Тишайшего

Яманов Александр
1. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.20
рейтинг книги
Сын Тишайшего

"Искажающие реальность" Компиляция. Книги 1-14

Атаманов Михаил Александрович
Искажающие реальность
Фантастика:
боевая фантастика
космическая фантастика
киберпанк
рпг
5.00
рейтинг книги
Искажающие реальность Компиляция. Книги 1-14

Школа. Первый пояс

Игнатов Михаил Павлович
2. Путь
Фантастика:
фэнтези
7.67
рейтинг книги
Школа. Первый пояс

Невеста на откуп

Белецкая Наталья
2. Невеста на откуп
Фантастика:
фэнтези
5.83
рейтинг книги
Невеста на откуп

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Аргумент барона Бронина 4

Ковальчук Олег Валентинович
4. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 4

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Измена. Право на обман

Арская Арина
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на обман

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Жаба с кошельком

Донцова Дарья
19. Любительница частного сыска Даша Васильева
Детективы:
иронические детективы
8.26
рейтинг книги
Жаба с кошельком

Бастард Императора. Том 11

Орлов Андрей Юрьевич
11. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 11

Академия чаросвет. Тень

Ярошинская Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Академия чаросвет. Тень

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4