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?

Bekijk voor een overzicht van de huidige opties voor Windows ontwikkelaars de Windows Dev Chat-aflevering Kiezen voor uw ideale ontwikkelplatform, waarin WinUI 3, .NET MAUI, React Native, Blazor en Progressive Web Apps (PWA's) worden besproken. U vindt andere afleveringen in de Windows Dev Chat-afspeellijst.

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 3, levenscyclus van apps, 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 bevat WinUI 3 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 3-apps gebruiken vaak beide.

Ik bouw een nieuw team om een Windows-app te ontwikkelen. Waarom zou ik ervoor kiezen om te ontwikkelen met een systeemeigen Windows framework zoals WinUI 3, 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 algemene Windows desktop-app bouwt, raden we u aan WinUI 3 te gebruiken. WinUI 3 is het systeemeigen UI-framework dat wordt geleverd met de Windows App SDK. Het biedt ondersteuning voor Windows desktop-apps en biedt toegang tot de huidige Fluent-besturingselementen en Windows platformmogelijkheden.

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

WinUI 3 (een UI-framework) wordt geleverd met de Windows App SDK (een Windows platformontwikkelingsframework).

U kunt de gebruikersinterface van een app migreren naar WinUI 3 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 3. Voorbeelden hiervan zijn app-levenscyclus, vensters en app-meldingen.

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

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

Nee. WinUI 3 XAML-builds gebruiken MSBuild, maar u kunt bouwen met de .NET SDK en huidige WinUI 3-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 3 is Microsoft huidige systeemeigen UI-framework voor Windows desktop-apps en wordt geleverd als onderdeel van de Windows App SDK.

WinUI 2, ook wel WinUI voor UWP genoemd, is een besturingselement- en stijlbibliotheek voor UWP-apps. WinUI 2 en WinUI 3 gebruiken verschillende XAML-naamruimten en zijn niet binair compatibel.

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

Ja. WinUI 3-app is de meest duidelijke term voor een app waarvan de gebruikersinterface Gebruikmaakt van WinUI 3 en de Windows App SDK. WinUI-app wordt ook vaak gebruikt wanneer de context ondubbelzinnig is.

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

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

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

UWP en WinUI 3 delen veel XAML-concepten, maar migratie is geen directe naamruimtewijziging. De kosten zijn 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.
  3. Ui-onderdeelbibliotheken: Bibliotheken moeten versies hebben die gericht zijn op WinUI 3.
  4. Venster- en toepassingsmodel-API's: UWP-API's die zijn gekoppeld aan concepten zoalsCoreWindow, ApplicationViewof GetForCurrentView vereisen Windows App SDK vervangingen of een andere desktopbenadering.
  5. C++ taalprojectie: Als de UWP-app gebruikmaakt van de vervangen C++/CX-projectie, moet u die code overzetten naar C++/WinRT.

Zie Migreren van UWP naar de Windows App SDK en uwp naar Windows App SDK API-toewijzing voor meer informatie.

Als ik een bestaande UWP-app in de Store heb, kan ik een nieuwe verpakte WinUI 3-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 standard Surface Hub-apps kunnen niet worden gemigreerd naar WinUI 3.

Hoe kan ik mijn WinUI 3-app verpakken of distribueren?

Zie Overzicht van pakket en uitrol.

Waar vind ik Windows App SDK migratierichtlijnen?

Zie Migrate from UWP to the Windows App SDK.

Moet ik XAML-opmaak gebruiken als ik WinUI 3 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 3: Veel XAML- en UI-concepten worden overgedragen, maar de naamruimten, het projectmodel en sommige API's verschillen.
  • Migreren van WPF naar WinUI 3: Veel concepten worden overgedragen, maar de besturingsset en API's verschillen.
Heeft Visual Studio een ontwerpoppervlak of UI-ontwerpfunctie voor WinUI 3?

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.

Bevat Windows App SDK WinUI 3?

Ja. WinUI 3 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 3 gebouwd op dezelfde technologie?

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

Kan ik WinUI 3 gebruiken zonder Windows App SDK te gebruiken?

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

Kan ik WinUI 3 gebruiken in een uitgepakte app?

Ja. WinUI 3 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 3?

WinUI 3 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 3-app maak, ziet deze er modern uit op zowel Windows 11 als Windows 10?

WinUI 3-besturingselementen gebruiken Fluent-styling in ondersteunde versies van Windows 10 en Windows 11, in zowel verpakte als uitgepakte apps. Sommige effecten en gedragingen van het besturingssysteem verschillen per Windows versie. Mica is bijvoorbeeld beschikbaar op Windows 11 en valt terug op een effen kleur op Windows 10.

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

Ja. Desktop Acryl wordt ondersteund op Windows 10, versie 1809 en hoger. Mica vereist Windows 11 en valt terug naar een effen themakleur op Windows 10. Roep MicaController.IsSupported of DesktopAcrylicController.IsSupported tijdens de uitvoering aan voordat u een achtergrond toepast. Zie Breng Mica- of Acrylmaterialen aan in desktop-apps voor Windows 11.

Waar vind ik WinUI 3-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 3?

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 3 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. Recente en doorlopende werkzaamheden omvatten:

  • Asynchrone formulier- en dialoogvenster-API's
  • Ondersteuning voor donkere modus en visuele stijl
  • Verbeteringen in toegankelijkheid, hoge DPI, indeling en ontwerpfunctie
  • Klembord en DataObject modernisering

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 voor Windows bouwt, gebruikt de uitvoer WinUI 3. Tijdens de ontwikkeling biedt .NET MAUI één .NET ervaring op verschillende platforms, maar genereert het platformspecifieke code onder de schermen.

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 3 en later .NET MAUI integreren als ik uiteindelijk platformoverschrijdende scenario's wil toepassen?

Niet op dit moment. Hoewel .NET MAUI WinUI 3 gebruikt bij het uitvoeren op Windows, moeten teams die verwachten dat er meerdere platforms worden gebruikt, 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 voor Windows ondersteunt de Windows versies die worden vermeld in de compatibiliteitsdocumentatie. Controleer de ondersteuning van de apparaatfamilie voor de React Native voor Windows versie waarop u zich richt in plaats van ervan uit te gaan dat elk Windows apparaat wordt ondersteund.

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

Gebruik voor een Xbox-app UWP en houd rekening met de Xbox-specifieke UWP-beperkingen. Gebruik de Microsoft Game Development Kit voor gameontwikkeling.

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

Voor een Surface Hub waarop de standaard Teams-ruimten of Surface Hub-omgeving worden uitgevoerd, gebruikt u een UWP-app die voldoet aan de Surface Hub-app-vereisten. Een Surface Hub 3 die is geconfigureerd met Windows 11 Pro of Enterprise kan ondersteunde bureaublad-app-technologieën uitvoeren, dus UWP is niet de enige optie in die configuratie.

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 3?

Microsoft Foto's is één gedocumenteerd voorbeeld. De app is gemigreerd van UWP naar de Windows App SDK en blijft WinUI 3 gebruiken. Zie Microsoft Foto's voor meer informatie over de architectuur en migratie: Migreren van UWP naar Windows App SDK.

Who bouwt .NET MAUI apps vandaag?

Organisaties gebruiken .NET MAUI om platformoverschrijdende apps te bouwen voor Android, iOS, macOS en Windows. Bekijk voorbeelden in de .NET klantshowshow.

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, waaronder WinUI 3, WPF, WinForms en console-apps. 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. Pakketidentiteit is vereist voor scenario's zoals verpakte achtergrondtaken, sharedoelen, opstarttaken, aangepaste contextmenupakketextensies, op manifest gebaseerde bestandstypen en protocolkoppelingen, en veel Windows AI-API's. Windows App SDK pushmeldingen ondersteunen beperkte scenario's op de voorgrond zonder identiteit, maar voor de levering op de achtergrond en COM-activering is identiteit vereist. WinUI 3- en lokale app-meldingen kunnen zonder pakketidentiteit 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. Hierdoor wordt de implementatiegrootte van de app verkleind en kan het geïnstalleerde framework onderhoudsupdates ontvangen. Een zelfstandige app heeft de bijbehorende Windows App SDK afhankelijkheden, waardoor de implementatiegrootte toeneemt en de uitgever van de app verantwoordelijk is voor het distribueren van Windows App SDK onderhoudsupdates met nieuwe app-versies.

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 3-app automatisch bijgewerkt voor eindgebruikers?

Een WinUI 3-app kan worden geleverd via de Microsoft Store, een .appinstaller bestand of een MSI of uitvoerbaar installatieprogramma. Store-pakketten kunnen worden bijgewerkt via de updateservice van de Microsoft Store, afhankelijk van de instellingen van de Store en de organisatie. Een .appinstaller implementatie ondersteunt alleen automatische updates wanneer de UpdateSettings starttijd of achtergrondcontroles zijn geconfigureerd. MSI- en installatie-implementaties moeten hun eigen updatemechanisme bieden of integreren.

Kan ik Windows App SDK gebruiken zonder MSBuild?

Ja, voor sommige scenario's. WinUI 3 XAML-projecten vereisen momenteel MSBuild, hoewel Visual Studio niet vereist is en dotnet build MSBuild vanaf de opdrachtregel kan aanroepen. U kunt niet-XAML Windows App SDK API's van C++ en CMake-projecten gebruiken via de preview-Windows-app Development CLI of de runtime handmatig integreren.

WINDOWS AI

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

De eerste drie technologieën maken deel uit van Microsoft Foundry op Windows. U kunt ze combineren met elkaar en met cloudmodellen in dezelfde app:

  • Gebruik Windows AI-API's voor kant-en-klare mogelijkheden waarvan modellen en hardwareversnelling Windows beheert.
  • Gebruik Foundry Local om ondersteunde opensource- en spraakmodellen lokaal te detecteren, te downloaden en uit te voeren.
  • Gebruik Windows ML om uw eigen ONNX-modellen uit te voeren met uitvoeringsproviders voor beschikbare CPU-, GPU- en NPU-hardware.
  • Gebruik Microsoft Foundry, een afzonderlijk AI-platform voor de cloud, wanneer u in de cloud gehoste modellen nodig hebt, ophalen, gecentraliseerd beheer of mogelijkheden die niet beschikbaar zijn op het doelapparaat.

Vergelijk de opties in Uw Windows AI-oplossing kiezen. Overweeg modelmogelijkheden, privacy, connectiviteit, latentie, hardwaredekking, implementatiegrootte en operationele kosten.

Is voor Windows AI-functies een Copilot+ PC vereist?

Niet allemaal. Veel Windows AI-API's vereisen een Copilot+ PC, maar sommige API's ondersteunen ook specifieke GPU's of CPU's. Foundry Local en Windows ML ondersteunen bredere hardwareconfiguraties, afhankelijk van hun huidige vereisten voor het besturingssysteem, het model, de runtime en de uitvoeringsprovider.

Controleer de Windows hardwaretabel voor AI API en de vereisten voor de specifieke API of het specifieke model. Detecteer tijdens runtime of ondersteuning beschikbaar is en of het model gereed is, en bied een fallback zonder AI, met een lokaal model of in de cloud wanneer de functie niet beschikbaar is.

Kunnen Windows AI-functies lokaal en offline worden uitgevoerd?

Ja. Windows AI-API's, Foundry Local en Windows ML kunnen deductie uitvoeren op het apparaat van de gebruiker, wat de latentie kan verminderen en invoergegevens lokaal kan houden. Sommige modellen of uitvoeringsproviders moeten eerst worden gedownload of ingericht en kunnen een internetverbinding vereisen tijdens de installatie of het onderhoud. Cloud AI-services vereisen connectiviteit en verzenden gegevens naar de service volgens de voorwaarden voor gegevensverwerking.

Laat gebruikers weten wanneer een modeldownload vereist is en wanneer gegevens het apparaat verlaten. Omschrijf een functie pas als geschikt voor offlinegebruik nadat u de volledige ervaring van het eerste gebruik, updates en het terugvalscenario hebt getest.

Kan ik met AI-hulpprogramma's een Windows-app bouwen of moderniseren?

Ja. AI-coderingsagents kunnen helpen bij projecten, API's uitleggen, code migreren, tests genereren en buildproblemen diagnosticeren. Gebruik de door AI ondersteunde Windows ontwikkelingsrichtlijnen voor GitHub Copilot, de WinUI-agentinvoegtoepassing, de Microsoft Learn MCP Server, migratiewerkstromen en ai-ondersteunde tests.

Controleer en test gegenereerde code zoals u elke andere bijdrage zou doen. Controleer met name API-namen en -versies, pakketmogelijkheden, beveiligingsgevoelige code, toegankelijkheid en eventuele VERVANGINGen van UWP-naar-WinUI 3.

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. Houd geheimen en bevoorrechte service-inloggegevens buiten client-apps, en vereis bevestiging door de gebruiker voordat ingrijpende of onomkeerbare acties worden uitgevoerd. Zie Verantwoordelijke generatieve AI-ontwikkeling over Windows en beveiliging en verantwoordelijke AI voor Windows ontwikkeling.

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

Moeten mijn gebruikers ooit Windows bijwerken om mijn WinUI 3-app te gebruiken?

De Windows App SDK heeft een minimaal compatibel besturingssysteem van Windows 10, versie 1809, build 17763. Microsoft ondersteuning vereist een ondersteunde Windows App SDK release met de nieuwste onderhoudsupdate en een Windows-editie, versie en servicekanaal dat nog steeds wordt ondersteund. Afzonderlijke API's kunnen een nieuwere Windows versie of specifieke hardware vereisen. Zie Windows App SDK-ondersteuning en releasekanalen.

Kan ik Arm64 targeten met mijn WinUI 3-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?

UWP en WinUI 2 zijn niet formeel afgeschaft. Visual Studio 2026 ondersteunt UWP met moderne .NET en Native AOT, terwijl WinUI 2.8 de nieuwste stabiele WinUI-release blijft voor UWP. Microsoft adviseert Echter WinUI 3 en de Windows App SDK voor nieuwe algemene Windows desktop-apps.

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 3. Zie Uw UWP-app moderniseren met .NET en systeemeigen AOT.

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

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 WinUI 3 en 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 3?

Blijf UWP gebruiken wanneer uw doelapparaat of app-model dit vereist, zoals Xbox apps, HoloLens 2D-apps of apps voor de standaard-Surface Hub-omgeving. Windows IoT Enterprise ondersteunt bureaublad-app-technologieën, waaronder de Windows App SDK, zodat een IoT-doel niet zelf een reden is om UWP te gebruiken.

Wordt WPF niet meer ondersteund?

Nee. WPF wordt ondersteund en blijft in moderne .NET verbeteringen krijgen op het gebied van functionaliteit, prestaties, toegankelijkheid en Fluent-stijl. Het blijft een goede keuze voor bestaande WPF-apps en voor nieuwe apps waarvan de vereisten goed bij WPF passen. Voor nieuwe algemene Windows desktop-apps is de primaire aanbeveling van Microsoft WinUI 3 met de Windows App SDK. 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?

Zie de Windows App SDK releaseopmerkingen voor stabiele, preview- en experimentele releases. De pagina Wat is er nieuw voor Windows ontwikkelaars bevat een overzicht van de nieuwste Windows SDK, Windows App SDK, WinUI 3, hulpprogramma's en platformupdates.