Delen via


Een klassebibliotheek maken project

Als u eenheidstests van uw ViewModels en -services wilt inschakelen, maakt u een afzonderlijke klassebibliotheek project. U hebt deze project nodig omdat WinUI 3-eenheidstestprojecten niet rechtstreeks kunnen verwijzen naar WinUI-app-projecten.

Inzicht in de WinUI-klassebibliotheektemplate

Met de sjabloon WinUI Class Library project wordt een .NET DLL (Managed Class Library) gemaakt die speciaal is ontworpen voor gebruik met WinUI-bureaubladtoepassingen. Deze sjabloon maakt deel uit van de Windows App SDK en biedt belangrijke mogelijkheden die een standaard .NET klassebibliotheek niet bevat.

Belangrijke verschillen met een .NET-klassebibliotheek

De WinUI Class Library-sjabloon verschilt van een standaard .NET Klassebibliotheek op verschillende belangrijke manieren:

  • Windows-specifieke doelen: Het is gericht op een Windows-specifiek framework (zoals net8.0-windows10.0.19041.0) in plaats van het platformoverschrijdende .NET framework, waardoor access aan Windows-API's wordt gegeven.
  • Windows App SDK integration: het bevat verwijzingen naar de Microsoft.WindowsAppSDK en Microsoft.Windows.SDK.BuildTools NuGet-pakketten, waarmee access aan WinUI- en Windows App SDK API's wordt geleverd.
  • WinUI-ondersteuning ingeschakeld: de project bevat <UseWinUI>true</UseWinUI> in de configuratie, waardoor WinUI-specifieke buildtaken en XAML-compilatie mogelijk zijn.
  • Windows runtime-id's: deze is geconfigureerd voor Windows-specifieke runtime-id's (win-x86, win-x64, win-arm64).

Waarom een WinUI-klassebibliotheek gebruiken?

Gebruik de sjabloon WinUI Class Library in plaats van een gewone .NET Class Library wanneer uw bibliotheek het volgende moet doen:

  • Verwijzing naar WinUI-typen en -controls: Met de WinUI-klassenbibliotheektemplate kunt u typen uit de Microsoft.UI.Xaml-naamruimte en andere Windows App SDK API's in uw bibliotheekcode gebruiken.
  • XAML-resources opnemen: als uw bibliotheek UserControls, aangepaste besturingselementen of andere XAML-resources bevat, hebt u de WinUI-klassebibliotheeksjabloon nodig om deze resources correct te compileren en in te pakken.
  • Integrate with WinUI apps: De sjabloon is geconfigureerd om naadloos te werken met WinUI-bureaublad-apps, waardoor compatibiliteit met het Windows App SDK runtime- en implementatiemodel wordt gegarandeerd.
  • Ondersteuning voor compilatie van XAML-markeringen: de sjabloon bevat de benodigde buildtaken voor het compileren van XAML-bestanden in de bibliotheek.

Wanneer gebruikt u een reguliere .NET Klassebibliotheek

Gebruik een standaard .NET Class Library project wanneer uw bibliotheek:

  • Bevat alleen pure .NET code (ViewModels, modellen, services, hulpprogramma's)
  • Verwijst niet naar winUI- of Windows App SDK-typen
  • Bevat geen XAML-bestanden of code met betrekking tot de gebruikersinterface
  • Moet worden gedeeld tussen verschillende toepassingstypen (niet alleen WinUI-apps)
  • Is gericht op meerdere platforms (bijvoorbeeld .NET MAUI of ASP.NET Core) of besturingssystemen (bijvoorbeeld Linux of macOS)

Zie Extend C#-console-app en fouten opsporen in Visual Studio voor een zelfstudie over het toevoegen van een .NET-klassebibliotheek aan uw oplossing.

Voor deze zelfstudie gebruikt u de WinUI-klassebibliotheeksjabloon , omdat u in de toekomst naar WinUI-typen kunt verwijzen en deze speciaal is ontworpen om te integreren met WinUI-toepassingen. Hoewel voor onze ViewModels en services momenteel geen WinUI-typen zijn vereist, biedt het gebruik van deze sjabloon flexibiliteit en zorgt u voor een juiste integratie met de Windows App SDK-omgeving.

De WinUINotes.Bus-project maken

Maak een nieuwe WinUI-klassebibliotheek project met de naam WinUINotes.Bus voor het opslaan van uw ViewModels, modellen en services in dezelfde oplossing als uw WinUI-app project.

  1. Klik in Visual Studio met de rechtermuisknop op de oplossing in Solution Explorer.

  2. Selecteer Toevoegen>Nieuw Project... .

  3. Kies de WinUI-klassebibliotheeksjabloon en selecteer Volgende.

    Opmerking

    Zorg ervoor dat u WinUI-klassebibliotheek selecteert, niet alleen klassebibliotheek. De WinUI-klassebibliotheeksjabloon bevat verwijzingen naar het Windows App SDK- en WinUI-framework.

  4. Noem het project WinUINotes.Bus en selecteer Aanmaken.

  5. Verwijder het standaardbestand Class1.cs .

Project verwijzingen toevoegen

Projectverwijzingen stellen uw WinUI-app in staat de ViewModels en services te gebruiken die zijn gedefinieerd in het klassebibliotheekproject.

  1. Klik met de rechtermuisknop op de WinUINotes project en selecteer Toevoegen>Project Referentie... .
  2. Controleer het WinUINotes.Bus project en selecteer OK.

De Bus-project bevat uw ViewModels, -modellen en -services, zodat u ze onafhankelijk van de gebruikersinterfacelaag kunt testen.

Opmerking

De term Bus geeft een project aan die fungeert als een communicatielaag of intermediair. Deze bevat de presentatielogica (ViewModels), bedrijfslogica (modellen) en services die u onafhankelijk van de gebruikersinterface kunt delen en testen.