Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Шрифт:
Интервал:
Закладка:
dotnet add AutoLot.Api reference AutoLot.Services
Создайте проект AutoLot.Mvc, добавьте его в решение, добавьте пакеты NuGet и добавьте ссылки на проекты:
dotnet new mvc -lang c# -n AutoLot.Mvc -au none -o .AutoLot.Mvc -f net5.0
dotnet sln AutoLot.sln add AutoLot.Mvc
rem Добавить ссылки на проекты
dotnet add AutoLot.Mvc reference ..Chapter_23AutoLot.Models
dotnet add AutoLot.Mvc reference ..Chapter_23AutoLot.Dal
dotnet add AutoLot.Mvc reference AutoLot.Services
rem Добавить пакеты
dotnet add AutoLot.Mvc package AutoMapper
dotnet add AutoLot.Mvc package System.Text.Json
dotnet add AutoLot.Mvc package LigerShark.WebOptimizer.Core
dotnet add AutoLot.Mvc package Microsoft.Web.LibraryManager.Build
dotnet add AutoLot.Mvc package Microsoft.EntityFrameworkCore.SqlServer
dotnet add AutoLot.Mvc package Microsoft.VisualStudio.Web.CodeGeneration.Design
На этом настройка с применением командной строки завершена. Она намного эффективнее, если вы не нуждаетесь в графическом пользовательском интерфейсе Visual Studio.
Запуск приложений ASP.NET Core
Веб-приложения предшествующих версий ASP.NET всегда запускались с использованием IIS (или IIS Express). В ASP.NET Core приложения обычно запускаются с применением веб-сервера Kestrel, но существует вариант использования IIS, Apache, Nginx и т.д. через обратный прокси-сервер между Kestrel и другим веб-сервером. В результате происходит не только отход в сторону от строгого применения IIS, чтобы сменить модель развертывания, но и изменение возможностей разработки.
Во время разработки приложения теперь можно запускать следующим образом:
• из Visual Studio с использованием IIS Express;
• из Visual Studio с применением Kestrel;
• из командной строки .NET CLI с использованием Kestrel;
• из Visual Studio Code (VS Code) через меню Run (Запуск) с применением Kestrel;
• из VS Code через окно терминала с использованием .NET CLI и Kestrel.
Конфигурирование настроек запуска
Файл launchsettings.json (расположенный в узле Properties (Свойства) окна Solution Explorer) конфигурирует способ запуска приложения во время разработки под управлением Kestrel и IIS Express. Ниже приведено его содержимое в справочных целях (ваши порты IIS Express будут другими):
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:42788",
"sslPort": 44375
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"AutoLot.Api": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Использование Visual Studio
В разделе iisSettings определены настройки запуска приложения с применением IIS Express в качестве веб-сервера. Наиболее важными настройками, на которые следует обратить внимание, являются настройка applicationUrl, определяющая порт, и блок environmentVariables, где определяется среда времени выполнения. При запуске приложения в режиме отладки эта настройка заменяет собой любую настройку среды машины. Второй профиль (AutoLot.Mvc или AutoLot.Api в зависимости от того, какой проект используется) определяет настройки для ситуации, когда приложение запускается с применением Kestrel в качестве веб-сервера. Профиль определяет applicationUrl и порты плюс среду.
Меню Run в Visual Studio позволяет выбрать либо IIS Express, либо Kestrel, как показано на рис. 29.3. После выбора профиля проект можно запустить, нажав <F5> (режим отладки), нажав <Ctrl+F5> (эквивалентно выбору пункта Start Without Debugging (Запустить без отладки) в меню Debug (Отладка)) или щелкнув на кнопке запуска с зеленой стрелкой (эквивалентно выбору пункта Start Debugging (Запустить с отладкой) в меню Debug).
На заметку! В случае запуска приложения из Visual Studio средства редактирования и продолжения больше не поддерживаются.
Использование командной строки или окна терминала Visual Studio Code
Чтобы запустить приложение из командной строки или окна терминала VS Code, перейдите в каталог, где находится файл .csproj для вашего приложения. Введите следующую команду для запуска приложения под управлением веб-сервера Kestrel:
dotnet run
Для завершения процесса нажмите <Ctrl+C>.
Изменение кода во время отладки
При запуске из командной строки код можно изменять, но изменения никак не будут отражаться в выполняющемся приложении. Чтобы изменения отражались в выполняющемся приложении, введите такую команду:
dotnet watch run
Обновленная команда вместе с вашим приложением запускает средство наблюдения за файлами. Когда в файлах любого проекта (или проекта, на который имеется ссылка) обнаруживаются изменения, приложение автоматически останавливается и затем снова запускается. Нововведением в версии ASP.NET Core 5 является перезагрузка любых подключенных окон браузера. Хотя в итоге средства редактирования и продолжения в точности не воспроизводятся, это немалое удобство при разработке.
Использование Visual Studio Code
Чтобы запустить проекты в VS Code, откройте каталог, где находится решение. После нажатия <F5> (или щелчка на кнопке запуска) среда VS Code предложит выбрать проект для запуска (AutoLot.Api или AutoLot.Mvc), создаст конфигурацию запуска и поместит ее в файл по имени launch.json. Кроме того, среда VS Code использует файл launchsettings.json для чтения конфигурации портов.
Изменение кода во время отладки
В случае запуска приложения из VS Code код можно изменять, но изменения никак не будут отражаться в выполняющемся приложении. Чтобы изменения отражались в выполняющемся приложении, введите в окне терминала команду dotnet watch run.
Отладка приложений ASP.NET Core
При запуске приложения из Visual Studio или VS Code отладка работает вполне ожидаемым образом. Но при запуске из командной строки вам необходимо присоединиться к выполняющемуся процессу, прежде чем вы сможете отлаживать свое приложение. В Visual Studio и VS Code это делается легко.
Присоединение с помощью Visual Studio
После запуска приложения (посредством команды dotnet run или dotnet watch run) выберите пункт меню Debug►Attach to Process (Отладкам►Присоединиться к процессу) в Visual Studio. В открывшемся диалоговом окне Attach to Process (Присоединение к процессу) отыщите процесс по имени вашего приложения (рис. 29.4).
После присоединения к выполняющемуся процессу вы можете устанавливать в Visual Studio точки останова, и отладка будет работать так,