Dot.Blog

Consulting DotNet C#, XAML, WinUI, WPF, MAUI, IA

WinUI 3.x en 2025 : maturité atteinte ? Cas concrets et limites

Longtemps considéré comme le successeur annoncé de WPF, WinUI 3 a eu un démarrage progressif. En 2025, la version 3.x est désormais stable, soutenue par .NET 9, et constitue une alternative sérieuse pour les applications desktop modernes Windows-first. Cet article fait le point sur la maturité réelle de WinUI 3 en 2025, ses cas d’usage concrets, ses points forts, mais aussi ses limites actuelles.

🧭 Positionnement actuel de WinUI 3.x

WinUI 3 est le framework UI natif Windows basé sur la Windows App SDK. Il permet de créer des applications modernes pour Windows 10 et 11 et plus, avec :

  • Une séparation nette entre UI et logique métier en MVVM.
  • Une compatibilité étroite avec .NET 6/7/8/9.
  • Un support natif du fluent design, du dark mode, des contrôles modernes et du WebView2.

Depuis sa version 1.4 et les évolutions jusqu’à 3.x, WinUI 3 est désormais :

  • Stable en production.
  • Compatible avec Visual Studio 2022+ et .NET 9.
  • Capable de cibler Windows 10 1809+ et Windows 11.

✅ Ce que WinUI 3 sait faire très bien

  1. Créer des interfaces modernes pour Windows 11

Exemple de layout simple en XAML fluide avec zones adaptatives et boutons stylés :

<StackPanel Spacing="12">
    <TextBlock Text="Bienvenue dans l'app" Style="{StaticResource TitleTextBlockStyle}" />
    <Button Content="Démarrer" Click="OnStartClicked" />
</StackPanel>

On est ici en terrain connu... C'est du WPF, du Xamarin.Forms, du MAUI ? Bref, le code XAML de WinUI3 est très proche de ce que vous connaissez déjà si vous avez pratiqué les environnements évoqués.

  1. Support complet de MVVM

Avec CommunityToolkit.MVVM, WinUI 3 est très adapté les architectures modernes. Exemple d’utilisation :

public partial class MainViewModel : ObservableObject
{
    [ObservableProperty]
    private string userName;

    [RelayCommand]
    private void SayHello() => MessageBox.Show($"Bonjour {UserName} !");
}

C'est un code qui, ici encore, ne surprendra pas ceux qui développent en MAUI par exemple puisque le Community Toolkit est déjà supporté depuis longtemps par cet environnement. Là encore, du MVVM moderne utilisant les mêmes librairies de code que celles dont vous avez l'habitude.

  1. Intégration de WebView2 (Chromium natif)

WinUI 3 propose un contrôle WebView2 intégré pour afficher du contenu web moderne dans l’application native. Toujours plus de modernité ne peut nuire, surtout pour la compatibilité avec certaines fonctions.

  1. Possibilité d'intégrer du code Win32 natif (interopérabilité)

WinUI 3 permet de réutiliser du code COM, C++/WinRT, P/Invoke, etc., contrairement à UWP. Et ça il faut le noter. Non pas que j'encourage à mélanger du Win32 aux applications modernes, mais parce que cela signifie que Microsoft a compris que l'enfermement sandboxé totalement verrouillé de UWP ne pouvait pas réussir sur le marché des entreprises qui restent les utilisateurs les plus importants de solutions Micorosoft de ce type. Donner de l'air à WinUI c'est lui ouvrir les portes des solutions d'entreprise, applis LOB ou autres. UWP n'était perçu que comme un gadget ne fonctionnant qu'avec le Store, loin des besoins quotidiens des entreprises.

❌ Ce que WinUI 3 ne gère toujours pas bien (ou pas du tout)

  • Pas de support officiel multiplateforme : WinUI reste strictement Windows. (mais pour le multiplateforme je ne peux que vous conseiller MAUI, mêmes librairies MVVM, XAML semblable et même C# !).
  • Performances UI parfois instables sur des machines modestes (surtout en présence de WebView2).
  • Écosystème plus limité que WPF : peu de librairies tierces, contrôles avancés moins nombreux. Mais cela changera avec le temps, WinUI n'est finalement utilisable en prod que depuis peu et il faut le temps aux développeurs de librairies de venir soutenir ce nouvel arrivant. Sachez que lorsque vous générez du code pour Windows avec MAUI, c'est aujourd'hui du WinUI qui est produit. C'est un moyen de contourner le problème puisque MAUI est très bien doté en librairies tierces.
  • Installations plus complexes pour certaines API Windows modernes (nécessite le Windows App SDK, packaging MSIX, etc.).

🎯 Cas concrets où WinUI 3 est un bon choix

  • Une application interne Windows 11 nécessitant une UI moderne, intégration WebView2, et packaging MSIX.
  • Remplacement progressif d’un outil WinForms ou WPF vieillissant.
  • Application riche avec gestion locale de fichiers, drag & drop, interop COM.

📦 Packaging et déploiement

WinUI 3 fonctionne principalement avec MSIX (installer moderne Windows), mais il est aussi possible depuis .NET 7 de publier une app WinUI 3 en .exe autonome via PublishSingleFile ce qui est un avantage énorme !

dotnet publish -c Release -p:PublishSingleFile=true -r win10-x64

📌 Limites à garder en tête en 2025

Critère

Statut actuel en 2025

Support VS / .NET 9

✅ Complet et stable

Support ARM64

✅ Oui

Blazor Hybrid

❌ Non disponible (réservé à MAUI)

Impression, Drag&Drop

⚠️ Limitée selon les cas

Accessibilité (a11y)

✅ Correct, mais améliorable

Conclusion

En 2025, WinUI 3.x est enfin mûr pour les applications Windows-first modernes. Il ne vise pas à remplacer WPF ou MAUI dans tous les cas, mais constitue un excellent choix pour les applications internes professionnelles sur Windows 10/11.

Certains se demanderont s'il faut choisir WinUI ou MAUI lorsqu'on cible uniquement Windows. La question est légitime. Si l'App doit utiliser des fonctionnalités Windows natives et que cela est essentiel, il est préférable de choisir WinUI. Dans tous les autres cas mieux vaut, au moins pour le moment, préférer MAUI qui, en plus, laisse la possibilité de porter l'App facilement sur Mac ou Android.

Comme toujours le choix revient aux équipes qui auront à se décider et ce en fonction de leurs réels besoins, de la composition et du niveau de chaque membre de l'équipe, du budget, et toutes ces choses qui président au choix d'un environnement de développement adapté à l'App à écrire...

Stay Tuned !

Faites des heureux, PARTAGEZ l'article !