La plateforme .NET reste l’une des plus populaires dans les développements en entreprise notamment côté client. Avec le lancement officiel de la version 5, open source et cross-plateforme, Microsoft avance dans son projet de réunification des plateformes de développement.
Lancée en 2000, la plateforme .NET Framework s’est rapidement imposée en entreprise pour créer les applications métiers sous Windows. Elle n’a cessé ensuite de s’enrichir mais restait très attachée à Windows et ses évolutions.
En 2014, Microsoft entreprend une refonte complète que .NET, dénommée .NET Core, avec la volonté d’en faire, cette fois, un environnement à la fois open source et cross-platform.
Le projet au départ se focalise essentiellement sur les développements côté serveur.
Le lancement officiel de .NET 5, cette semaine, marque une étape cruciale pour l’avenir de la plateforme. Désormais, il n’y a plus d’un côté le « .NET Framework » attaché à Windows et le « .NET Core » en open-source. C’est le début d’une grande unification qui se poursuivra jusqu’en 2022. Mais dès aujourd’hui, il ne demeure plus que « .NET 5 », une version open source complète qui vise aussi bien les développements côté serveur que côté client.
Pour Microsoft, il est désormais l’heure pour les entreprises d’abandonner définitivement « .NET Framework » et de convertir leurs applications métiers en « .NET 5 ».
Et les avantages sont nombreux. D’abord, .NET 5 permet de profiter des évolutions des langages C# (9.0) et F# (5.0). Ensuite, .NET 5 produit des images containers bien plus compactes ainsi que des fichiers applications « EXE » uniques (les applications .NET 5 peuvent être distribuées et publiées sous forme d’un unique fichier exécutable). En outre, .NET 5 offre des gains de performance significatifs. Enfin, et peut-être surtout, « .NET 5 » permet aux entreprises de produire des applications Windows supportant les processeurs ARM en 64 bits (support d’ARM64). Un bémol toutefois, puisque pour l’instant seules les applications « console » et « asp.net » en ARM64 sont supportées avec cette première release officielle. Le SDK n’intègre pas encore le « Windows Desktop Pack » pour ARM64 (afin de supporter les applications Windows Forms et WPF) qui devrait arriver dans quelques semaines par le biais d’une mise à jour. Pour les entreprises, ce bémol est de taille et va retarder leur adoption de « .NET 5 ».
Ceci dit, « .NET » n’a jamais été aussi universel. Il est disponible sous Windows, sous macOS et sous Linux pour x86, x64, ARM32 et ARM64. Et il est bien évidemment supporté par Visual Studio 19 sur Windows et sur macOS. Il est également bien intégré à Visual Studio Code, la très populaire version allégée, open-source et cross-plateforme de l’IDE.
Reste que « .NET 5.0 » n’est qu’une étape vers la grande réunification attendue avec « .NET 6.0 » en 2022. Cette grande réunification vise d’une part à unifier sous Windows les développements UWP et .NET et d’autre part à unifier les développements mobiles (portés par Xamarin) et les développements Desktop. Un projet ambitieux mais essentiel au monde Windows et au développement en entreprise.
En effet, le développement sous Windows a beaucoup souffert de la dichotomie entre les applications Win32 classiques et les applications « universelles » UWP (fonctionnant sous Windows 10 mais aussi Xbox, Hololens, IoT, Surface Hub). Rares sont les développeurs Win32 qui se sont convertis à UWP. « .NET 6.0 » veut unifier ces deux univers au travers du projet « Project Reunion » basé sur WinUI 3. D’autre part, de plus en plus d’entreprises cherchent à unifier leurs développements « mobiles » et ‘desktop » de sorte à n’investir que dans un seul code source. Aujourd’hui, elles disposent d’une solution intermédiaire formée par Xamarin qui permet de développer en .NET sous iOS et Android. Demain, un seul outil et un seul framework servira les univers Desktop et mobiles.
En attendant, le mot d’ordre pour les entreprises est de commencer à basculer tous leurs développements « .NET Framework » et « .NET Core 3.0 » sous « .NET 5.0 » et de petit à petit adopter la bibliothèque d’interface utilisateur en open source WinUI afin d’aligner leurs développements sur les perspectives d’unification annoncées pour « .NET 6.0 ».