Dans un billet de blog paru il y a peu, la firme livre des raisons additionnelles de son ouverture aux requêtes des développeurs. En sus, elle se penche sur les avantages de s’appuyer sur .NET Core 3.0 pour développer des applications de bureau Windows.
À mi-parcours du mois précédent, l’équipe .NET Core 3.0 de Microsoft a annoncé qu'elle a terminé avec le projet de portage de l'API .NET Framework sur la plateforme open source.
« À partir de maintenant, nous ne prévoyons plus de porter les API .NET Framework vers .NET Core. .NET Core 3.0 met un terme au projet de portage de l’API .Net Framework. Nous avons commencé dans .NET Core 1.0 avec un jeu d'API très minimal qui n'incluait que près de 18 000 des API de .NET Framework. Avec .NET Standard 2.0, nous avons essayé de rendre beaucoup plus viable le partage de code entre .NET Framework, .NET Core 3.0 et Xamarin, ce qui a permis d'étendre à environ 38 000 le jeu d'API .NET Framework disponibles dans .NET Core 2.0. Nous avons également mis en place le pack de compatibilité Windows, ce qui a augmenté les API .NET Core avec 21 000 unités ; résultat : près de 60 000 API supplémentaires. Dans .NET Core 3.0, nous avons ajouté WPF et WinForms, ce qui a augmenté le nombre d'API .NET Framework portées à .NET Core à plus de 120 000, ce qui représente plus de la moitié des API Framework. Il est également utile de souligner que nous avons ajouté environ 62 000 API à .NET Core qui n'existent pas dans .NET Framework. Si nous comparons les nombres totaux d'API, .NET Core possède environ 80 % des API de .NET Framework. », écrivait un responsable de la firme de Redmond.
La firme de Redmond va vers un futur centré sur .NET Core 3. En fait, les développements en cours marquent l’arrêt de l’évolution du .Net Framework rendu à la version 4.8. Ce dernier continuera néanmoins de bénéficier de prise en charge, mais la firme de Redmond se veut claire : elle axe ses travaux sur l’intégration de nouvelles technologies au sein du .NET Core.
Sur les bases posées avec .NET Core 3, Microsoft entend produire un environnement d’exécution .Net unique et une infrastructure partout. En d’autres termes, Microsoft va vers un seul .NET à l’avenir. Ce dernier pourra être utilisé pour cibler plusieurs (sinon toutes) plateformes : Windows, Linux, MacOS, iOS, Android, tvOS, watchOS et WebAssembly, etc. Ce futur se nomme .NET 5 – la prochaine version de .NET Core 3. La première préversion de .NET 5 sera disponible dans la première moitié de l’année à venir. La version finale est attendue en novembre 2020. Microsoft prévoit ensuite de publier une version majeure de .NET une fois par an, ce, tous les mois de novembre.
C’est donc en quelque sorte pour apporter des améliorations à Windows Forms et Windows Presentation Foundation (WPF) que Microsoft a effectué leurs portages respectifs vers .NET Core.
« Lors du développement d'applications de bureau, vous ne remarquerez pas beaucoup de différence entre les versions .NET Framework et .NET Core de WPF et Windows Forms. Une partie de notre effort consistait à fournir une parité fonctionnelle entre ces plateformes dans le domaine des applications de bureau et à améliorer l'expérience .NET Core à l'avenir », écrit Microsoft.
C’est aussi pour permettre aux développeurs d’applications de bureau Windows de profiter des fonctionnalités de .Net Core susceptibles d’améliorer leurs applications que la firme s’est lancée dans cette voie.
« Pour améliorer les piles de développement d'applications de bureau Windows et permettre aux développeurs .Net de bénéficier de toutes les mises à jour de l'avenir, nous avons apporté Windows Forms et WPF à .NET Core. Ils resteront toujours des technologies Windows uniquement parce qu'il y a des dépendances étroitement liées aux API Windows. Mais .NET Core, en plus d'être multiplateforme, possède de nombreuses autres fonctionnalités qui peuvent améliorer les applications de bureau », ajoute l’entreprise.
Retour sur les avantages de l’approche
En présentant .NET Core il y a un an, l’éditeur a listé un certain nombre d’avantages à s’appuyer sur la version 3 pour le développement d’applications de bureau :
- versions côte à côte de .NET Core qui supportent Winforms et WPF : Avant le lancement de cette version, il ne pouvait y avoir qu’une seule version de .NET Framework sur une machine. Ce qui veut dire qu’avec l’installation d’une mise à jour de .NET Framework via Patch Tuesday ou par des mises à jour de Windows, il y a un risque qu’un correctif de sécurité, un correctif de bogue ou une nouvelle API casse le fonctionnement d’applications sur la machine. Avec .NET Core, Microsoft entend résoudre ce problème en permettant la coexistence de multiples versions de .NET Core sur la même machine. Les applications peuvent dès lors être verrouillées à une version spécifique et passées à une autre version après avoir été testées ;
- intégration de .NET Core directement dans une application : Puisqu’une seule version de .NET Framework pouvait être installée sur une machine, il était impératif d’installer la dernière version pour tirer avantage d’une nouvelle fonctionnalité du framework ou du langage. Avec .NET Core, il est possible d’intégrer le framework à une application. Cela permet de tirer parti de la dernière version, fonctionnalités et API sans avoir à attendre l’installation du framework ;
- bénéfice des fonctionnalités de .NET Core : .NET Core constitue une version évolutive et open source de .NET. Désormais les applications WinForms et WPF sur Windows peuvent tirer profit des dernières fonctionnalités de .NET Core, qui incluent aussi plus de correctifs essentiels pour un support meilleur d’écrans à haute résolution.
Dans sa dernière note d’information, la firme étend la liste :
- Tailles d’exécutables plus petites : Cette possibilité offerte par .NET Core 3 s’appuie sur une fonctionnalité d’analyse de code dénommé Linker. Elle inclut à une application .NET autonome uniquement les portions de .NET Core qui lui sont nécessaires ;
- amélioration des performances du runtime : NET Core offre de nombreuses optimisations de performance par rapport à .NET Framework. De façon plus précise, les applications de bureau qui dépendent de façon importante des E/S de fichiers, du réseau et de l'exploitation des bases de données verront probablement leur performance s'améliorer pour ces scénarios. Certains domaines dans lesquels vous ne remarquerez peut-être pas beaucoup de changements sont les performances de rendu de l'interface utilisateur ou les performances de démarrage de l'application.
Dernier état des lieux
Certes, .NET Core 3 ouvre la voie au développement d’applications de bureau, mais il y a des détails à prendre en compte avant d’en faire usage. Seules les applications WPF bénéficient d’une prise en charge totale. Visual Studio 2019 16.3 prend en charge la création d'applications WPF qui ciblent .NET Core. Cela inclut de nouveaux templates, un concepteur XAML (similaire au concepteur XAML existant qui cible .NET Framework) et XAML Hot Reload. Le portage du runtime Windows Forms pour sa part est effectué dans son entièreté. Ce sont les travaux de mise sur pied du concepteur Windows Forms qui se poursuivent. « Il devrait être prêt d’ici le quatrième trimestre de l’année à venir », écrit Microsoft. Toutefois, il est en préversion et disponible en téléchargement séparé en tant qu’extension Visual Studio.
En plus de Windows Forms et WPF, le package System.Windows.Forms.DataVisualization (qui inclut le contrôle permettant de générer des graphiques) est disponible pour .NET Core. Il est donc maintenant possible d’inclure ce contrôle dans des applications .NET Core WinForms.
Et vous ?
Que pensez-vous de .Net Core 3 ? Qu'en attendez-vous ?
En quoi est-il une bonne (ou une mauvaise) alternative à .NET Framework ?
Voir aussi :
.NET Core 3.0 offrira un support du développement d'applications de bureau, mais sur Windows uniquement
Vos applications Windows Forms et WPF sont-elles prêtes pour .NET Core 3.0 ? Microsoft veut s'en assurer et sollicite les développeurs
Microsoft revient avec plus de détails sur .NET Core 3.0 et .NET Framework 4.8 : bientôt une dissemblance entre le Framework .NET et .NET Core
De .NET Core 1 à .NET Core 3.0, retour sur l'évolution du Framework open source et multiplateforme de Microsoft
.NET Core 3.0 Preview 4 est disponible et s'accompagne d'une MàJ de la compilation hiérarchisée ainsi que du contrôle WinForms Chart
Avec .NET 5, Microsoft voudrait produire un environnement d'exécution .NET unique et une infrastructure utilisable partout
Microsoft confirme que la version générale de .NET Core 3.0 sera disponible durant la .NET Conf 2019 et en profite pour publier .NET Core 3.0 RC1