Au début de ce mois, Microsoft a annoncé la sortie de la première préversion publique de .NET Core 3. Toutefois, l’éditeur n’a pas précisé quelles nouveautés sont incorporées dans cette release, à part le fait que des Frameworks Windows Desktop sont passés en open source, mais ça, on le savait déjà.
Dans un billet de blog, Scott Hunter, directeur de Program Management pour .NET, est revenu sur l’évolution de .NET Core depuis sa première mouture, avec un focus sur les technologies présentes sur la troisième itération majeure de la plateforme .NET Core. Pour rappel, s’agissant d’une préversion, les informations citées ici pourraient changer par la suite.
.NET Core 1
.NET Core a été développé avec pour objectif principal l’ouverture à d’autres plateformes dont Linux et OS X. Il comprend 2 parties complémentaires : CoreCLR, une implémentation d'exécution complète de CLR, la machine virtuelle qui gère l'exécution des programmes .NET et CoreFx, l’implémentation concrète de .Net Core sous la forme de plusieurs assemblies (DLL).
En 2016, la première version de .NET Core a vu le jour, le but étant de créer une première version de .NET qui soit à la fois open source et multiplateforme (Windows, macOS et Linux). Si Microsoft a fait ce choix, c’est pour cibler les utilisateurs qui n’utilisent que l’open source et les clients qui ont eu besoin d’exécuter leurs applications .NET sur des serveurs Linux. .NET Core est disponible sur GitHUb, et quiconque peut télécharger les sources, compiler le Framework ou encore contribuer. Outre ce détail, .NET Core a été conçu pour qu’il soit possible de tout passer par la ligne de commande, sans avoir besoin d’utiliser un EDI.
Prenant en compte les problèmes de compatibilité d’une installation globale de .NET Framework, .NET Core apporte le support de versions côte à côte, et la livraison d’un Framework faisant partie de l’application. Comme expliqué auparavant, 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 qu’elles soient testées et prêtes.
.NET Core 2
La version 1 de .NET a ciblé en premier lieu les applications web et a supporté un nombre limité d’API .NET. Pour régler ce problème, Scott Hunter explique que le .NET Standard a été créé, ayant pour but de spécifier les API que tout environnement d’exécution doit implémenter pour que le code et les fichiers binaires puissent être partagés sur les plateformes et versions de .NET.
.NET Core 2 a été publié en juin 2017 avec le support de .NET Standard 2.0, ajoutant plus de 20 000 API au .NET Standard. Microsoft a introduit aussi le Windows Compatibility Pack, qui est un paquet NuGet qui inclut plusieurs API réservées à Windows comme : System.Drawing, System.DirectoryServices et d’autres. ASP.NET Core 2.0 a apporté Razor Pages et SignalR, deux frameworks qui manquaient dans .NET Core 1.0. L’Entity Framework a ajouté le support du lazy loading, une fonctionnalité populaire de Entity Framework.
Avec .NET Core 2, la performance de .NET a été considérablement améliorée, lui conférant une bonne place dans le classement des frameworks full-stack du marché.
.NET Core 3.0
.NET Core 3.0 est la prochaine version majeure de la plateforme .NET Core. Pour répondre à un desideratum formulé par les développeurs, Microsoft a introduit la possibilité de faire usage du framework pour développer des applications de bureau. Désormais, Windows Presentation Foundation (WPF), Windows Forms et Entity Framework 6 (EF6) sont pris en charge pour permettre le développement de telles applications sur Windows. À noter que Microsoft a choisi l’approche brique séparée (Desktop packs) pour associer ces composants spécifiques à Windows au framework .Net Core 3. Pour le développement web, il est désormais possible de créer des applications web clientes avec C# en utilisant Razor Components (Blazor auparavant). Et il inclut le support de C# 8.0 et .NET Standard 2.1. .NET Core 3.0 apporte aussi le support de scénarios impliquant l’Internet des objets et l’ARM64 qui vient compléter ARM32 déjà en place. En plus, il supporte de façon complète ML.NET, un framework d’apprentissage machine conçu pour les développeurs .NET.
ASP.NET Core 3
.NET Core 3.0 ne concerne pas seulement le desktop. Plusieurs nouveautés devront faire leur apparition pour le développement web. Blazor est le fruit d’une expérimentation qui a commencé cette année, il permet d’écrire des composantes d’UI web qui s’exécutent directement dans le navigateur sur un environnement .NET basé sur WebAssembly sans avoir à écrire une seule ligne de JavaScript, explique Scott Hunter. Pour .NET Core 3.0, Microsoft va intégrer le modèle de composant de Blazor dans ASP.NET Core. La firme appelle cette intégration Razor Components. Au début pour .NET Core 3.0, Razor Components va s’exécuter sur le serveur, soit en tant que composants routables ou bien utilisés à partir de Razor Pages et Views. Toutefois, les mêmes composants peuvent s’exécuter du côté client sur WebAssembly. Plus tard, Microsoft entend apporter des améliorations à la performance de l’environnement d’exécution avec le support de la compilation anticipée de code .NET à WebAssembly.
La feuille de route de .NET Framework et .NET Core
« .NET Framework est l’implémentation de .NET installée par plus d’un milliard de machines, et de ce fait doit garder la meilleure compatibilité possible » a écrit Hunter. « Pour cette raison, il avance à une cadence moindre comparé à .NET Core. Même les correctifs de sécurité et de bogues peuvent causer des dysfonctionnements dans les applications, car elles dépendent de caractéristiques antérieures.”
.NET Core est open source, multiplateforme, et évolue rapidement. À cause de sa nature côte à côte, il peut introduire des changements que Microsoft ne peut pas risquer d’appliquer dans .NET Framework. Ce qui veut dire que .NET Core va recevoir au fil du temps de nouvelles API et fonctionnalités de langages que .NET ne peut pas recevoir. Si vous avez des applications .NET Framework, Microsoft préconise qu’il n’est pas nécessaire de passer .NET Core si vous n’avez pas l’attention de profiter de ses fonctionnalités. La firme de Redmond assure que .net Framework fera toujours partie de Windows, mais dans le futur, .NET Core et .NET Framework vont incorporer de différentes fonctionnalités.
Source : msdn
Et vous ?
Qu’en pensez-vous ?
Comptez-vous porter des applications existantes vers .NET Core ?
Voir aussi
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
.NET Core 3.0 offrira un support du développement d'applications de bureau, mais sur Windows uniquement
.NET Framework 4.7.2 est disponible, avec le support de l'injection de dépendance dans les Web Forms et la sécurisation de cookies avec SameSite
De .NET Core 1 à .NET Core 3.0, retour sur l'évolution du Framework open source et multiplateforme
De Microsoft
De .NET Core 1 à .NET Core 3.0, retour sur l'évolution du Framework open source et multiplateforme
De Microsoft
Le , par Coriolan
Une erreur dans cette actualité ? Signalez-nous-la !