Dela via


Skapa ett klassbiblioteksprojekt

Om du vill aktivera enhetstestning av dina ViewModels och tjänster, skapar du ett separat klassbiblioteksprojekt. Du behöver det här projektet eftersom WinUI 3-enhetstestprojekt inte kan referera direkt till WinUI-applikationsprojekt.

Förstå mallen för WinUI-klassbiblioteket

Mallen WinUI Class Library project skapar ett .NET hanterat klassbibliotek (DLL) som är särskilt utformat för användning med WinUI-skrivbordsprogram. Den här mallen är en del av Windows App SDK och innehåller viktiga funktioner som ett standardbibliotek för .NET inte innehåller.

Viktiga skillnader från ett .NET-klassbibliotek

Mallen För WinUI-klassbibliotek skiljer sig från ett standard-.NET-klassbibliotek på flera viktiga sätt:

  • Windows-specifik inriktning: Den riktar sig till ett Windows-specifikt ramverk (till exempel net8.0-windows10.0.19041.0) i stället för plattformsoberoende .NET ramverk, vilket ger access till Windows-API:er.
  • Windows App SDK integration: Den innehåller referenser till nuget-paketen Microsoft.WindowsAppSDK och Microsoft.Windows.SDK.BuildTools, vilket ger access till WinUI och Windows App SDK API:er.
  • WinUI-stöd aktiverat: project innehåller <UseWinUI>true</UseWinUI> i konfigurationen, vilket möjliggör WinUI-specifika bygguppgifter och XAML-kompilering.
  • Windows runtime identifierare: De är konfigurerade för Windows-specifika körtidsidentifierare (win-x86, win-x64, win-arm64).

Varför ska jag använda ett WinUI-klassbibliotek?

Använd mallen WinUI-klassbibliotek i stället för ett vanligt .NET klassbibliotek när biblioteket behöver:

  • Reference WinUI-typer och -kontroller: Med winui-klassbiblioteksmallen kan du använda typer från namnområdet Microsoft.UI.Xaml och andra Windows App SDK API:er i bibliotekskoden.
  • Inkludera XAML-resurser: Om biblioteket innehåller UserControls, anpassade kontroller eller andra XAML-resurser behöver du mallen WinUI-klassbibliotek för att kompilera och paketera resurserna korrekt.
  • Integrera med WinUI-appar: Mallen är konfigurerad för att fungera sömlöst med WinUI-skrivbordsappar, vilket säkerställer kompatibilitet med Windows App SDK körnings- och distributionsmodell.
  • Stöd för XAML-markeringskompilering: Mallen innehåller nödvändiga bygguppgifter för att kompilera XAML-filer till biblioteket.

När du ska använda ett vanligt .NET-klassbibliotek

Använd ett standard .NET-klassbibliotek projekt när biblioteket:

  • Innehåller endast ren .NET kod (ViewModels, modeller, tjänster, verktyg)
  • Refererar inte till några WinUI- eller Windows App SDK-typer
  • Innehåller inga XAML-filer eller UI-relaterad kod
  • Måste delas mellan olika programtyper (inte bara WinUI-appar)
  • Riktar sig till flera plattformar (till exempel .NET MAUI eller ASP.NET Core) eller operativsystem (till exempel Linux eller macOS)

En självstudiekurs om hur du lägger till ett .NET-klassbibliotek i din lösning finns i Extend C#-konsolapp och felsökning i Visual Studio.

I den här självstudien använder du mallen WinUI-klassbibliotek eftersom du kan referera till WinUI-typer om det behövs i framtiden, och den är särskilt utformad för att integreras med WinUI-program. Även om våra ViewModels och tjänster för närvarande inte kräver WinUI-typer, ger användning av den här mallen flexibilitet och säkerställer korrekt integrering med Windows App SDK miljön.

Skapa WinUINotes.Bus-projektet

Skapa ett nytt WinUI-klassbiblioteksprojekt med namnet WinUINotes.Bus för att lagra dina ViewModels, modeller och tjänster i samma lösning som ditt WinUI-appprojekt.

  1. I Visual Studio högerklickar du på lösningen i Solution Explorer.

  2. Välj Lägg till>Nytt projekt....

  3. Välj mallen WinUI-klassbibliotek och välj Nästa.

    Anmärkning

    Se till att du väljer WinUI-klassbibliotek, inte bara klassbibliotek. WinUI-klassbiblioteksmallen innehåller referenser till ramverket Windows App SDK och WinUI.

  4. Namnge projektet WinUINotes.Bus och välj Skapa.

  5. Ta bort standardfilen Class1.cs .

Lägg till project referenser

Projektreferenser gör att ditt WinUI-appprojekt kan använda ViewModels och tjänster som definieras i klassbiblioteksprojektet.

  1. Högerklicka på WinUINotes project och välj Lägg till>Project referens... .
  2. Kontrollera WinUINotes.Bus project och välj OK.

Bus-project innehåller dina ViewModels, modeller och tjänster, så att du kan testa dem oberoende av användargränssnittsskiktet.

Anmärkning

Termen "Buss" indikerar ett projekt som fungerar som ett kommunikationslager eller en medlare. Den innehåller presentationslogik (ViewModels), affärslogik (modeller) och tjänster som du kan dela och testa oberoende av användargränssnittet.