dimohy
April 11, 2024, 7:57am
1
Cocona 를 이용하면 콘솔에서 실행하는 애플리케이션을 구조적으로 만들 수 있습니다.
ASP.NET Core와 유사한 미니멀 API
UNIX 도구 표준과 같은 명령줄 옵션 처리
기본 제공 도움말 문서 지원
사용자 정의 가능한 CLI 프레임워크
using Cocona;
CoconaApp.Run((string name) =>
{
Console.WriteLine($"Hello {name}");
})
$ dotnet run
Usage: ConsoleAppSample [--name <String>]
Options:
--name <String> (Required)
-h, --help Show help message
--version Show version
$ dotnet run -- --name Cocona
Hello Cocona
6 Likes
저도 Cocona를 통해 Console의 신세계를 접했었는데…
매번 콘솔앱에도 IoC Container를 보일러 플레이트처럼 생각없이 붙이다가 문득 Cocona에 제네릭 호스트가 붙어있는 것은 없을까 하던 찰나에 Cocona 문서의 가장 마지막 줄 을 읽어보고 Cocona에서 ConsoleAppFramework 로 갈아타게되었습니다.
단지 ConsoleAppFramework는 .net core 이상의 환경에서 최신 버전들을 지원하기 때문에 .NET Framework 4.8 환경에서는 어쩔 수 없이 Cocona + Generic Host 환경에서 개발하고 있네요. ㅠㅠ
디모이님께서도 일전에 소개해주셨습니다.
Cysharp 에 훌륭한 오픈 소스 프로젝트가 많이 있네요.
오늘 소개해 드릴 ConsoleAppFramework 은 콘솔 애플리케이션을 만들 때 쉽게 CLI(명령줄 인터페이스) 도구 및 데몬, 다중 배치 응용 프로그램을 만들 수 있는 훌륭한 환경을 제공합니다. 또한 .NET Core Generic Host 기반이기 때문에 GenericHost 기반 환경과 쉽게 통합이 됩니다.
// Register two commands(use short-name, argument)
// hello -m
// sum [x] [y]
var app = ConsoleApp.Create(args);
app.AddCommand("hello", ([Option("m", "Message to display.")] string message) => Console.WriteLine($"Hello {message}"));
app.AddCommand("sum", ([Option(0)] int x, [Option(1)…
포럼에서도 2번이나 소개되었네요.
(다 같은 회사 사람들…대단대단…)
5 Likes
ConsoleAppFramework 만든 분이 게임 개발자인데 게임 개발쪽은 신규 게임 개발 할때는 언제나 그때의 최신 기술을 사용하는 경향이 있어서 이 분도 오래된 버전은 잘 지원하지 않는 것 같습니다. 보통 최저 기준이 Unity에서 지원하는 닷넷 버전입니다
3 Likes
System.CommandLine은 유기된걸까요… 시험판에서 전혀 손보지 않고있네요
System.CommandLine.DragonFruit 적용해보니 편한데 제대로 쓰기에는 어설펏거든요
2 Likes