Partager via


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 créer des applications, notamment WinUI, WPF, C++, C#, .NET et de nombreuses 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.

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.

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.

Options pour le multiplateforme

Si vous avez besoin que votre application soit multiplateforme, envisagez .NET MAUI, une application web progressive (PWA) ou React Native for Desktop. 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. React Native for Desktop vous permet d’écrire des applications qui s’exécutent sur tous les appareils pris en charge par Windows 10 et Windows 11 (pas seulement les PC). 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 (RNW) 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