Консольные и CLI приложения на .NET

Консольные и CLI приложения на .NET#

Во времена бурной молодости работы в IRON PROGRAMMER была у меня задумка запустить мини-курс по CLI приложениям. И даже составил план и подготовил почти половину лекционного материала. Но рук не хватило доделать, а теперь уже и не работая там запускать отдельный курс нет ни времени ни возможности.

Но и не пропадать же материалу. Тем более, что некоторые вещи вот так вот сходу не скажешь, как реализовать, а может пригодиться. Да и вообще интересно узнавать что-то новое. Так что, решил начать постить здесь некоторые темы из нерождённого курса, должно быть полезно.

Это не отменяет других тем, а их много и разных, так что тем, кто остается здесь скучно не будет )) И спасибо, что остались!

Итак, почему CLI и в чем отличие от обычных консольных приложений.

Начнем с того, что именно CLI приложениями мы все пользуемся с той или иной периодичностью. Git, dotnet, npm, docker - вот они. Это именно CLI приложения. Отличие от консольных в том, что по большей части эти приложения при запуске получают аргументы и выполняют одну команду за вызов, в то время как консольное приложение может быть активным продолжительное время, пока не выйдешь из него сам. Граница достаточно условная, но она есть и в общем виде разница именно в этом. И в том, что запускается CLI приложение с помощью

Сначала было слово...

команды в терминале, например:

git commit -m "initial commit"

Собственно git вызывается командой, ему передаются параметры (точнее команда commit и параметр -m с аргументом в виде строки initial commit) и приложение выполняет одно действие - коммит. Всё. После этого ничего само не происходит. В случае с классическим консольным приложением его надо было бы запустить отдельно, ввести руками или выбрать в меню действие, выполнить, выйти из приложения. То есть, выполнить гораздо больше действий для того же объема задач. Значит, если мы хотим что-то автоматизировать, при этом получая высокую скорость доступа к функционалу, есть резон писать именно CLI приложение.

————

Я таких приложений написал в свое время несколько. Это и генератор (+ защищенное хранилище) паролей и приложение для подсчета строк кода и сборщик статистики в репозитории. И еще есть два почти идентичных приложения по поиску больших файлов (одно на C# второе на RUST), но об этом как-нибудь в другой раз расскажу.

———— Для введения достаточно. Дальше будет больше практики и красоты кода. Не переключайтесь.