Использование Сценариев и CLI
Одна из моих любимых особенностей новой платформы .NET Core/.NET 5 - это упор на интерфейс командной строки. В .NET Framework этого не было. В первую очередь он предназначался для использования с Visual Studio и IIS, и поставлялся в то время, когда большинство приложений для Windows не предлагали реализацию из командной строки, по крайней мере, не в качестве полноценной опции.
Сегодня большинство вещей в Windows можно создавать с помощью сценариев, и практически всё, что вы хотите делать в .NET, вы можете делать из CLI. Даже для вещей, которые обычно требовали IDE или ручного редактирования файлов проекта. Некоторые из этих вещей сначала были доступны в виде сценариев PowerShell, но позже появились кроссплатформенные CLI, которые теперь кажутся стандартом. Будь то управление ресурсами Azure или создание и тестирование проектов dotnet, интерфейсы командной строки доступны и, как правило, довольно просты в использовании.
Самым большим преимуществом наличия CLI является не то, что кодить в консоли круче, чем в IDE. Преимущество заключается в тех возможностях, которые она предоставляет, потому что объединить несколько команд CLI элементарно, тогда как автоматизация пользовательского интерфейса намного сложнее (да, вы могли бы создать сценарий, который открывал бы IDE и щёлкал бы по различным элементам, но это было бы чрезвычайно медленно в реализации и запуске, чем эквивалент в CLI).
Вы даже можете обнаружить, что ваше собственное ПО выиграет от наличия интерфейса командной строки, который позволит вашей службе поддержки или другим группам быстрее выполнять стандартные задачи.
В качестве простого примера я привык использовать простой скрипт для создания небольших решений, используя то соглашение, которое я предпочитаю. Для небольших образцов и даже более крупных репозиториев, в которых есть одно решение, мне нравится, когда файл решения находится в корне репозитория git, а проекты – в папках
src и tests. Создание такой структуры с помощью Visual Studio утомительно, потому что Visual Studio не любит раскладывать вещи по папкам по умолчанию. Но с помощью нескольких строк кода в CLI легко получить именно тот вариант, который вы хотите.Типичная структура проекта:
- папка
src – содержит код,- папка
tests – содержит все виды тестов,- файл решения
CompanyName.ApplicationName.sln
Чтобы создать такую структуру я просто использую небольшой скрипт, изменяя имена по необходимости:dotnet new slnПервый шаг создает новое пустое решение. По умолчанию он будет иметь то же имя, что и папка, в которой вы находитесь, что обычно соответствует имени вашего репозитория git. Если вы хотите указать имя, просто добавьте к этой команде параметр
mkdir src
mkdir tests
dotnet new console -o src/Sample.Console
dotnet sln add src/Sample.Console/Sample.Console.csproj
-n {ИМЯ}.Второй шаг - создать подпапки
src и tests. Вы также можете добавить сюда дополнительные папки, если хотите.Следующие две команды вы должны повторить по мере необходимости для каждого проекта, который вы хотите создать и добавить в своё решение. Имя для каждого проекта будет соответствовать имени папки, которое вы укажете в аргументе -o. Конечно, можно создать такой скрипт с параметрами и просто передавать нужные имена при вызове скрипта.
Источник: https://ardalis.com/script-new-dotnet-solution-from-cli/
Автор оригинала: Steve "Ardalis" Smith