Table of Contents

English | 日本語 | 简体中文 | 繁體中文 | 한국어 |

프로젝트 템플릿

ZYC.Framework는 두 가지 일반적인 스캐폴딩 작업을 위한 dotnet tool 명령을 제공합니다. 새 Host 프로젝트 만들기와 기존 소스 트리에 새 모듈 추가입니다. 이 문서는 템플릿, 생성 구조, 명령 옵션을 설명합니다.

명령 범위

명령 목적 적합한 경우
zyc new <ProjectName> 프로젝트 템플릿에서 외부 ZYC.Framework Host 프로젝트를 만듭니다. 프레임워크 저장소 밖에서 새 앱이나 샘플을 시작할 때.
zyc new-module <ModuleName> --src-root <SourceRoot> 기존 소스 트리 안에 모듈 구현 프로젝트와 대응하는 *.Abstractions 프로젝트를 만듭니다. 기존 ZYC.Framework 스타일 저장소를 확장할 때.

CLI를 .NET tool로 설치하거나 업데이트합니다.

dotnet tool install -g ZYC.Framework.CLI --version 1.4.3
dotnet tool update -g ZYC.Framework.CLI --version 1.4.3

명령을 확인합니다.

zyc --help
zyc new --help
zyc new-module --help

minimal 템플릿

minimalzyc new의 기본 템플릿입니다. ZYC.Framework.Alpha를 참조하는 작은 WPF Host 프로젝트를 만들고, 하나의 WPF 뷰를 simple tab으로 등록합니다.

zyc new MyCompany.Tools

명시적으로 쓰면 다음과 같습니다.

zyc new MyCompany.Tools --template minimal

생성 구조:

MyCompany.Tools/
  MyCompany.Tools.csproj
  MyCompany.Tools.slnx
  Module.cs
  ModuleConfig.json
  UI/
    ToolsView.xaml
    ToolsView.xaml.cs

하나의 단순한 WPF 뷰만 필요한 실행 가능한 Host를 가장 빠르게 만들고 싶을 때 사용합니다.

modular 템플릿

modular는 Entry 프로젝트, 모듈 구현 프로젝트, 모듈 Abstractions 프로젝트가 있는 작은 솔루션을 만듭니다.

zyc new MyCompany.Tools --template modular

생성 구조:

MyCompany.Tools/
  Directory.Build.props
  Directory.Build.targets
  version.props
  MyCompany.Tools.slnx
  Entry/
    Entry.csproj
  ZYC.Framework.Modules.MyCompany.Tools/
    ZYC.Framework.Modules.MyCompany.Tools.csproj
    Module.cs
    ToolsMainMenuItem.cs
    ToolsTabItem.cs
    ToolsTabItemFactory.cs
    UI/
      ToolsView.xaml
      ToolsView.xaml.cs
  ZYC.Framework.Modules.MyCompany.Tools.Abstractions/
    ToolsModuleConstants.cs
    ZYC.Framework.Modules.MyCompany.Tools.Abstractions.csproj

공개 상수는 Abstractions에 두고, 라우팅 탭 팩터리, 메인 메뉴 항목, 모듈 진입점을 갖춘 실제 프레임워크 모듈 형태가 필요할 때 사용합니다.

zyc new 옵션

옵션 설명
<ProjectName> 필수 프로젝트 이름. Acme.Tools처럼 유효한 점 구분 C# 식별자여야 합니다.
--template, -t 프로젝트 템플릿. 지원 값은 minimal, modular입니다. 기본값은 minimal입니다.
--output, -o 출력 디렉터리. 기본값은 ./<ProjectName>입니다.
--package-version ZYC.Framework.Alpha 패키지 버전. 기본값은 CLI 제품 버전입니다.
--overwrite, -f 기존 파일을 덮어씁니다. 이 플래그가 없으면 대상 파일이 있을 때 생성이 실패합니다.

일반적인 옵션을 모두 지정한 예:

zyc new Acme.Tools --template modular --output ./Acme.Tools --package-version 1.4.3

기존 소스 트리를 위한 new-module

저장소에 이미 src 트리가 있고 하나의 모듈 쌍을 추가하려면 new-module을 사용합니다.

zyc new-module Reports --src-root ./src --slnx ./ZYC.Framework.slnx

이 명령은 다음을 만듭니다.

src/
  ZYC.Framework.Modules.Reports/
    ZYC.Framework.Modules.Reports.csproj
    Module.cs
    ReportsMainMenuItem.cs
    ReportsTabItem.cs
    ReportsTabItemFactory.cs
    UI/
      ReportsView.xaml
      ReportsView.xaml.cs
  ZYC.Framework.Modules.Reports.Abstractions/
    ReportsModuleConstants.cs
    ZYC.Framework.Modules.Reports.Abstractions.csproj

--slnx는 선택 사항입니다. 제공하면 생성된 프로젝트가 솔루션 파일의 /Modules/ 폴더 아래에 추가됩니다. 상대 --slnx 경로는 --src-root를 기준으로 해석됩니다.

new-module은 target 이름을 정규화합니다. 다음 입력은 모두 같은 모듈 target을 생성합니다.

zyc new-module Reports --src-root ./src
zyc new-module ZYC.Framework.Modules.Reports --src-root ./src
zyc new-module ZYC.Framework.Modules.Reports.Abstractions --src-root ./src

new-module 옵션

옵션 설명
<ModuleName> 위치 인수 형태의 target 모듈 이름.
--target, -t target 모듈 이름. 위치 값 또는 이 옵션 중 하나를 사용하고, 서로 다른 값을 동시에 지정하지 마세요.
--src-root, -s 필수 소스 루트. 모듈 프로젝트가 여기에 생성됩니다.
--slnx 업데이트할 선택적 solution XML 파일. 솔루션 업데이트가 필요 없으면 생략합니다.
--overwrite, -f 기존 파일 또는 모듈 디렉터리를 덮어씁니다. 이 플래그가 없으면 대상 디렉터리가 있을 때 생성이 실패합니다.

템플릿 토큰

프로젝트 템플릿은 경로와 텍스트 파일에서 다음 토큰을 치환합니다.

Token
__PROJECT_NAME__ 전체 프로젝트 이름. 예: MyCompany.Tools.
__PROJECT_SHORT_NAME__ 마지막 점 구분 세그먼트. 예: Tools.
__PROJECT_HOST__ URI host로 사용하는 소문자 짧은 이름. 예: tools.
__PACKAGE_VERSION__ --package-version 또는 CLI 제품 버전으로 선택된 패키지 버전.

텍스트 템플릿 파일은 UTF-8 with BOM으로 작성되고 CRLF 줄 끝으로 정규화됩니다.

템플릿 선택

상황 권장 명령
하나의 뷰가 있는 가장 빠른 Host가 필요합니다. zyc new MyCompany.Tools
새 앱에 모듈 스타일 솔루션이 필요합니다. zyc new MyCompany.Tools --template modular
기존 저장소에 모듈을 추가합니다. zyc new-module Reports --src-root ./src
모듈 프로젝트를 기존 .slnx에 추가해야 합니다. zyc new-module Reports --src-root ./src --slnx ./ZYC.Framework.slnx