TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.77K subscribers
Post #1150 1.37K
День девятьсот тридцать пятый. #TipsAndTricks
Использование Сценариев и 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

mkdir src
mkdir tests

dotnet new console -o src/Sample.Console
dotnet sln add src/Sample.Console/Sample.Console.csproj

Первый шаг создает новое пустое решение. По умолчанию он будет иметь то же имя, что и папка, в которой вы находитесь, что обычно соответствует имени вашего репозитория git. Если вы хотите указать имя, просто добавьте к этой команде параметр -n {ИМЯ}.

Второй шаг - создать подпапки src и tests. Вы также можете добавить сюда дополнительные папки, если хотите.

Следующие две команды вы должны повторить по мере необходимости для каждого проекта, который вы хотите создать и добавить в своё решение. Имя для каждого проекта будет соответствовать имени папки, которое вы укажете в аргументе -o. Конечно, можно создать такой скрипт с параметрами и просто передавать нужные имена при вызове скрипта.

Источник: https://ardalis.com/script-new-dotnet-solution-from-cli/
Автор оригинала: Steve "Ardalis" Smith
More from @netdeveloperdiary
  1. Oct 16, 2026День 2816. #Карьера #AI Станет ли ИИ-Кодинг Концом Программирования для Людей? Автор ориги…
  2. Oct 15, 2026Post #3374
  3. Oct 14, 2026Post #3373
  4. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 Почему существует…
  5. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  6. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →