Microsoft의 .NET Core 3 정식 버전 출시가 눈앞에 다가왔다. 아마 1~2개월 안으로 정식 버전이 나오고 바로 3.1 LTS 버전도 발표할 것이다. Core 3 부터 윈도우 애플리케이션을 위한 WinForm과 WPF 개발을 지원한다. WPF 기반으로 애플리케이션을 개발하면서 기본적인 방법론을 정리해보았다. 특히 MVVM(Model-View-ViewModel) 패턴에 있어 Caliburn.Micro 패키지는 매우 유용하다. Core는 기존의 .NET Framework에 비해 가벼움, 성능, 배포가 훨씬 용이하다.
| 주제 | 메인사이트 | 튜토리얼 |
|---|---|---|
| XAML 디자인 | WPF-Microsoft | ToskersCorner AngelSix Design com WPF |
| Caliburn.Micro - MVVM | Caliburn.Micro | IAmTimCorey Dot NET Guide NET Interview Preparation |
| Dapper - Simple Object Mapper | Dapper | IAmTimCorey CodAffection |
| EPPlus - Excel spreadsheets | EPPlus | EVERYDAY BE CODING David Stovell |
| FastReport Open Source - Reporting Tool |
FastReport OpenSource | Documentation fropensource Fast Reports |
| ConfuserEx2, ILSpy - Source Protector |
ConfuserEx ILSpy |
Documentation ILSpy |
| C# Tutorial | NET Core Home | freeCodeCamp kudvenkat |
Caliburn.Micro, MVVM에서 기본적인 프로젝트 구성 폴더(Commands, Helper, Models, ViewModels, View)와 라이브러리 개발 구성(Dapper, Repository, Database)d에 따른 소스를 부분적으로 작성하고 테스트했다. 아래는 해당 소스이다.
MVVM(Model View ViewMode) 패턴에서 XAML View가 WPF Command를 어떻게 바인딩하는지 살펴보자. ICommand Interface로 이벤트 핸들러를 구현하여 직접 xaml에서 사용하는 예제이다. 아래의 코드처럼 화면을 구현한다고 가정한다.
<TextBox x:Name="TextBoxSimple" Text="Default"/>
<Button x:Name="ButtonSimple" Content="Simple Command"/>
MahApps.Metro is a project that Paul Jenkins started back in 2011 as a simple way to bring a Metro-style user interface into your WPF application(MahApps 2019). WPF 테마를 쉽게 ‘메트로’ 형태로 바꾸어 주며 추가로 아이콘팩을 설치하면 웹 아이콘 폰트처럼 다양한 아이콘을 사용할 수 있다. Nuget Package Manager로 ‘MahApps.Metro’와 ‘MahApps.Metro.IconPacks’ 설치하여 사용한다. 아래의 이미지처럼 ‘IconPacks.Browser’로 아이콘의 내용을 쉽게 검색할 수 있다.