English | 日本語 | 简体中文 | 繁體中文 | 한국어 |
ZYC.Framework
.NET 10과 WPF를 기반으로 구축된 고성능, 모듈화, 확장 가능한 데스크톱 자동화 프레임워크입니다.
📖 개요
ZYC.Framework은 WPF의 표현력 있는 UI 기능과 .NET 10의 최신 기능을 결합한 현대적인 데스크톱 자동화 솔루션입니다. 모듈화된 아키텍처를 통해 복잡한 자동화 시스템의 개발과 유지보수를 단순화하는 것을 목표로 합니다.
본 프로젝트는 분산 애플리케이션 오케스트레이션을 위해 .NET Aspire를 깊이 통합하고 있으며, Blazor 및 WebView2 기반의 하이브리드 접근 방식을 지원하여 Web UI와 네이티브 데스크톱 경험 중 필요에 따라 선택할 수 있습니다.
✨ 주요 기능
- 모듈화 아키텍처: 비즈니스 로직을 분리하여 동적 로딩과 독립적인 개발을 지원합니다.
- 현대적인 UI 경험: WPF 기반으로 다중 워크스페이스 및 다중 탭 인터랙션을 지원합니다.
- 하이브리드 개발:
- WebView2를 통한 최신 Web 애플리케이션 임베딩.
- Blazor를 활용한 데스크톱 환경에서의 Web 컴포넌트 재사용.
- 클라우드 네이티브 대응: .NET Aspire 내장 지원으로 서비스 탐색, 거버넌스 및 배포를 단순화합니다.
- 엔터프라이즈 지향 기능 내장 (Batteries Included):
- 작업 관리: 작업 스케줄링 및 전체 라이프사이클 관리.
- 예외 처리: 강력한 전역 오류 수집 및 진단 메커니즘.
- 다국어 지원: 글로벌 애플리케이션을 위한 내장 로컬라이제이션 기능.
🛠️ 기술 스택
- Runtime: .NET 10 SDK
- UI Framework: WPF (Windows Presentation Foundation)
- Hybrid UI: WebView2 + Blazor
- Orchestration: .NET Aspire
- Architecture: Modular Monolith / Plugin-based
🚀 빠른 시작
자세한 내용은 다음 가이드를 참고하세요:
👉 빠른 시작 가이드 (quick-start.ko.md)
프로젝트 생성
권장 시작 방식은 전역 dotnet tool입니다. CLI를 설치하거나 업데이트한 뒤 zyc new로 호스트 프로젝트를 만듭니다:
dotnet tool install --global ZYC.Framework.CLI --version 1.4.3
dotnet tool update --global ZYC.Framework.CLI --version 1.4.3
zyc new MyCompany.Tools --template minimal
수동으로 통합해야 하는 경우 코어 패키지를 NuGet으로 직접 추가할 수 있습니다:
dotnet add package ZYC.Framework.Alpha --version 1.4.3
문서
| 가이드 | 목적 |
|---|---|
| 빠른 시작 | 프로젝트를 만들고 수동 생성 대체 흐름을 이해합니다. |
| 아키텍처 | 시작, 모듈 로딩, 구성, 탐색, 런타임 서비스를 이해합니다. |
| 탐색과 워크스페이스 | URI 탐색, 탭, 워크스페이스, 복원 타이밍을 다룹니다. |
| 확장 지점 | 모듈이 호스트를 확장할 수 있는 공개 지점을 확인합니다. |
| 내장 모듈 | 내장 모듈과 주요 책임을 확인합니다. |
| 모듈 개발 | 계약, ModuleBase, 메뉴, 탭을 포함한 런타임 모듈을 만듭니다. |
| 프로젝트 템플릿 | minimal 및 modular CLI 템플릿을 선택하고 이해합니다. |
| 문제 해결 | CLI, 모듈 로딩, 라우팅, NuGet 모듈, Aspire, 터미널 문제를 진단합니다. |
기능
핵심 프레임워크
| 기능 | 설명 |
|---|---|
| 모듈 아키텍처 | 기능을 모듈 단위로 구성하고 동적 확장을 지원합니다. |
| 멀티 워크스페이스 | 워크스페이스 분할, 병합, 재배치 지원. |
| 멀티 탭 탐색 | URI 기반 탭 탐색 및 복원. |
| 확장 가능한 메뉴 | 메인 메뉴 및 다양한 UI 확장 지점 제공. |
| 알림 시스템 | Toast 및 Banner 알림 제공. |
| UI 인터랙션 | BusyWindow, Overlay, Drag & Drop 지원. |
| 하이브리드 UI | WebView2 + Blazor 기반 UI. |
| 설정 및 상태 | 설정과 상태 로컬 저장. |
| 단일 인스턴스 | 단일 인스턴스 실행 지원. |
| MCP 노출 | MCP 도구로 기능 노출 가능. |
내장 모듈
README에는 높은 수준의 기능 요약만 유지합니다. 현재 모듈 목록, 로딩 참고 사항, 모듈 책임은 내장 모듈을 참고하세요.
개발 및 배포
| 기능 | 설명 |
|---|---|
| CLI 도구 | 명령줄 인터페이스. |
| 모듈 템플릿 | 새 모듈 생성 템플릿. |
| 문서 생성 | README / 문서 생성. |
| NuGet 패키징 | NuGet 패키지 빌드. |
| 설치 프로그램 | 데스크톱 설치 프로그램 빌드. |
📸 UI 미리보기
워크스페이스 보기 |
다중 탭 표시 |
다중 워크스페이스 |
워크스페이스 + 탭 |
Aspire 대시보드 |
Blazor (인증 포함) |
예외 처리 |
작업 관리자 |
📄 라이선스
본 프로젝트는 MIT License 하에 오픈소스로 제공됩니다.
💖 감사의 말
본 프로젝트는 다음 오픈소스 프로젝트를 사용하거나(또는 일부 구현을 참고하였습니다):
- MahApps.Metro: UI 프레임워크.
- MdXaml: Markdown 렌더링.
- titanium-web-proxy: 프록시 코어.
- EasyWindowsTerminalControl: 터미널 통합.
라이선스 및 저작권은 각 프로젝트의 원저작자에게 귀속됩니다. 본 저장소는 각 프로젝트의 라이선스 조건을 준수하여 사용 및 참조합니다.
🤝 기여하기
Issue 및 Pull Request를 환영합니다. 제안 사항이나 버그를 발견하셨다면 언제든지 Issue를 열거나 PR을 제출해 주세요.