.NET 5: ce que signifie la fusion de .NET Framework et .NET Core

La stratégie .NET de Microsoft a peut-être été un peu floue récemment, avec deux volets distincts de développement dans le .NET Framework familier et le nouveau .NET Core open source. Un ensemble commun de bibliothèques .NET Standard visait à rassembler les deux, offrant aux développeurs un moyen unique de travailler avec l'une des différentes versions .NET sur toutes leurs plates-formes cibles, de Windows au mobile en passant par le Web. Mais cela signifiait quand même devoir réfléchir au runtime .NET à utiliser: Core, Xamarin, Mono ou Framework?

Présentation de .NET 5, l'avenir de .NET

Lors de Build 2019, Microsoft a dévoilé ses plans pour l'avenir de .NET, annonçant que la prochaine version majeure après .NET Core 3 serait une version unique de .NET appelée .NET 5. S'appuyant sur la croissance rapide du .NET refactorisé et revigoré. Core, Microsoft vise à faire fonctionner de nombreuses API et fonctionnalités .NET Framework 4.8 existantes sur .NET 5, ainsi que de nouvelles API et services. Ce ne sont pas seulement les bibliothèques de classes de base qui convergent; Microsoft profite de l'occasion pour rassembler ses différents compilateurs .NET, en faisant évoluer les modèles de compilation JIT (juste à temps) de .NET Core et Mono.

Ce n'est pas une décision surprenante. Le .NET Framework n'évoluait pas aussi rapidement que .NET Core, alourdi par le code hérité. Cela, combiné à l'attention croissante de Microsoft sur le développement multiplateforme, garantissait qu'un passage décisif du Framework vieux de près de vingt ans au nouveau Core était inévitable. Supprimer Core du nom est également logique. Avec les API ajoutées depuis le lancement et la prise en charge des bibliothèques .NET Standard, .NET Core n'est plus vraiment un refactoring de noyau réduit. Avec .NET 5 marquant la fin du développement du .NET Framework, il est clairement temps de changer de nom.

Même ainsi, ce ne sera pas un changement du jour au lendemain. .NET Core 3 est toujours à livrer, et nous ne verrons pas .NET 5 avant l'automne 2020. Une date d'expédition prévue en novembre 2020 nous donne près de 18 mois pour préparer notre code, avec des versions d'aperçu disponibles quelque temps dans le premier semestre 2020.

Qu'arrive-t-il au .NET Framework?

Une chose que Microsoft précise clairement: .NET Core 3 sera la dernière version à porter les API .NET Framework. Il n'y aura donc pas d'API Framework supplémentaires dans .NET 5, et certaines technologies plus anciennes telles que Web Forms et Windows Communication Foundation ne feront pas partie de la nouvelle plate-forme. Si vous souhaitez passer de .NET Framework 4.8, vous devrez trouver des technologies alternatives prises en charge. Actuellement, Microsoft recommande à Blazor de remplacer Web Forms et gRPC pour remplacer WCF. Ce sont des alternatives judicieuses, vous offrant une prise en charge multiplateforme qui ne serait pas disponible avec les anciennes technologies, et avec Blazor utilisant Web Assembly ou offrant des contrôles côté serveur dans ASP.NET, ils prennent désormais en charge des performances bien plus récentes et plus élevées. les technologies.

Le conseil de Microsoft aux développeurs est de commencer à utiliser .NET Core 3 pour toutes les nouvelles applications, mais il est important de noter que ce n'est pas la fin de vos applications .NET Framework. Microsoft s'engage à prendre en charge à long terme le .NET Framework, donc si vous avez du code en cours d'exécution sur .NET Framework 4.8, il n'aura pas besoin d'être mis à jour tant que vous n'êtes pas prêt à effectuer le changement. Après tout, il propose actuellement des outils de développement de base, notamment Visual Studio, créés à l'aide du .NET Framework. Même dans ce cas, avec la compatibilité des classes de base entre une grande partie du nouveau .NET et de l'ancien grâce à .NET Standard, la migration ne devrait pas être pénible et vous donnera l'opportunité d'exécuter ce code dans de nombreux autres endroits.

Cependant, la simple migration du code manquera l'opportunité de refactoriser et de repenser les applications pour le cloud et les microservices. .NET 5 est en cours de développement pour le monde informatique d'aujourd'hui, avec le cloud hybride et les systèmes distribués conteneurisés en tête de ses priorités, plutôt que le monde client-serveur qui a donné naissance au .NET original à la fin des années 1990.

Un runtime multiplateforme pour un monde multiplateforme

En unifiant .NET Core, .NET Standard et Xamarin dans une seule plateforme, Microsoft vise à saisir le terrain élevé multiplateforme. Votre code (avec certains travaux d'interface utilisateur) pourra s'exécuter sur Windows, Linux, iOS, Android, etc., avec la prise en charge de nombreuses classes d'appareils différentes. En ajoutant la prise en charge de .NET Core 3 pour le bureau Windows, il existe un large éventail d'applications qui peuvent être intégrées à .NET 5, en particulier si vous tirez parti des contrôles UWP exécutables n'importe où grâce à la prise en charge des outils .NET tiers d'Uno et autres.

Comme les implémentations .NET vont au-delà de .NET Core, il y aura toujours une place pour les bibliothèques .NET Standard. Les bibliothèques communes facilitent le ciblage de plusieurs versions de .NET à partir du même code source, et tout votre code .NET 5 utilisera .NET Standard, ce qui simplifie la mise en avant du code à partir d'anciennes versions de .NET Core et d'autres implémentations .NET telles que Mono ou Xamarin.

Réussir les bases de l'entreprise .NET

Un aspect de l'annonce de .NET 5 est un calendrier de publication régulier pour .NET. Mettre .NET sur une cadence annuelle, avec une version biannuelle de support à long terme, devrait soulager la pression supplémentaire sur les développeurs, ajoutant un niveau de prévisibilité qui manquait. Sachant que .NET 6 arrivera en 2021, suivi de .NET 7 un an plus tard, et avec quatre ans de support pour les versions de support à long terme, il sera plus facile de planifier les nouvelles fonctionnalités et les cycles de vie des applications. Cela permettra à Microsoft et au reste de la Fondation .NET de publier des feuilles de route claires indiquant à quoi s'attendre et quand s'y attendre.

En dehors de l'écosystème .NET, il existe une autre opportunité ici pour Microsoft et sa concentration sur les abonnements aux outils de développement. Avec les conditions de licence modifiées d'Oracle pour Java, un environnement d'exécution d'entreprise open source libre de droits va être attrayant pour de nombreuses équipes de développement Java existantes. Cette période de 18 mois avant le lancement de .NET 5 pourrait être considérée comme le moment de former vos développeurs à de nouveaux langages et outils et de planifier la réimplémentation d'applications dans les microservices.

En mettant tout cela ensemble, le résultat est une feuille de route .NET adaptée aux développeurs d'entreprise. Microsoft et la Fondation .NET s'engagent à effectuer des mises à jour régulières et un seul runtime multiplateforme, tout en veillant à ce que les anciennes applications .NET Framework ne soient pas abandonnées. Un support à long terme devrait aider les équipes de développement à planifier les cycles de vie des applications, à choisir ce qu'il faut mettre à niveau et quand. Vous pouvez commencer avec les aperçus actuels de .NET Core 3, prêts pour les versions 2020.