ViewModels 및 서비스의 단위 테스트를 사용하도록 설정하려면 별도의 클래스 라이브러리 프로젝트를 만듭니다. WinUI 단위 테스트 프로젝트는 WinUI 앱 프로젝트를 직접 참조할 수 없으므로 이 프로젝트가 필요합니다.
WinUI 클래스 라이브러리 템플릿 이해
WinUI 클래스 라이브러리 프로젝트 템플릿은 WinUI 3 데스크톱 애플리케이션에서 사용하도록 특별히 설계된 .NET DLL(관리 클래스 라이브러리)을 만듭니다. 이 템플릿은 Windows 앱 SDK의 일부이며 표준 .NET 클래스 라이브러리에 포함되지 않은 중요한 기능을 제공합니다.
.NET 클래스 라이브러리의 주요 차이점
WinUI 클래스 라이브러리 템플릿은 다음과 같은 몇 가지 중요한 방법으로 표준 .NET 클래스 라이브러리와 다릅니다.
-
Windows 관련 대상 지정: 플랫폼 간 .NET 프레임워크가 아닌 Windows 관련 프레임워크(예
net8.0-windows10.0.19041.0: )를 대상으로 하여 Windows API에 대한 액세스 권한을 부여합니다. -
Windows 앱 SDK 통합: WinUI 3 및
Microsoft.WindowsAppSDKWindows 앱 SDK API에 대한 액세스를 제공하는 NuGet 패키지에 대한 참조Microsoft.Windows.SDK.BuildTools를 포함합니다. -
WinUI 지원 사용: 프로젝트에는 WinUI 관련 빌드 작업 및 XAML 컴파일을 사용하도록 설정하는 구성이 포함
<UseWinUI>true</UseWinUI>됩니다. - Windows 런타임 식별자: Windows 관련 런타임 식별자(win-x86, win-x64, win-arm64)에 대해 구성됩니다.
WinUI 클래스 라이브러리를 사용하는 이유는 무엇인가요?
라이브러리에서 다음을 수행해야 하는 경우 일반 .NET 클래스 라이브러리 대신 WinUI 클래스 라이브러리 템플릿을 사용합니다.
-
WinUI 3 형식 및 컨트롤 참조: WinUI 클래스 라이브러리 템플릿을 사용하면 네임스페이스 및 기타 Windows 앱 SDK API의 형식
Microsoft.UI.Xaml을 라이브러리 코드에서 사용할 수 있습니다. - XAML 리소스 포함: 라이브러리에 UserControls, 사용자 지정 컨트롤 또는 기타 XAML 리소스가 포함된 경우 이러한 리소스를 제대로 컴파일하고 패키지하려면 WinUI 클래스 라이브러리 템플릿이 필요합니다.
- WinUI 앱과 통합: 템플릿은 WinUI 3 데스크톱 앱과 원활하게 작동하도록 구성되어 Windows 앱 SDK 런타임 및 배포 모델과의 호환성을 보장합니다.
- XAML 태그 컴파일 지원: 템플릿에는 XAML 파일을 라이브러리로 컴파일하는 데 필요한 빌드 작업이 포함됩니다.
일반 .NET 클래스 라이브러리를 사용하는 경우
라이브러리를 다음과 같이 사용할 경우 표준 .NET 클래스 라이브러리 프로젝트를 사용하십시오.
- 순수 .NET 코드(ViewModels, 모델, 서비스, 유틸리티)만 포함합니다.
- WinUI 3 또는 Windows 앱 SDK 형식을 참조하지 않음
- XAML 파일 또는 UI 관련 코드는 포함하지 않습니다.
- WinUI 앱뿐만 아니라 다양한 애플리케이션 유형에서 공유해야 합니다.
- 여러 플랫폼(예: .NET MAUI 또는 ASP.NET Core) 또는 운영 체제(예: Linux 또는 macOS)를 대상으로 합니다.
솔루션에 .NET 클래스 라이브러리를 추가하는 방법에 대한 자습서는 Visual Studio에서 C# 콘솔 앱 확장 및 디버그를 참조하세요.
이 자습서에서는 나중에 필요한 경우 WinUI 형식을 참조할 수 있고 WinUI 3 애플리케이션과 통합하도록 특별히 설계되었기 때문에 WinUI 클래스 라이브러리 템플릿을 사용합니다. ViewModels 및 서비스에는 현재 WinUI 유형이 필요하지 않지만 이 템플릿을 사용하면 유연성이 제공되고 Windows 앱 SDK 환경과 적절한 통합이 보장됩니다.
WinUINotes.Bus 프로젝트 만들기
ViewModels, 모델 및 서비스를 WinUI 앱 프로젝트와 동일한 솔루션에 보관하도록 명명된 WinUINotes.Bus 새 WinUI 클래스 라이브러리 프로젝트를 만듭니다.
Visual Studio에서 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭합니다.
새 프로젝트>...를 선택합니다.
WinUI 클래스 라이브러리 템플릿을 선택하고 다음을 선택합니다.
비고
WinUI 클래스 라이브러리를 선택하고 단순한 클래스 라이브러리는 선택하지 않도록 하십시오. WinUI 클래스 라이브러리 템플릿에는 Windows 앱 SDK 및 WinUI 3 프레임워크에 대한 참조가 포함되어 있습니다.
프로젝트
WinUINotes.Bus이름을 지정하고 선택한 다음,만들기를 선택합니다.기본
Class1.cs파일을 삭제합니다.
프로젝트 참조 추가
프로젝트 참조를 사용하면 WinUI 앱 프로젝트에서 클래스 라이브러리 프로젝트에 정의된 ViewModels 및 서비스를 사용할 수 있습니다.
- WinUINotes 프로젝트를 마우스 오른쪽 단추로 클릭하고프로젝트 참조>...를 선택합니다.
- WinUINotes.Bus 프로젝트를 선택하고 확인을 선택합니다.
Bus 프로젝트에는 ViewModels, 모델 및 서비스가 포함되어 있으므로 UI 계층과 독립적으로 테스트할 수 있습니다.
비고
"Bus"라는 용어는 통신 계층 또는 중개자 역할을 하는 프로젝트를 나타냅니다. 여기에는 프레젠테이션 논리(ViewModels), 비즈니스 논리(모델) 및 UI와 독립적으로 공유하고 테스트할 수 있는 서비스가 포함됩니다.
Windows developer