Freigeben über


Erstellen eines Klassenbibliothek-Projekts

Um Unit-Tests Ihrer ViewModels und Dienste zu ermöglichen, erstellen Sie ein separates Klassenbibliothek-Projekt. Sie benötigen dieses Projekt, da WinUI 3-Unit-Test-Projekte nicht direkt auf WinUI-App-Projekte verweisen können.

Grundlegendes zur WinUI-Klassenbibliotheksvorlage

Die Vorlage WinUI-Klassenbibliothek project erstellt eine .NET verwaltete Klassenbibliothek (DLL), die speziell für die Verwendung mit WinUI-Desktopanwendungen entwickelt wurde. Diese Vorlage ist Teil des Windows App SDK und stellt wichtige Funktionen bereit, die eine Standard-.NET Klassenbibliothek nicht enthält.

Wichtige Unterschiede von einer .NET Klassenbibliothek

Die WinUI-Klassenbibliotheksvorlage unterscheidet sich von einer standardmäßigen .NET Klassenbibliothek auf verschiedene wichtige Weise:

  • Windows-spezifische Zielbestimmung: Sie zielt auf ein Windows-spezifisches Framework (z. B. net8.0-windows10.0.19041.0) und nicht auf das plattformübergreifende .NET-Framework ab, wodurch access windows-APIs bereitgestellt werden.
  • Windows App SDK integration: Sie enthält Verweise auf die Microsoft.WindowsAppSDK und Microsoft.Windows.SDK.BuildTools NuGet-Pakete, die access für WinUI und Windows App SDK APIs bereitstellen.
  • WinUI-Unterstützung aktiviert: Das Projekt enthält <UseWinUI>true</UseWinUI> in der Konfiguration, was spezifische Buildaufgaben und die Kompilierung von XAML für WinUI ermöglicht.
  • Windows runtime-IDs: Sie ist für Windows-spezifische Runtime-IDs konfiguriert (win-x86, win-x64, win-arm64).

Warum eine WinUI-Klassenbibliothek verwenden?

Verwenden Sie die Vorlage WinUI-Klassenbibliothek anstelle einer regulären .NET Klassenbibliothek, wenn Ihre Bibliothek folgendes ausführen muss:

  • Reference WinUI-Typen und -Steuerelemente: Mit der WinUI-Klassenbibliotheksvorlage können Sie Typen aus dem namespace Microsoft.UI.Xaml und anderen Windows App SDK APIs im Bibliothekscode verwenden.
  • Einschließen von XAML-Ressourcen: Wenn Ihre Bibliothek UserControls, benutzerdefinierte Steuerelemente oder andere XAML-Ressourcen enthält, benötigen Sie die WinUI-Klassenbibliotheksvorlage, um diese Ressourcen ordnungsgemäß zu kompilieren und zu verpacken.
  • Integrate with WinUI apps: Die Vorlage ist so konfiguriert, dass sie nahtlos mit WinUI-Desktop-Apps funktioniert und die Kompatibilität mit dem Windows App SDK Laufzeit- und Bereitstellungsmodell gewährleistet.
  • Unterstützung der XAML-Markupkompilierung: Die Vorlage enthält die erforderlichen Buildaufgaben zum Kompilieren von XAML-Dateien in der Bibliothek.

Wann eine normale .NET Klassenbibliothek verwendet werden soll

Verwenden Sie eine Standard-.NET-Klassenbibliothek, wenn Ihre Bibliothek:

  • Enthält nur reinen .NET Code (ViewModels, Modelle, Dienste, Dienstprogramme)
  • Verweist nicht auf WinUI- oder Windows App-SDK-Typen
  • Enthält keine XAML-Dateien oder UI-bezogenen Code
  • Muss für verschiedene Anwendungstypen freigegeben werden (nicht nur WinUI-Apps)
  • Zielt auf mehrere Plattformen (z. B. .NET MAUI oder ASP.NET Core) oder Betriebssysteme (z. B. Linux oder macOS) ab.

Ein Lernprogramm zum Hinzufügen einer .NET Klassenbibliothek zu Ihrer Lösung finden Sie unter Extend C#-Konsolen-App und Debuggen in Visual Studio.

Verwenden Sie für dieses Lernprogramm die WinUI-Klassenbibliotheksvorlage , da sie es Ihnen ermöglicht, bei Bedarf in Zukunft auf WinUI-Typen zu verweisen, und sie ist speziell für die Integration in WinUI-Anwendungen konzipiert. Während unsere ViewModels und Dienste derzeit keine WinUI-Typen erfordern, bietet die Verwendung dieser Vorlage Flexibilität und stellt eine ordnungsgemäße Integration in die Windows App SDK Umgebung sicher.

Erstellen Sie das WinUINotes.Bus-Projekt

Erstellen Sie ein neues WinUI-Klassenbibliothek-Projekt mit dem Namen WinUINotes.Bus, um Ihre ViewModels, Modelle und Dienste in derselben Lösung wie Ihr WinUI-App-Projekt zu halten.

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf die Lösung in Solution Explorer.

  2. Wählen Sie Hinzufügen>Neues Projekt....

  3. Wählen Sie die WinUI-Klassenbibliotheksvorlage und dann "Weiter" aus.

    Hinweis

    Stellen Sie sicher, dass Sie winUI-Klassenbibliothek und nicht nur Klassenbibliothek auswählen. Die WinUI-Klassenbibliotheksvorlage enthält Verweise auf das Windows App SDK- und WinUI-Framework.

  4. Benennen Sie den project WinUINotes.Bus, und wählen Sie Create aus.

  5. Löschen Sie die Standarddatei Class1.cs .

Hinzufügen von Projektverweisen

Projektverweise ermöglichen es Ihrem WinUI-Anwendungsprojekt, die in der Klassenbibliothek definierten ViewModels und Dienste zu verwenden.

  1. Klicken Sie mit der rechten Maustaste auf die WinUINotes project und wählen Sie Add>Project Reference... .
  2. Überprüfen Sie das WinUINotes.Bus-Projekt und wählen Sie OK aus.

Das Bus-project enthält Ihre ViewModels, Modelle und Dienste, sodass Sie sie unabhängig von der UI-Ebene testen können.

Hinweis

Der Begriff "Bus" zeigt ein Projekt an, das als Kommunikationsschicht oder Vermittler fungiert. Sie enthält die Präsentationslogik (ViewModels), Geschäftslogik (Modelle) und Dienste, die Sie unabhängig von der Benutzeroberfläche freigeben und testen können.