Vue d’ensemble des options d’infrastructure

Cet article contient les informations dont vous avez besoin pour commencer à générer des applications pour Windows.

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

.

Nous vous recommandons WinUI et le SDK d’application Windows pour créer des applications qui ont une belle apparence et qui 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 kit SDK d’application Windows fournit un ensemble unifié d’API et d’outils qui peuvent être utilisés de manière cohérente par des applications de bureau sur Windows 11 ainsi que sur les versions antérieures allant jusqu’à Windows 10, version 1809.

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éjà développé des applications pour Windows, mais que vous souhaitez bien démarrer avec le SDK d’application Windows dans une application existante, consultez les Guides spécifiques à l’infrastructure.

React Native pour Desktop

React Native est une plateforme de développement qui permet de créer des applications multiplateformes. React Native pour Desktop englobe React Native pour Windows et macOS, ce qui apporte 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. Cela inclut les PC, les tablettes, les appareils 2-en-1, la Xbox, les appareils de réalité mixte, etc.

Avec React Native for Desktop, vous écrivez la plupart ou l’ensemble de votre code d’application en JavaScript ou TypeScript, et l’infrastructure produit une application XAML UWP native. Si votre application doit appeler une API de plateforme, vous pouvez généralement le faire par le biais de l’un des nombreux modules de la communauté, ou 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 tirer parti des bibliothèques JavaScript seul sur npmjs.com et de nombreuses bibliothèques natives également.
  • Votre application utilisera les contrôles natifs, l’apparence visuelle, les animations et les couleurs, et par conséquent apparaîtra intégrée au langage de conception utilisé dans Windows. En outre, les applications React Native for Desktop n’ont pas à compromettre l’ensemble des API qu’elles peuvent appeler, car 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 :

WPF

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 packagées, ce qui constitue un niveau 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 le FORUM aux questions sur le framework de développement d’applications clientes.

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. Chacune de ces infrastructures est prise en charge et continuera de recevoir des correctifs de bogues, de fiabilité et de sécurité, mais différents niveaux d’investissement 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. Cela fait de Win32 le type d’application de choix pour les applications qui ont besoin du plus haut niveau de performances et d’un accès direct au matériel système.

L’utilisation de l’API Win32 avec C++ permet d’atteindre les plus hauts niveaux de performance et d’efficacité, ce qui s’explique par le fait que vous pouvez davantage contrôler la plateforme cible avec du code non managé que dans un environnement de runtime 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-unes des principales fonctionnalités que vous offrent l’API Win32 et C++ pour 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 constitue un niveau 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, vous devez envisager .NET MAUI ou une application web progressive (PWA). Il existe de nombreux autres solutions disponibles (voici une liste de solutions populaires), mais celles-ci constituent un bon point 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. 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.

.NET MAUI (Multi-platform App UI) est un framework multiplateforme et open source permettant de générer des applications Android, iOS, macOS et Windows qui tirent 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. Cela donne à vos applications la possibilité d’accéder à tout ce que vous obtenez avec WinUI, ainsi que d’atteindre d’autres plateformes.

.NET MAUI pour Windows est un excellent choix si :

  • Vous voulez partager le plus de code .NET possible dans les applications mobiles et de bureau.
  • Vous voulez livrer votre application à d’autres cibles mobiles et de bureau en plus de Windows avec des expériences de plateforme natives.
  • Vous voulez utiliser C# et/ou XAML pour générer des applications multiplateformes.
  • Vous utilisez Blazor pour le développement web et vous souhaitez inclure tout ou partie de celle-ci dans une application mobile ou de bureau.

Pour plus d’informations sur .NET MAUI, consultez les liens suivants :

Comparaison des fonctionnalités des infrastructures de développement d’applications

Il existe un large éventail d'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 Hybrid React Native pour Desktop UWP XAML (Windows.UI.Xaml) Win32 (MFC ou ATL) Windows Forms WinUI 3 WPF
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 Razor JSX XAML Code Code XAML XAML
Concepteur d'interface utilisateur
(glisser & déposer)
débogage de l'interface utilisateur Rechargement à chaud Rechargement à chaud Actualisation rapide Rechargement à chaud - Rechargement à chaud Rechargement à chaud Rechargement à chaud
Conception fluide ✅ (avec WinUI 2)
.NET .NET .NET S/O .NET Core & .NET Native S/O .NET & .NET Framework .NET .NET & .NET Framework
Kit de développement logiciel (SDK) pour application Windows ✅ (Plus d'informations) via MAUI ✅ (Plus d'informations) ✅ (Plus d'informations) ✅ (Plus d'informations)
Idéal pour le toucher
Multiplateforme
Applications Xbox/HoloLens
Sandboxing (AppContainer)
Actuellement pris en charge
Recevoir des mises à jour ✅ (sécurité & bugfix)
Feuille de route GitHub GitHub GitHub n/a n/a GitHub GitHub GitHub

Apprenez-en davantage sur chacune de ces options :

Étapes suivantes