Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article contient les informations dont vous avez besoin pour commencer à créer des applications pour Windows et à choisir l’infrastructure d’interface utilisateur qui correspond à votre ensemble de compétences et à votre scénario.
Windows offre un large éventail de langages, d’infrastructures et d’outils pour la création d’applications, notamment WinUI, React Native for Desktop, WPF, C++, C#, .NET et une variété d’infrastructures multiplateformes. Nous vous fournissons ici les informations nécessaires pour vous aider à choisir la solution la plus appropriée à votre situation.
WinUI
Utilisez WinUI et le Kit de développement logiciel (SDK) d’application Windows pour créer des applications qui semblent intéressantes et tirent parti des dernières versions de Windows. Si vous êtes novice en matière de développement Windows ou si vous commencez à travailler sur une nouvelle application Windows, WinUI fournit les ressources dont vous avez besoin pour créer de formidables applications pour Windows 11.
WinUI est une couche d’interface utilisateur de balisage XAML qui comprend des contrôles et des styles modernes pour la création d’applications Windows. En tant que couche d’interface utilisateur native pour le SDK d’applications Windows, il intègre Fluent Design, donnant à chaque application Windows l’aspect soigné que les clients attendent.
Remarque
Le kit SDK d’application Windows est un ensemble de nouveaux composants et outils de développement qui représentent la dernière évolution de la plateforme de développement d’applications Windows. Le SDK d’application Windows fournit un ensemble unifié d’API et d’outils que les applications de bureau sur Windows 11 et de bas niveau vers Windows 10, version 1809, peuvent utiliser de manière cohérente.
Bien que WinUI soit la couche d’interface utilisateur native, vous pouvez utiliser le SDK d’application Windows avec des applications WPF, WinForms ou Win32. Si vous avez développé des applications pour Windows avant, mais que vous souhaitez commencer à utiliser le Kit de développement logiciel (SDK) d’application Windows dans une application existante, consultez les guides spécifiques au framework.
React Native pour Desktop
React Native est une plateforme de développement qui permet de créer des applications multiplateformes. React Native pour Desktop inclut React Native pour Windows et macOS, apportant la prise en charge de React Native au Kit de développement logiciel (SDK) Windows. React Native for Desktop vous permet d’utiliser JavaScript pour créer des applications Windows natives pour tous les appareils pris en charge par Windows 10 et Windows 11. Cette prise en charge inclut les PC, les tablettes, les 2-in-1s, Xbox, les appareils Mixed Reality, etc.
Avec React Native for Desktop, vous écrivez la plupart ou l’ensemble de votre code d’application en JavaScript ou TypeScript. L’infrastructure produit une application XAML UWP native. Si votre application doit appeler une API de plateforme, vous pouvez généralement le faire via l’un des nombreux modules de la communauté. Si un module n’existe pas encore, vous pouvez facilement écrire un module natif pour l’exposer.
Voici quelques raisons de choisir React Native for Desktop :
- Vous souhaitez partager le code sur plusieurs plateformes autant que possible, ou vous avez des propriétés web avec lesquelles vous voulez partager du code.
- Amélioration de la productivité des développeurs et de la boucle interne grâce à une actualisation rapide.
- Les bases de votre application (performances, accessibilité, internationalisation) sont aussi efficaces qu’une application UWP native.
- Vous avez une expérience avec et une préférence pour JavaScript ou TypeScript.
- Vous souhaitez également tirer parti des bibliothèques JavaScript uniquement sur npmjs.com et de nombreuses bibliothèques natives.
- Votre application utilise les contrôles natifs, l’apparence visuelle, les animations et les couleurs. Elle est donc intégrée au langage de conception utilisé dans Windows. En outre, les applications React Native pour bureau n’ont pas besoin de compromettre l’ensemble des API qu’elles peuvent appeler. L’infrastructure vous permet d’appeler des API de plateforme, ainsi que d’écrire vos propres gestionnaires d’affichage et modules natifs.
- Une très bonne dynamique toujours plus importante de la communauté, avec un grand nombre de modules de la communauté.
Pour plus d’informations sur React Native for Desktop, consultez les liens suivants :
- Dépôt React Native pour Windows sur GitHub
- React Native pour le référentiel macOS sur GitHub
- Informations de référence sur les API
- React Native pour les ressources desktop
WPF (Windows Presentation Foundation)
WPF est une infrastructure bien implantée pour les applications de bureau Windows ayant accès à .NET ou au .NET Framework. Comme WinUI, elle utilise également le balisage XAML pour séparer l’interface utilisateur du code. WPF fournit un ensemble complet de fonctionnalités de développement d’applications qui incluent des contrôles, la liaison de données, la disposition, les graphiques 2D et 3D, l’animation, des styles, des modèles, des documents, des médias, du texte et de la typographie. WPF fait partie de .NET : vous pouvez donc créer des applications qui incorporent d’autres éléments de l’API .NET.
En outre, vous pouvez désormais intégrer un environnement de bac à sable dans vos applications WPF empaquetées, fournissant une couche de sécurité supplémentaire. Cette amélioration ne nécessite que peu ou pas de modifications de votre code, grâce à la nouvelle fonctionnalité de sécurité Win32 App Isolation.
Conseil
Si vous avez déjà investi dans WPF, vous pouvez continuer à l’utiliser et tirer parti des options de modernisation dans .NET 9. Vous pouvez créer vos applications sachant que Microsoft continue d’investir dans WPF. Pour plus d’informations, consultez la FAQ développeur de Windows.
Si vous avez une application WPF .NET, vous avez également accès aux fonctionnalités de plateforme Windows modernes et aux API fournies par le SDK d’application Windows. Pour en savoir plus, consultez Utiliser le SDK d’application Windows dans une application WPF et Moderniser vos applications de bureau.
Conseil
Si vous avez besoin d’une aide supplémentaire pour déterminer l’infrastructure la plus adaptée à votre application, consultez module de formation Choisir la meilleure infrastructure d’application pour un projet de développement Windows.
Autres options de plateforme natives
De nombreuses applications pour Windows sont écrites à l’aide de Win32, Windows Forms ou UWP. Chacun de ces cadres est pris en charge et continue de recevoir des correctifs pour les bogues, la fiabilité et la sécurité, mais présente des niveaux d'investissement variés pour les nouvelles fonctionnalités et styles. Pour plus d’informations sur ces types d’applications, consultez les onglets suivants.
Les applications de bureau Win32 (parfois également appelées applications de bureau classiques) sont le type d’application d’origine pour les applications Windows natives qui nécessitent un accès direct à Windows et au matériel. Cet accès rend Win32 le type d’application de choix pour les applications qui ont besoin du niveau de performances le plus élevé et l’accès direct au matériel système.
En utilisant l’API Win32 avec C++, vous pouvez atteindre les niveaux de performances et d’efficacité les plus élevés. Vous contrôlez davantage la plateforme cible avec du code non managé que possible sur un environnement d’exécution managé comme WinRT et .NET. Toutefois, l’exercice d’un tel niveau de contrôle sur l’exécution de votre application nécessite plus de soin et d’attention. Ainsi, les gains de performances du runtime se font aux dépens de la productivité du développement.
Voici quelques points forts de ce que l’API Win32 et L’offre C++ vous permettent de créer des applications hautes performances.
- Optimisations au niveau du matériel, notamment grâce au contrôle étroit de l’allocation des ressources, de la durée de vie des objets, de la disposition des données, de l’alignement, de la compression d’octets, etc.
- Accès aux jeux d’instructions orientés performances comme SSE et AVX par le biais de fonctions intrinsèques.
- Programmation générique efficace de type sécurisé à l’aide de modèles.
- Conteneurs et algorithmes efficaces et sûrs.
- DirectX, en particulier Direct3D et DirectCompute.
- Utilisez C++/WinRT pour créer des applications de bureau Win32 modernes avec un accès de qualité exceptionnelle aux API Windows Runtime (WinRT).
En outre, vous pouvez désormais intégrer un environnement de bac à sable dans vos applications Win32, ce qui offre une couche de sécurité supplémentaire. Cette amélioration ne nécessite que peu ou pas de modifications de votre code, grâce à la nouvelle fonctionnalité de sécurité Win32 App Isolation.
Vous avez également accès aux fonctionnalités de plateforme Windows modernes et aux API fournies par le SDK d’application Windows. Pour en savoir plus, consultez Utiliser le SDK d’application Windows dans un projet existant et Moderniser vos applications de bureau.
Autres options multiplateformes
Si vous avez besoin que votre application soit multiplateforme, en plus de React Native for Desktop, envisagez .NET MAUI, Blazor Hybrid ou une application web progressive (PWA). De nombreux autres choix sont disponibles (voici une liste d’options populaires), mais ces options sont de bons points de départ.
.NET MAUI exploite la puissance de WinUI sur Windows tout en prenant en charge l’exécution sur d’autres systèmes d’exploitation. Blazor Hybrid combine les infrastructures clientes natives mobiles et de bureau avec .NET et Blazor. Une autre option multiplateforme, les applications web progressives (PWA), qui sont des sites web qui fonctionnent comme des applications natives installées sur Windows et autres plateformes prises en charge, tout en fonctionnant comme des sites web standard sur les navigateurs.
Pour plus d’informations, voir le les onglets suivants.
L’interface utilisateur de l’application multiplateforme .NET (MAUI) est une infrastructure open source multiplateforme pour la création d’applications Android, iOS, macOS et Windows. Avec .NET MAUI, vous pouvez tirer parti de l’interface utilisateur et des services natifs de chaque plateforme à partir d’une base de code .NET unique. Comme .NET MAUI privilégie les expériences natives des plateformes, il utilise WinUI et le SDK d’application Windows pour que les applications bénéficient de l’expérience utilisateur la plus récente sur Windows. Cette approche donne à vos applications l’accès à tout ce que vous obtenez avec WinUI, ainsi que la possibilité d’atteindre d’autres plateformes.
.NET MAUI pour Windows est un excellent choix si vous :
- Vous souhaitez partager autant de code .NET que possible sur les applications mobiles et de bureau.
- Vous souhaitez expédier votre application au-delà de Windows à d’autres cibles de bureau et mobiles avec des expériences de plateforme natives.
- Vous souhaitez utiliser C# et/ou XAML pour créer des applications multiplateformes.
- Utilisez Blazor pour le développement web et souhaitez inclure tout ou partie de celui-ci dans une application mobile ou de bureau.
Pour plus d’informations sur .NET MAUI, consultez les liens suivants :
- Documentation .NET MAUI
- .NET MAUI sur GitHub
- Feuille de route des produits .NET MAUI
- Créez des applications Windows avec .NET MAUI
- Ressources pour l’apprentissage de .NET MAUI
- Série de vidéos - .NET MAUI pour débutants
- Build 2022 : Développer des applications natives pour tous les appareils avec .NET et Visual Studio
Comparaison des fonctionnalités des infrastructures de développement d’applications
Vous avez de nombreuses options pour développer des applications pour Windows. Pour choisir la meilleure option, il faut tenir compte des exigences de votre application, de votre code existant et de votre degré de connaissance de la technologie. Le tableau suivant répertorie les frameworks de développement d'applications les plus populaires disponibles sur Windows et les fonctionnalités prises en charge par chaque framework.
| Fonctionnalité | .NET MAUI | Blazor Hybride | React Native pour Desktop | XAML UWP (Windows.UI.Xaml) | Win32 (MFC ou ATL) | Windows Forms | WinUI 3 | WPF (Windows Presentation Foundation) |
|---|---|---|---|---|---|---|---|---|
| Langage | C# | C# | JavaScript, TypeScript | C#, C++, Visual De base | C++, Rust | C#, Visual Basic | C#, C++ | C#, Visual Basic |
| Langue de l'interface utilisateur | XAML/Code | Rasoir | JSX | XAML | Code | Code | XAML | XAML |
|
Concepteur d'interface utilisateur (glisser & déposer) |
Non prise en charge | Non prise en charge | Non prise en charge | Pris en charge | Non prise en charge | Pris en charge | Non prise en charge | Pris en charge |
| débogage de l'interface utilisateur | Rechargement à chaud | Rechargement à chaud | Actualisation rapide | Rechargement à chaud | - | Rechargement à chaud | Rechargement à chaud | Rechargement à chaud |
| Conception fluide | Pris en charge | Pris en charge | Pris en charge | Pris en charge (via WinUI 2) | Non prise en charge | Non prise en charge | Pris en charge | Non prise en charge |
| .FILET | .FILET | .FILET | N/A | .NET Core et .NET natif | N/A | .NET et .NET Framework | .FILET | .NET et .NET Framework |
| Kit de développement logiciel (SDK) pour application Windows | Prise en charge (Plus d’informations) | Pris en chargevia MAUI | Prise en charge (Plus d’informations) | Non prise en charge | Pris en charge | Prise en charge (Plus d’informations) | Pris en charge | Prise en charge (Plus d’informations) |
| Idéal pour le toucher | Pris en charge | Pris en charge | Pris en charge | Pris en charge | Non prise en charge | Non prise en charge | Pris en charge | Non prise en charge |
| Multiplateforme | Pris en charge | Pris en charge | Pris en charge | Non prise en charge | Non prise en charge | Non prise en charge | Non prise en charge | Non prise en charge |
| Applications Xbox/HoloLens | Non prise en charge | Non prise en charge | Pris en charge | Pris en charge | Non prise en charge | Non prise en charge | Non prise en charge | Non prise en charge |
| Bac à sable (AppContainer) | Non prise en charge | Non prise en charge | Pris en charge | Pris en charge | Non prise en charge | Non prise en charge | Non prise en charge | Non prise en charge |
| Actuellement pris en charge | Pris en charge | Pris en charge | Pris en charge | Pris en charge | Pris en charge | Pris en charge | Pris en charge | Pris en charge |
| Recevoir des mises à jour | Pris en charge | Pris en charge | Pris en charge | Pris en charge (sécurité et corrections de bugs) | Pris en charge | Pris en charge | Pris en charge | Pris en charge |
| Feuille de route | GitHub | GitHub | GitHub | n/a | n/a | GitHub | GitHub | GitHub |
Apprenez-en davantage sur chacune de ces options :
- FAQ pour les développeurs Windows
- Interface utilisateur de l'application multiplateforme .NET (.NET MAUI)
- ASP.NET Core Blazor Hybride
- React Native pour Desktop
- Plateforme Windows universelle (UWP)
- Recommandations relatives au choix entre ATL et MFC
- Windows Forms
- Windows Presentation Foundation (WPF)
- WinUI dans le SDK d’application Windows (WinUI 3)
Étapes suivantes
-
Utiliser WinUI pour commencer à développer des applications pour Windows
WinUI est la plateforme recommandée pour les applications Windows. Ces étapes vous permettent de commencer rapidement.
-
Configurer votre environnement de développement sur Windows
Windows n’est pas seulement idéal pour le développement d’applications qui s’exécutent sur Windows. Il s’agit également d’un environnement puissant pour le développement d’applications pour n’importe quelle plateforme. En savoir plus sur les outils et options disponibles pour optimiser votre développement.
Windows developer