Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.WindowsAppSDKochMicrosoft.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.Xamloch 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.
I Visual Studio högerklickar du på lösningen i Solution Explorer.
Välj Lägg till>Nytt projekt....
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.
Namnge projektet
WinUINotes.Busoch välj Skapa.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.
- Högerklicka på WinUINotes project och välj Lägg till>Project referens... .
- 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.
Windows developer