Консольные и 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), но об этом как-нибудь в другой раз расскажу.
———— Для введения достаточно. Дальше будет больше практики и красоты кода. Не переключайтесь.