次の方法で共有


クラス ライブラリ プロジェクトを作成する

ViewModel とサービスの単体テストを有効にするには、別のクラス ライブラリ projectを作成します。 WinUI 3 単体テスト プロジェクトでは WinUI アプリ プロジェクトを直接参照できないため、このprojectが必要です。

WinUI クラス ライブラリ テンプレートについて

WinUI クラス ライブラリ project テンプレートは、WinUI デスクトップ アプリケーションで使用するために特別に設計された.NETマネージド クラス ライブラリ (DLL) を作成します。 このテンプレートはWindows App SDKの一部であり、標準の.NET クラス ライブラリに含まれていない重要な機能を提供します。

.NET クラス ライブラリとの主な違い

WinUI クラス ライブラリ テンプレートは、いくつかの重要な点で標準.NETクラス ライブラリとは異なります。

  • Windows 固有のターゲット設定: クロスプラットフォーム .NET フレームワークではなく、Windows 固有のフレームワーク (net8.0-windows10.0.19041.0 など) を対象とし、Windows API にaccessを提供します。
  • Windows App SDK 統合: Microsoft.WindowsAppSDK および Microsoft.Windows.SDK.BuildTools NuGet パッケージへの参照が含まれており、WinUI および Windows App SDK API へのaccessが提供されます。
  • WinUI のサポートが有効: projectの構成には <UseWinUI>true</UseWinUI>が含まれており、WinUI 固有のビルド タスクと XAML コンパイルが有効になります。
  • Windows runtime識別子: Windows 固有のランタイム識別子 (win-x86、win-x64、win-arm64) 用に構成されています。

WinUI クラス ライブラリを使用する理由

ライブラリで次の必要がある場合はWinUI クラス ライブラリ テンプレートを通常の .NET クラス ライブラリの代わりに使用します。

  • Reference WinUI の型とコントロール: WinUI クラス ライブラリ テンプレートを使用すると、Microsoft.UI.Xaml 名前空間およびその他のWindows App SDK API の型をライブラリ コードで使用できます。
  • XAML リソースを含める: ライブラリに UserControls、カスタム コントロール、またはその他の XAML リソースが含まれている場合、これらのリソースを適切にコンパイルしてパッケージ化するには、WinUI クラス ライブラリ テンプレートが必要です。
  • WinUI アプリとの統合: テンプレートは WinUI デスクトップ アプリとシームレスに連携するように構成され、Windows App SDKランタイムおよびデプロイ モデルとの互換性が確保されます。
  • XAML マークアップコンパイルのサポート: テンプレートには、XAML ファイルをライブラリにコンパイルするために必要なビルド タスクが含まれています。

通常の.NET クラス ライブラリを使用する場合

ライブラリを使用する際には、標準の.NETクラスライブラリプロジェクトを使用してください。

  • 純粋な.NET コード (ViewModels、モデル、サービス、ユーティリティ) のみを含む
  • WinUI またはWindows App SDK型を参照しません
  • XAML ファイルや UI 関連のコードは含まれません
  • (WinUI アプリだけでなく) 異なる種類のアプリケーション間で共有する必要がある
  • 複数のプラットフォーム (.NET MAUI や ASP.NET Core など) またはオペレーティング システム (Linux や macOS など) を対象としています。

.NET クラス ライブラリをソリューションに追加するチュートリアルについては、「Extend C# コンソール アプリとデバッグ 」を参照Visual Studio

このチュートリアルでは、 WinUI クラス ライブラリ テンプレートを使用します。これは、今後必要に応じて WinUI 型を参照でき、特に WinUI アプリケーションと統合するように設計されているためです。 現在、ViewModel とサービスには WinUI の種類は必要ありませんが、このテンプレートを使用すると柔軟性が得られ、Windows App SDK環境との適切な統合が保証されます。

WinUINotes.Bus projectを作成する

WinUINotes.Bus と名付けた新しい WinUI クラス ライブラリ プロジェクトを作成し、WinUI アプリプロジェクトと同じソリューションに ViewModel、モデル、サービスをまとめて管理します。

  1. Visual Studioで、Solution Explorer のソリューションを右クリックします。

  2. Add>New Project... を選択します。

  3. WinUI クラス ライブラリ テンプレートを選択し、[次へ] を選択します。

    WinUI クラス ライブラリを選択し、クラス ライブラリだけを選択しないようにしてください。 WinUI クラス ライブラリ テンプレートには、Windows App SDKおよび WinUI フレームワークへの参照が含まれています。

  4. project WinUINotes.Bus に名前を付け、Create を選択します。

  5. 既定の Class1.cs ファイルを削除します。

project参照を追加する

Project参照を使用すると、WinUI アプリのprojectで、クラス ライブラリ projectで定義されている ViewModel とサービスを使用できます。

  1. WinUINotes project を右クリックし、 Add>Project Reference... を選択します。
  2. WinUINotes.Bus project を確認し、OK を選択します。

Bus projectには ViewModel、モデル、サービスが含まれているため、UI レイヤーとは別にテストできます。

"Bus" という用語は、通信層または中継局として機能するプロジェクトを示します。 これには、UI とは別に共有およびテストできるプレゼンテーション ロジック (ViewModels)、ビジネス ロジック (モデル)、およびサービスが含まれています。