В этом руководстве мы воспользуемся существующим приложением WebApi (оно вычисляет сумму и произведение двух чисел), чтобы продемонстрировать варианты использования
1. Создание серверных служб для мобильных приложений.
2. Разработка приложений ASP.NET Core с помощью dotnet watch.
3. Создание справочных страниц веб-API ASP.NET с помощью Swagger.
4. Открытый веб-интерфейс для .NET (OWIN).
5. Выбор правильной среды разработки .NET на сервере.
Сначала скачайте образец приложения. Оно содержит два проекта,
Консоль отобразит сообщения (пример ниже), которые укажут на то, что приложение работает и ожидает запросы.
В браузере перейдите по адресу
Если вы перейдете по адресу
Добавление
Выполнение команд
Любую команду
Чтобы выполнить
Внесение изменений с помощью
Убедитесь, что dotnet watch работает.
Давайте исправим ошибку в методе
Сохраните файл. В консоли отобразятся сообщения, которые укажут на то, что
Убедитесь, что
Выполнение тестов с помощью
UPD: Благодарим за корректировку Илью.
dotnet watch
. Образец приложения специально содержит ошибку, которую мы исправим во время изучения.Второй цикл статей по ASP.NET Core
1. Создание серверных служб для мобильных приложений.
2. Разработка приложений ASP.NET Core с помощью dotnet watch.
3. Создание справочных страниц веб-API ASP.NET с помощью Swagger.
4. Открытый веб-интерфейс для .NET (OWIN).
5. Выбор правильной среды разработки .NET на сервере.
Введение
dotnet watch
— это инструмент для разработчиков, который выполняет команду dotnet
при изменении исходных файлов. С его помощью можно компилировать, тестировать или публиковать изменения в коде.Начало работы
Сначала скачайте образец приложения. Оно содержит два проекта,
WebApp
(веб-приложение) и WebAppTests
(модульные тесты для веб-приложения).В консоли перейдите в папкуWebApp
и выполните команды:
dotnet restore
dotnet run
Консоль отобразит сообщения (пример ниже), которые укажут на то, что приложение работает и ожидает запросы.
$ dotnet run
Hosting environment: Production
Content root path: C:/Docs/aspnetcore/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
В браузере перейдите по адресу
http://localhost:5000/api/math/sum?a=4&b=5
, вы увидите результат 9
.Если вы перейдете по адресу
http://localhost:5000/api/math/product?a=4&b=5
, снова получите 9
вместо ожидаемого 4 * 5 = 20
. Мы это исправим ниже.Добавление dotnet watch
в проект
1. ДобавьтеMicrosoft.DotNet.Watcher.Tools
в файл .csproj:
<ItemGroup> <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" /> </ItemGroup>
2. Выполните командуdotnet restore
.
Выполнение команд dotnet
с помощью dotnet watch
Любую команду
dotnet
можно выполнить с помощью dotnet watch
, например:Команда | Команда с watch |
---|---|
dotnet run | dotnet watch run |
dotnet run -f net451 | dotnet watch run -f net451 |
dotnet run -f net451 — --arg1 | dotnet watch run -f net451 — --arg1 |
dotnet test | dotnet watch test |
Чтобы выполнить
WebApp
с помощью watcher, выполните команду dotnet watch run
в папке WebApp
. Консоль отобразит сообщения, что watch
работает.Внесение изменений с помощью dotnet watch
Убедитесь, что dotnet watch работает.
Давайте исправим ошибку в методе
Product
в MathController
, чтобы он возвращал произведение, а не сумму:public static int Product(int a, int b)
{
return a * b;
}
Сохраните файл. В консоли отобразятся сообщения, которые укажут на то, что
dotnet watch
обнаружил изменение в файле и перезапустил приложение.Убедитесь, что
http://localhost:5000/api/math/product?a=4&b=5
выдает правильный результат.Выполнение тестов с помощью dotnet watch
- Измените метод
Product
вMathController
к возврату суммы и сохраните файл.- В командной строке перейдите в
WebAppTests
.- Выполните
dotnet restore
.- Выполните
dotnet watch test
. Вы увидите сообщение о том, что тест не прошёл и watcher ожидает изменение в файле:
Total tests: 2. Passed: 1. Failed: 1. Skipped: 0. Test Run Failed.
- Исправьте метод
Product
так, чтобы он возвращал произведение.
dotnet watch
обнаружит изменение в файле и перезапустит тесты. В консоли отобразится сообщение, что тест пройден успешно.dotnet-watch
на GitHub
dotnet-watch
— это часть репозитория DotNetTools. Всё, что вы не нашли в этом руководстве, можно посмотреть именно там.UPD: Благодарим за корректировку Илью.
Поделиться с друзьями
Комментарии (7)
pshhpshh
20.03.2017 14:20Возможность дебага в таком режиме добавили?
Что на счет скорости? В последний раз, когда я пробовал, этот watch особо не прибавил в скорости изменил-увидел.
kanekt
dotnet-watch — можно использовать на основном сервере или лучше только для локальной разработки?
SonicGD
А вы на продакшн исходники загружаете? Поидее там у вас только dll должны быть.
kanekt
вообще хотелось бы иметь возможность рестарта приложения из исходного кода, но это можно без заморочек достичь только при изменении web.config