veelgestelde vragen over Windows-app ontwikkeling

Deze veelgestelde vragen bevatten antwoorden op veelgestelde vragen over Windows toepassingsontwikkeling, waaronder richtlijnen voor het kiezen van het juiste framework voor uw projecten. Onderwerpen die worden behandeld, zijn onder andere:

  • Aan de slag en het Windows landschap voor app-ontwikkeling.
  • Ontwikkeling van systeemeigen Windows-apps met WinUI 3, Windows Presentation Foundation (WPF) en Windows Forms (WinForms).
  • Windows Software Development Kit (SDK) en Windows App SDK.
  • Gericht op Windows als onderdeel van uw platformoverschrijdende ontwikkelstrategie.
  • Ontwikkeling van hybride en web-apps met .NET MAUI, Blazor en ASP.NET Core.
  • Hoe u een benadering kiest terwijl u inzicht krijgt in de investeringen van Microsoft.

Windows app-ontwikkelingslandschap

Waar vind ik een eenvoudig overzicht van Windows ontwikkelingstechnologieën?

Voor een geweldige bespreking van de huidige opties voor Windows-ontwikkelaars, bekijk de meest recente Windows Dev Chat aflevering, Choosing your ideal dev platform, waarin ze WinUI, .NET MAUI, React Native, Blazor en Progressive Web Apps (PWA's) bespreken.

U kunt ook verwijzen naar de overview van opties voor app-ontwikkeling voor Windows ontwikkelaars.

Why is ontwikkeling van client-apps nog steeds cruciaal voor moderne digitale transformatie in het tijdperk van cloud services?

In de leeftijd van cloudservices blijft de ontwikkeling van client-apps belangrijk voor het leveren van responsieve, zinvolle interacties op gebruikersapparaten.

Dit is de reden waarom client-apps belangrijk zijn:

  • Apparaatbereik: Met client-apps kunt u uw toepassing rechtstreeks naar gebruikers brengen op hun apparaten van keuze.
  • Gateway to Intelligent Services: Client-apps zijn vaak de eerste interactie die gebruikers met uw services hebben. Ze bieden een uitgebreide, interactieve interface waarmee u intelligente functies kunt presenteren en uw product kunt onderscheiden van anderen.
  • Schaalbaarheid met cloudintegratie: Een goed geïntegreerde client-app kan moeiteloos worden gesynchroniseerd met back-end-cloud services, waardoor realtime gegevens access en naadloze schaalbaarheid mogelijk zijn naarmate uw gebruikersbasis groeit.
  • Verbeterde productiviteit en gebruikersloyaliteit: Een zorgvuldig ontworpen app kan de productiviteit verbeteren en gebruikers in de loop van de tijd betrokken houden bij uw product of service.

Ontwikkeling van systeemeigen apps met alleen-Windows

Wat is de Windows App SDK?

De Windows App SDK biedt onafhankelijk onderhouden onderdelen voor Windows desktop-apps, waaronder WinUI, app-levenscyclus, vensters, meldingen, resources en tekst-API's. Het ondersteunt apps die worden uitgevoerd op Windows 10, versie 1809 en hoger, afhankelijk van de ondersteuningslevenscyclus van de Windows release en Windows App SDK versie.

Wat is het verschil tussen de Windows App SDK en de Windows SDK?

Beide zijn SDK's (Software Development Kits) waarmee u Windows apps kunt bouwen.

De Windows App SDK biedt onderdelen die onafhankelijk van Windows worden verzonden en die werken in ondersteunde Windows releases naar Windows 10 versie 1809. Het omvat WinUI en API's voor de levenscyclus van apps, vensters, meldingen, resources, tekst en andere mogelijkheden.

De Windows SDK biedt headers, bibliotheken, metagegevens en hulpprogramma's voor API's van het besturingssysteem, zoals Win32, WinRT, COM, DirectX, apparaten en shell-mogelijkheden.

De Windows App SDK vervangt de Windows SDK niet. Apps die gebruikmaken van de Windows App SDK kunnen Windows SDK-API's blijven gebruiken en WinUI-apps gebruiken vaak beide.

I bouwt een nieuw team om een Windows-only-app te ontwikkelen. Waarom zou ik ervoor kiezen om te ontwikkelen met een systeemeigen Windows framework zoals WinUI, WPF of WinForms?

Hier volgen enkele redenen om een systeemeigen Windows framework te kiezen voor uw Windows-app:

  • Performance: Systeemeigen Windows frameworks zijn geoptimaliseerd om gebruik te maken van moderne Windows hardware, wat snelle en responsieve gebruikerservaringen biedt.
  • Integration: Windows wordt geleverd met een breed scala aan API's waarmee geavanceerde ervaringen alleen beschikbaar zijn op Windows. Systeemeigen frameworks bieden diepgaande integratie met deze functies en API's.
  • Natieve gebruikerservaring: Native frameworks bieden een consistente ervaring op Windows apparaten, zodat uw app er overal uitziet en werkt.
  • Offlineondersteuning: Systeemeigen frameworks ondersteunen offlinescenario's, waardoor apps zelfs zonder internetverbinding kunnen functioneren.
  • Ondersteuning en hulpprogramma's: Microsoft onderhoudt de systeemeigen frameworks en biedt huidige SDK's, documentatie, foutopsporingsprogramma's en voorbeelden.
Which framework moet ik gebruiken om gebruik te maken van de nieuwste investeringen van Microsoft in Windows app-ontwikkeling?

Als u een nieuwe Windows-app bouwt, raden we u aan WinUI te gebruiken. WinUI is het nieuwste systeemeigen UI-framework voor Windows app-ontwikkeling en is ontworpen om te werken op een breed scala aan Windows apparaten. Het biedt een modern en flexibel UI-framework voor het maken van visueel aantrekkelijke en interactieve Windows-apps. WinUI maakt deel uit van de Windows App SDK en werkt het beste met de nieuwste versies van Windows.

Kan ik Windows App SDK /WinUI gebruiken in mijn bestaande Windows-app?

Houd er rekening mee dat WinUI (een UI-framework) wordt geleverd met het Windows App SDK (een Windows platformontwikkelingsframework).

U kunt de gebruikersinterface van een app migreren naar WinUI of WinUI XAML-eilanden gebruiken om Windows App SDK besturingselementen in een ondersteunde bestaande bureaubladhost te hosten. Verouderde XAML-eilanden host UWP XAML-besturingselementen en gebruiken verschillende API's.

Elementen van de Windows App SDK kunnen vaak worden gebruikt in bureaublad-apps, afhankelijk van hoe de bestaande app is gebouwd. UWP-apps worden niet ondersteund door Windows App SDK.

Dit betekent dat WPF/MFC/WinForms-apps Windows App SDK API's kunnen gebruiken die niet zijn gerelateerd aan WinUI. Voorbeelden hiervan zijn app-levenscyclus, vensterbeheer en toastmeldingen.

Zie Gebruik de Windows App SDK in een bestaand project voor meer informatie.

Moet ik Visual Studio gebruiken om WinUI-apps te bouwen?

Nee. WinUI XAML-builds gebruiken MSBuild, maar u kunt bouwen met de .NET SDK en huidige WinUI-sjablonen vanaf de opdrachtregel in een andere editor. Zie de snelstartgids voor de opdrachtregel.

Visual Studio 2026 biedt de meest uitgebreide geïntegreerde bewerkings-, foutopsporings-, profilerings- en XAML-ervaring Hot Reload. Gebruik de werkstroom die overeenkomt met uw hulpprogrammavereisten.

I krijgt de foutmelding 'KAN DLL'Microsoft.ui.xaml.dll' niet laden bij het uitvoeren van mijn app. Hoe kan ik dit oplossen?

Deze fout treedt meestal op in unpackaged app-scenario's waarbij de Windows App SDK runtime niet op de computer is geïnstalleerd. Probeer het volgende:

  • Als u een packaged-app uitvoert (de aanbevolen standaardinstelling), moet u ervoor zorgen dat u via Visual Studio start met de MsixPackage startprofiel geselecteerd (niet het uitvoerbare profiel zonder opmaak). De MSIX-verpakkingsstap installeert de vereiste runtime-onderdelen.
  • Als u een framework-afhankelijke app zonder pakket uitvoert, installeert u de bijbehorende Windows App SDK runtime. Een zelfstandige implementatie omvat de Windows App SDK afhankelijkheden.
  • Controleer of uw project overeenkomt met uw implementatiemodel. Voor een normale .NET uitgepakte app schakelt de instelling <WindowsPackageType>None</WindowsPackageType> Windows App SDK automatische initialisatie van runtime in. Gebruik de bootstrapper-API alleen rechtstreeks wanneer u expliciet controle nodig hebt over dynamische afhankelijkheidsinitialisatie.

Zie Deploy-apps die gebruikmaken van de Windows App SDK voor meer informatie over de implementatievereisten.

Wat is het verschil tussen WinUI 3 en WinUI 2 voor UWP?

WinUI (voorheen WinUI 3 genoemd) is het nieuwste systeemeigen UI-framework voor Windows app-ontwikkeling. Het biedt een modern en flexibel UI-framework voor het maken van visueel aantrekkelijke en interactieve Windows-apps. WinUI maakt deel uit van de Windows App SDK en werkt het beste met de nieuwste versies van Windows.

WinUI voor UWP (voorheen WinUI 2 genoemd) is een set UI-besturingselementen en -stijlen die zijn gebouwd op UWP. Het biedt een modern uiterlijk voor UWP-apps en is ontworpen voor Windows 10.

Wanneer ik een app bouw met behulp van Windows App SDK en WinUI, bouw ik een WinUI-app?

Ja: 'WinUI-app' is de aanbevolen term. WinUI-apps worden 'WinUI-apps' genoemd, omdat WinUI voor UWP geen type app is, maar een set onderdelen die worden gebruikt in UWP-apps.

Kan ik mijn UWP-app incrementeel bijwerken met WinUI voor UWP-besturingselementen naar WinUI door WinUI geleidelijk te vervangen door WinUI-onderdelen?

Nee. Windows App SDK kan niet worden gebruikt in UWP-apps en WinUI voor UWP kan niet worden gecombineerd met WinUI. Zie Migrate from UWP to the Windows App SDK.

Hoe moeilijk is het om een UWP-app te migreren naar WinUI?

Het migreren van UI-onderdelen is over het algemeen eenvoudig (voor C# en C++/WinRT-). Anders zijn de migratiekosten voornamelijk afhankelijk van:

  1. Project-bestand en MSBuild-aanpassing: Migratie-inspanning varieert afhankelijk van geavanceerd MSBuild-gebruik.
  2. .NET API-migratie: UWP-apps die gebruikmaken van .NET Native, kunnen worden verplaatst naar een momenteel ondersteunde .NET release met Native AOT. Deze modernisering staat los van het migreren van de gebruikersinterface naar WinUI.
  3. Ui-onderdeelbibliotheken: Bibliotheken moeten versies hebben die zijn gericht op WinUI.
  4. Als de UWP-app is geschreven in de nu vervangen C++/CX, is enige broncodeoverdracht vereist. Zie Verplaatsen naar C++/WinRT vanuit C++/CX.

Zie Migrate from UWP to the Windows App SDK voor meer informatie.

Als ik een bestaande UWP-app in de Store heb, kan ik een nieuwe verpakte WinUI-app publiceren met dezelfde id's?

Ja, bijgewerkte apps kunnen worden gepubliceerd zonder de toepassingsidentiteit bij te werken. Gebruikers van de oude versie worden bijgewerkt naar de nieuwe versie. Dit geldt alleen voor desktop-apps. Xbox, HoloLens en Surface Hub-apps kunnen niet worden gemigreerd naar WinUI.

Hoe kan ik mijn WinUI-app verpakken/distribueren?

Zie implementatieoverzicht.

Waar vind ik Windows App SDK migratierichtlijnen?

Zie Migrate from UWP to the Windows App SDK.

Moet ik XAML-markeringen gebruiken als ik WinUI wil gebruiken?

Nee. UI-besturingselementen kunnen worden gemaakt in code. Het vertegenwoordigen van de gebruikersinterface in declaratieve XAML-markeringen biedt echter veel voordelen, waaronder een verbeterde ontwikkelaarservaring.

  • Migreren van UWP naar WinUI: veel XAML- en UI-onderdelen kunnen opnieuw worden gebruikt, hoewel sommige syntaxisaanpassingen vereist zijn.
  • Migreren van WPF naar WinUI: veel concepten worden overgedragen, maar de besturingsset en API's verschillen.
Heeft Visual Studio een ontwerpoppervlak/UI-ontwerper voor WinUI?

Momenteel niet. Gebruik XAML Hot Reload, Live Visual Tree, Live Property Explorer en gerelateerde runtimehulpprogramma's om XAML te controleren en bij te werken terwijl de app wordt uitgevoerd.

Zie XAML Runtime-ontwerphulpprogramma's voor WinUI 3 voor een volledig overzicht van de runtime-ontwerphulpprogramma's die beschikbaar zijn voor WinUI 3.

Does Windows App SDK inclusief WinUI?

Ja. WinUI wordt geleverd als onderdeel van de Windows App SDK.

Bevat de Windows App SDK WinUI voor UWP?

Nee. WinUI voor UWP maakt deel uit van het UWP-platform.

Zijn WinUI voor UWP en WinUI gebouwd op dezelfde technologie?

Niet helemaal. Hoewel WinUI oorspronkelijk is gestart vanuit de WinUI voor UWP-codebasis, zijn dit verschillende technologieën. Beide zijn op XAML gebaseerde UI-frameworks die werken in .NET en C++, maar WinUI voor UWP en WinUI zijn niet compatibel met elkaar.

Kan ik WinUI gebruiken zonder Windows App SDK?

Nee. WinUI wordt geleverd als onderdeel van de Windows App SDK.

Kan ik WinUI gebruiken in een uitgepakte app?

Ja. WinUI en veel Windows App SDK API's werken in uitgepakte apps. Sommige Windows-mogelijkheden vereisen echter pakketidentiteit en frameworkafhankelijke uitgepakte apps moeten de Windows App SDK runtime initialiseren. Vergelijk de opties in Overzicht van verpakking en Functies waarvoor pakketidentiteit is vereist.

Wat is het verschil tussen XAML-eilanden en WinUI?

WinUI is het UI-framework dat is opgenomen in de Windows App SDK. XAML-eilanden zijn een hostingtechniek waarmee een bestaande bureaublad-app XAML-inhoud naast de gebruikersinterface kan plaatsen vanuit een ander framework.

De term kan verwijzen naar verouderde XAML-eilanden van het systeem waarop UWP XAML-besturingselementen worden gehost of naar WinUI XAML-eilanden waarop Windows App SDK besturingselementen worden gehost op ondersteunde bureaubladhosts. De API's, naamruimten en hostvereisten verschillen.

Als ik een WinUI-app maak, ziet deze er modern uit op zowel Windows 11 als Windows 10?

Ja. De gebruikersinterface van uw app neemt de nieuwste Fluent UI-ontwerpprincipes over op alle ondersteunde versies van Windows 11 en Windows 10, tot versie 1809, in zowel verpakte als uitgepakte scenario's.

Kan ik Mica- of Acrylachtergronden gebruiken in apps die zijn gebouwd met Windows App SDK?

Ja. Zie Breng Mica- of Acrylmaterialen aan in desktop-apps voor Windows 11.

Waar vind ik WinUI-voorbeelden?

Zie voorbeeld en hulpmiddelen. Enkele belangrijke opslagplaatsen:

Als ik al veel heb geïnvesteerd in WPF, moet ik WPF blijven gebruiken of overwegen om te migreren naar WinUI?

Als u al veel hebt geïnvesteerd in WPF, kunt u deze blijven gebruiken voor bestaande apps. WPF is een volwassen, stabiel framework dat veel wordt gebruikt voor het bouwen van Windows desktop-apps.

Gebruik GitHub Copilot upgrade om een .NET Framework WPF-app te evalueren en bij te werken naar moderne .NET. Controleer het gegenereerde plan en valideer elke wijziging in uw app.

Als ik een nieuwe WPF-app bouw, zal deze er verouderd uitzien vergeleken met andere nieuwe Windows-apps?

Wanneer u een WPF-toepassing ontwikkelt met .NET 9 of hoger, kunt u ervoor zorgen dat uw app overeenkomt met het strakke, moderne uiterlijk van Windows 11. Het nieuwe Fluent-thema voor WPF introduceert een hedendaagse Windows 11 esthetisch, met geïntegreerde licht-/donkere modus en systeemaccentkleurondersteuning. Dit moderniseert het uiterlijk van uw app en biedt een professionele, samenhangende gebruikerservaring.

Mijn team is comfortabel bij het bouwen van WinForms-apps en het past bij onze behoeften. Moeten we overwegen om te migreren naar WinUI of een ander framework?

Als WinForms aan uw behoeften voldoet en uw team er vertrouwd mee is, kunt u WinForms blijven gebruiken voor bestaande apps. WinForms is een volwassen en stabiel framework dat veel wordt gebruikt voor Windows desktopontwikkeling.

Het WinForms-team blijft investeren in het platform. Enkele huidige investeringsgebieden zijn:

  • Async-ondersteuning voor algemene besturingselementen
  • Donkere modus
  • Flexibiliteit van indeling
  • Bureaubladbeveiligingsfuncties zoals toegang tot het klembord

Platformoverschrijdende systeemeigen ontwikkeling

Wat zijn enkele redenen voor het bouwen van platformoverschrijdende, systeemeigen apps die gericht zijn op Windows?

Als u gebruikers op meerdere besturingssysteemplatforms richt, kunnen het bouwen van platformoverschrijdende apps met .NET MAUI of React Native verschillende voordelen bieden:

  • Bereiken: Platformoverschrijdende apps bereiken een groter publiek op verschillende apparaten en besturingssystemen.
  • Code hergebruiken: Het hergebruik van code op verschillende platforms vermindert de ontwikkelingstijd en -kosten. Het bouwen van afzonderlijke apps voor Windows, Android, iOS en macOS kan te duur zijn.
  • Consistente gebruikerservaring: Platformoverschrijdende frameworks bieden een consistent uiterlijk op verschillende platforms.
  • Integratie: Platformoverschrijdende apps kunnen nog steeds worden geïntegreerd met platformspecifieke services om een uitgebreide ervaring te bieden.
Kan ik er zeker van zijn dat .NET MAUI apps goed worden uitgevoerd op Windows?

Wanneer u een .NET MAUI-app bouwt voor Windows, is de uitvoer een WinUI-app. Tijdens de ontwikkeling biedt .NET MAUI één .NET ervaring op verschillende platforms, maar genereert het platformspecifieke code onder de schermen. Dit zorgt ervoor dat .NET MAUI apps goed presteren op elk platform en een systeemeigen gebruikerservaring bieden.

Hoe kan .NET MAUI systeemeigen apparaat-API's bieden voor elk platform?

.NET MAUI biedt een uniforme .NET ervaring in Windows, iOS, Android en macOS. Het biedt platformoverschrijdende API's voor algemene mogelijkheden, zoals opslag, netwerken en apparaatsensoren. U kunt ook platformspecifieke API's aanroepen of gespecialiseerde implementaties bieden voor elk platform.

Kan ik beginnen met WinUI en later .NET MAUI integreren als ik uiteindelijk platformoverschrijdende scenario's wil toepassen?

Niet op dit moment. Hoewel .NET MAUI WinUI gebruikt bij het uitvoeren op Windows, moeten teams die verwachten dat ze zich richten op meerdere platforms beginnen met .NET MAUI of React Native voor Desktop.

Ons team heeft sterke vaardigheden op het gebied van webfront-endontwikkeling. Moeten we overwegen React Native voor Desktop te gebruiken?

Teams met een sterke ervaring voor webontwikkeling kunnen React Native voor Desktop overwegen. Het bevat React Native voor Windows en macOS. Met de benadering 'Eenmaal leren, overal schrijven' kunnen bestaande JavaScript-, TypeScript- en React-vaardigheden worden gebruikt om systeemeigen Windows- en macOS-apps te bouwen.

React Native for Desktop geeft de gebruikersinterface rechtstreeks weer op systeemeigen primitieven, waardoor systeemeigen prestaties en platformmogelijkheden worden geleverd.

Zie de React Native for Desktop documentatie om te beginnen.

Worden er nog andere Windows-apparaten ondersteund door React Native for Desktop?

React Native-apps kunnen worden geïmplementeerd op alle apparaten die worden ondersteund door Windows 10 en hoger, waaronder pc's, tablets, 2-in-1-apparaten, Xbox en mixed reality-apparaten.

Wat moet ik gebruiken als ik apps wil bouwen die werken aan Windows en Xbox?

Als uw app ondersteuning moet bieden voor Xbox, HoloLens of IoT, wordt UWP aanbevolen. Windows App SDK biedt geen ondersteuning voor deze platforms. Gebruik de Microsoft Game Development Kit voor gameontwikkeling.

Wat moet ik gebruiken als ik apps wil bouwen die werken op Windows en Surface Hub?

Als u zich richt op zowel Windows als Surface Hub, wordt UWP aanbevolen.

Hybride ontwikkeling en webontwikkeling

Wat zijn hybride apps en waarom zou ik overwegen om er een te bouwen?

Hybride apps combineren het beste van web- en systeemeigen app-ontwikkeling. Hun kern wordt gebouwd met behulp van webtechnologieën zoals HTML, CSS en JavaScript, en verpakt in een systeemeigen container die access biedt aan bepaalde systeemeigen platformfuncties en -hardware. Ze kunnen ook worden gedistribueerd via app stores.

Het belangrijkste voordeel is dat u met hybride apps één app kunt bouwen die kan worden uitgevoerd op meerdere systeemeigen platforms en op internet, waardoor de ontwikkeltijd en -kosten worden verminderd. Voorbeelden van platformen voor hybride app-ontwikkeling zijn:

  • Electron voor desktop-apps
  • Ionic voor mobiele apps
  • .NET MAUI Blazor Hybrid voor platformoverschrijdende apps
Hoe bouw ik native-feeling progressieve web-apps (PWA's) op Windows?

Zie Web development on Windows and Overview of Progressive Web Apps.

Wat is een .NET MAUI hybride Blazor-app?

Met .NET MAUI kunnen Blazor-apps systeemeigen worden uitgevoerd op Windows, iOS, Android en macOS. Hiermee kunt u hybride client-apps maken die Blazor- en .NET MAUI-onderdelen combineren in één systeemeigen client-app, met volledige toegang tot systeemeigen platformmogelijkheden.

Meer informatie vindt u op ASP.NET Core Blazor Hybrid.

Do de webonderdelen van een .NET MAUI hybride app moeten worden gemaakt met Blazor?

Nee. Vanaf .NET 9 bevat .NET MAUI een HybridWebView-besturingselement waarmee u andere op JavaScript gebaseerde UIs in een systeemeigen app kunt hosten.

Hiermee kunt u Angular-, React-, Vue- of andere HTML-/JavaScript-apps hosten in een .NET MAUI-app. Het hybride besturingselement biedt interop tussen C# en JavaScript, zodat C#-code JavaScript-functies kan aanroepen en omgekeerd.

Kunnen andere native app-typen Blazor-hybridecomponenten hosten?

Ja. WPF- en WinForms-apps kunnen ook hybride blazor-onderdelen hosten, waardoor de toevoeging van moderne webgebruikersinterface aan bestaande apps mogelijk is. Dit wordt niet ondersteund voor WPF- of WinForms-apps die zijn gebouwd op .NET Framework.

Moet mijn hele app een hybride app zijn of kan ik systeemeigen en hybride onderdelen combineren en matchen?

Systeemeigen en hybride onderdelen kunnen worden gemengd in een app. De kern van een app kan bijvoorbeeld worden gebouwd met .NET MAUI onderdelen, terwijl hybride onderdelen extra functionaliteit bieden. Hierdoor kunnen de prestaties en mogelijkheden van systeemeigen onderdelen worden gecombineerd met de flexibiliteit en kostenefficiëntie van hybride onderdelen.

Wat zijn mijn keuzes voor het bouwen van op .NET gebaseerde web-apps die er geweldig uitzien in moderne browsers op Windows?

Web apps het breedste bereik van elk client-app-platform bieden. Opties voor het maken van prachtige .NET web-apps zijn:

  • ASP.NET Core apps met Razor Pages
  • ASP.NET Core MVC-apps
  • ASP.NET Core Blazor-apps met de hostingmodelopties:
    • Blazor WebAssembly
    • Blazor Server

Blazor-hostingmodellen kunnen nu worden geconfigureerd op onderdeelniveau, waardoor scenario's mogelijk zijn, zoals het hosten van een Blazor WebAssembly-onderdeel in een Blazor Server-app.

Zie de documentatie ASP.NET Core voor meer informatie.

Kies een benadering en begrijp de investeringen van Microsoft

There zijn zoveel frameworkopties voor het bouwen van apps die gericht zijn op Windows! Hoe bepaal ik?

Windows is een open platform dat ondersteuning biedt voor veel technologieën. Hier volgen enkele criteria waarmee u een platform kunt kiezen:

  • Bouwt u Windows-gericht of platformonafhankelijk?
  • Welke talen of vaardigheden hebt u al: .NET, JavaScript, iets anders?
  • Hebt u toegang nodig tot Windows specifieke API's?
  • Welke frameworkmogelijkheden komen het beste overeen met de vereisten van uw app?
  • Zie deze tabel voor aanvullende vergelijkingsfactoren.

Voor veel zakelijke apps kiezen teams vaak op basis van bestaande vaardigheden en wat het team het prettigst gebruikt.

Hoe kies ik de beste ontwikkelbenadering voor mijn webapp?

Houd rekening met het volgende bij het kiezen van een ontwikkelbenadering voor uw web-app:

  • Blazor wordt aanbevolen voor het bouwen van front-end-web-apps met .NET. Hiermee kunt u zowel de front-end als de back-end bouwen met behulp van .NET, tijd en kosten besparen, en het is vooral goed voor zakelijke apps.
  • JavaScript web apps nog steeds zinvol als u bestaande JavaScript-vaardigheden wilt gebruiken of wilt integreren met bestaande JS-bibliotheken of -frameworks.
  • Bestaande apps die gebruikmaken van oudere frameworks, zoals Web Forms, MVC of Razor Pages, blijven ondersteund en kunnen nog steeds worden ontwikkeld en onderhouden.
Wie bouwt momenteel apps met WinUI?

Veel klanten bouwen vandaag nog met WinUI, waaronder Adobe en Apple:

Microsoft heeft ook veel WinUI-apps gebouwd, zoals Windows 11 Verkenner en de app Foto's.

Who bouwt .NET MAUI apps vandaag?

Veel klanten, waaronder Microsoft, bouwen platformoverschrijdende apps met .NET MAUI. De Microsoft Azure mobiele app is bijvoorbeeld gebouwd met behulp van .NET MAUI.

Bekijk meer over de .NET-klantenshow.

Who bouwt vandaag WPF apps?

De meeste gebruikersinterface van Microsoft Visual Studio is gebouwd met WPF. De Visual Studio IDE zelf is een belangrijk voorbeeld van een complexe, krachtige WPF-app.

Wie bouwt momenteel Blazor-apps?

Het FlightPulse luchtvaartmaatschappijsysteem van GE Digital maakt gebruik van Blazor voor de back-endconfiguratie van alles wat piloten zien, waarbij sensorgegevens en analyses rechtstreeks naar piloten worden gebracht om de veiligheid en efficiëntie te verbeteren.

Bekijk meer Blazor-klantverhalen op de .NET site.

Taalkeuze (.NET versus C++)

Moet ik C# of C++ gebruiken voor mijn Windows-app?

Gebruik in de meeste gevallen C# (.NET). C# biedt snellere ontwikkeling, geheugenveiligheid, uitgebreide bibliotheken en uitstekende hulpmiddelen. De meeste Windows-apps, waaronder WinUI 3, WPF, WinForms en .NET MAUI-apps, zijn het best gebouwd met C#.

Gebruik C++ wanneer u directe hardwaretoegang, minimale runtimeoverhead of interop met bestaande C++-codebases nodig hebt. Veelvoorkomende C++-scenario's zijn onder andere game-engines (DirectX), stuurprogramma's, hulpprogramma's op systeemniveau en prestatiekritieke onderdelen.

Kenmerk C# (.NET) C++
Ontwikkelsnelheid ✅ Sneller : beheerd geheugen, uitgebreid ecosysteem ⚠️ Langzamer — handmatig beheer van resources
Prestaties tijdens runtime ✅Uitstekend met het moderne .NET (AOT, Span<T>) ✅ Zo goed mogelijk — geen GC-pauzes
Geheugenveiligheid ✅ met garbagecollection ⚠✏ Handmatig — risico op lekken en beveiligingsproblemen
WINDOWS API-toegang ✅ Via C#/WinRT-projectie ✅ Via C++/WinRT-projectie
WinUI 3-ondersteuning ✅ Volledige ondersteuning ✅ Volledige ondersteuning via C++/WinRT
Platformonafhankelijk ✅.NET wordt uitgevoerd op Windows, Linux, macOS ✅ Met platformspecifieke code
Geschikt voor Zakelijke apps, CRUD, services, gebruikersinterface-intensieve apps Games, stuurprogramma's, systeemhulpprogramma's, lage latentie

U kunt beide ook combineren: uw app bouwen in C# en prestatiekritieke systeemcode aanroepen via P/Invoke (CsWin32) of een C++/WinRT-onderdeel.

Hoe roep ik Win32-API's aan vanuit C#?

Gebruik CsWin32, een brongenerator die typeveilige P/Invoke-handtekeningen maakt tijdens de build. U voegt het Microsoft.Windows.CsWin32 NuGet-pakket toe, vermeldt de API's die u nodig hebt in een NativeMethods.txt bestand en roept deze aan via een gegenereerde PInvoke klasse.

CsWin32 vervangt handgeschreven [DllImport] declaraties en werkt in elk C#-project: WinUI, WPF, WinForms of console. Zie Win32-API's aanroepen vanuit een C# Windows-app (CsWin32) voor een stapsgewijze procedure.

Wat is C++/WinRT en wanneer moet ik deze gebruiken?

C++/WinRT is een standaard C++17-taalprojectie voor Windows Runtime API's. Gebruik deze bij het bouwen van Windows apps in C++ die WinRT-API's gebruiken of schrijven. Het vervangt C++/CX en de Windows Runtime C++-sjabloonbibliotheek (WRL).

Kies C++/WinRT wanneer:

  • U bouwt een C++ WinUI 3-app
  • U moet Windows Runtime onderdelen ontwerpen die worden gebruikt door andere talen
  • U gaat overzetten vanuit C++/CX
Wat is C#/WinRT en wanneer heb ik het nodig?

C#/WinRT biedt Ondersteuning voor WinRT-projectie voor C#. In de meeste gevallen werkt u er niet rechtstreeks mee — .NET-apps die op Windows zijn gericht, hebben automatisch toegang tot WinRT-API's via target framework monikers (TFM's). U hebt C#/WinRT expliciet nodig bij het ontwerpen van Windows Runtime onderdelen in C# of bij het genereren van interop-assembly's voor WinRT-onderdelen van derden.

Pakketten, implementatie en updates

Wat is het verschil tussen apps die zijn verpakt, uitgepakt en verpakt met externe locatie?

Een verpakte app bevat de bestanden, identiteit en implementatiegegevens in een pakket, zoals MSIX. Een uitgepakte app maakt gebruik van een installatie- of implementatieproces buiten het Windows pakketsysteem en heeft geen pakketidentiteit standaard. Een app die is verpakt met een externe locatie maakt gebruik van een klein identiteitspakket terwijl binaire bestanden en het bestaande installatieprogramma en het bestaande updateproces behouden blijven.

Zie Het overzicht van pakketten voor vereisten en compromissen.

Heb ik pakketidentiteit nodig?

Dit is afhankelijk van de Windows functies die uw app gebruikt. Voor sommige achtergronduitvoeringen, pushmeldingen, shell-extensie, koppeling en Windows AI-scenario's is pakketidentiteit vereist. Andere Windows App SDK-mogelijkheden, waaronder WinUI- en lokale app-meldingen, kunnen zonder dit werken.

Zie functies waarvoor pakketidentiteit is vereist. Als u identiteit nodig hebt, maar een bestaand installatieprogramma moet behouden, kunt u overwegen om pakketten met een externe locatie te verpakken.

Wat is het verschil tussen frameworkafhankelijke en zelfstandige implementatie?

Een frameworkafhankelijke app maakt gebruik van Windows App SDK runtimepakketten die afzonderlijk op het apparaat zijn geïnstalleerd. Dit vermindert de implementatiegrootte van de app. Een zelfstandige app bevat de inhoud van het Windows App SDK Framework-pakket in de app zelf, waardoor de implementatieomvang toeneemt, maar de app die frameworkonderdelen zelf kan onderhouden.

API's die afhankelijk zijn van aanvullende MSIX-pakketten, zoals het Singleton-pakket, kunnen afzonderlijke controles voor implementatie- of runtime-ondersteuning vereisen, zelfs in een zelfstandige app. Pakketten en runtime-implementatie zijn afzonderlijke beslissingen. Zie overzicht van de implementatie van Windows App SDK.

Wordt mijn WinUI-app automatisch bijgewerkt voor eindgebruikers?

Een WinUI-app kan worden geleverd via de Store, een .appinstaller-bestand of via een bestaand MSI- of setup.exe-pakket. De Store en AppInstaller ondersteunen automatische updates voor eindgebruikers die automatische updates hebben ingeschakeld, maar MSI/setup.exe-apps moeten hun eigen updatemechanisme bieden.

Kan ik Windows App SDK gebruiken zonder MSBuild?

WinUI XAML-projecten vereisen MSBuild, maar Visual Studio is niet vereist. U kunt de .NET SDK en WinUI-sjablonen gebruiken om MSBuild via dotnet build vanaf de opdrachtregel uit te voeren. Windows App SDK onderdelen die geen WinUI gebruiken, kunnen ook worden geïntegreerd in ondersteunde MSBuild-bureaubladprojecten.

WINDOWS AI

Hoe kies ik tussen Windows AI-API's, Foundry Local en Windows ML?

Gebruik Windows AI-API's voor kant-en-klare, Windows beheerde AI-mogelijkheden. Gebruik Foundry Local om ondersteunde taal- en spraakmodellen lokaal te detecteren, te downloaden en uit te voeren. Gebruik Windows ML om aangepaste ONNX-modellen uit te voeren met uitvoeringsproviders voor beschikbare CPU-, GPU- en NPU-hardware.

Hardware, Windows versie, pakketidentiteit, model en distributievereisten variëren. Controleer de huidige vereisten voor de API of runtime die u kiest in plaats van ervan uit te gaan dat elke Windows AI-mogelijkheid beschikbaar is op elke pc.

Waar moet ik rekening mee houden voordat ik een AI-ondersteunde functie uitbreng?

Definieer het beoogde gebruik en de beperkingen van de functie, evalueer kwaliteit en veiligheid met representatieve gegevens, openbaar het AI-gedrag, beveilig gebruikersgegevens en geef een terugval op wanneer het model of de vereiste hardware niet beschikbaar is. Zie Verantwoordelijke generatieve AI-ontwikkeling op Windows.

Prestaties en optimalisering

Wat kan ik doen om mijn Windows app geweldig te maken voor eindgebruikers?

Zie Windows applicatieontwikkeling - Beste praktijken en Windows app prestaties en fundamentele overzichten.

Compatibility

Will dat mijn gebruikers ooit Windows moeten bijwerken om mijn WinUI-app te gebruiken?

Windows App SDK apps kunnen worden uitgevoerd op ondersteunde edities van Windows 10, versie 1809 en hoger, maar voor afzonderlijke API's en app-functies zijn nieuwere Windows releases of hardware vereist. Voor productieondersteuning moet het apparaat een Windows editie en versie uitvoeren die nog steeds wordt ondersteund en moet de app een ondersteunde Windows App SDK release met huidige onderhoudsupdates gebruiken. Zie Windows App SDK-ondersteuning en releasekanalen.

Kan ik Arm64 targeten met mijn WinUI-app?

Ja. Bouw een systeemeigen Arm64-app voor de beste prestaties en efficiëntie. Voor een grote C++-codebasis met x64-afhankelijkheden kunt u met Arm64EC modules incrementeel migreren. Windows 11 op Arm kan ook veel bestaande x86- en x64-apps uitvoeren via prism-emulatie, maar u moet de prestaties en compatibiliteit testen op representatieve Arm-apparaten.

Verouderingen en migraties

Zijn UWP/WinUI voor UWP afgeschaft?

Nee. UWP en WinUI voor UWP blijven ondersteund en ontvangen bug-, betrouwbaarheids- en beveiligingsoplossingen. WinUI en de Windows App SDK zijn echter het aanbevolen pad voor nieuwe algemene Windows desktop-apps en ontvangen de meeste nieuwe platforminvesteringen.

UWP-ondersteuning voor moderne .NET met Systeemeigen AOT is algemeen beschikbaar en is het standaardtype C# UWP-project in Visual Studio 2026. Het verplaatsen van een bestaande UWP-app van .NET Native naar moderne .NET is een afzonderlijke moderniseringsstap van het migreren van de gebruikersinterface naar WinUI. Zie Uw UWP-app moderniseren met .NET en systeemeigen AOT.

Wanneer moet ik een UWP/WinUI voor UWP-app migreren naar WinUI?

UWP-ontwikkelaars moeten zich niet onder druk voelen om te migreren als ze tevreden zijn met UWP en de bijbehorende functieset. Voor veel apps is het mogelijk dat de juiste keuze is om op UWP te blijven.

Apps die willen profiteren van het nieuwste Windows platform en .NET investeringen, moeten overwegen om over te stappen op de Windows App SDK. Zie Migrate from UWP to the Windows App SDK.

Wanneer moet ik *niet* een UWP + WinUI voor UWP-app migreren naar WinUI?

Blijf UWP gebruiken als u bouwt voor Xbox, Surface Hub of HoloLens.

Wordt WPF niet meer ondersteund?

Nee. WPF wordt ondersteund, aanbevolen en blijft functie-updates ontvangen. Zie de WPF roadmap op GitHub.

Is WinForms verouderd verklaard?

Nee. WinForms wordt ondersteund en blijft functie-updates ontvangen. Zie de Windows Forms roadmap op GitHub.

Is de Windows Runtime (WinRT) afgeschaft?

Nee. WinRT is een binaire interface (ABI) voor toepassingen die interop in meerdere talen mogelijk maakt. WinRT is de evolutie van COM en de Windows App SDK biedt de meeste functionaliteit via WinRT-API's.

Opmerkingen bij de uitgave

Waar vind ik releaseopmerkingen voor Windows App SDK?

De meest recente releaseopmerkingen vindt u op de pagina Wat is er nieuw .