Devons-nous vraiment migrer vers .NET 5 et pourquoi ?

Devons-nous vraiment migrer vers .NET 5 et pourquoi ?

24 Décembre 2020

Microsoft .NET 5 est publié il y a quelques semaines et comporte des changements majeurs qui peuvent avoir un impact significatif sur vos organisations. C’est l'une des évolutions les plus grandes de l'histoire du Framework et qui confirme la stratégie de Microsoft en termes de développement open-source et multiplateforme.

La majorité des fonctionnalités de ce nouveau Framework ont été développées, améliorées ou suggérées par la communauté passionnée de .NET. Cela pousse Microsoft à créer de meilleurs produits, répondant directement aux besoins de ses utilisateurs.

Avec .NET 5, Microsoft a unifié .NET 4.6 et .NET Core en une seule vision pour .NET. Son objectif est d'utiliser la même plateforme afin de créer tout type d'applications dynamiques.

.NET 5 c’est quoi ?

.NET 5 est l'avenir de .NET Core et est presque une réinvention complète de l'ancien .NET Framework. En fait, .NET 5 est la première mise à jour majeure depuis la version 2016 de .NET Core. Les deux .NET Core et Framework ont été maintenus en parallèle, vous permettant de choisir entre l'un ou l'autre, en tirant parti de .NET Standard pour créer des bibliothèques partagées entre les deux. Cependant, une fois que .NET 5 est publié, .NET Framework sera obsolète. Cela signifie que vous ne pouvez utiliser .NET Framework que tant que vos systèmes d'exploitation (par exemple Windows Server 2019) le prennent toujours en charge. Et avec Microsoft raccourcissant ses cycles de vie de support, la fin de vie de votre système d'exploitation arrivera plus tôt que vous ne le pensez.

Bien que la transition de .NET Core vers .NET 5 soit moins complexe que la migration de .NET Framework, certaines préoccupations doivent être prises en compte, ainsi que quelques nouvelles fonctionnalités intéressantes de .NET 5.

Le projet vise à améliorer .NET de plusieurs manières clés, avec .NET 5 vous pouvez :

  • Produire un environnement d'exécution et une infrastructure .NET uniques qui peuvent être utilisés partout et qui ont des comportements d'exécution et des expériences de développeur uniformes.
  • Développer les capacités de .NET en tirant le meilleur parti de .NET Core, .NET Framework, Xamarin et Mono.
  • Construire vos produits à partir d'une seule base de code sur laquelle les développeurs (Microsoft et la communauté) peuvent travailler et développer ensemble.

Plateforme unifiée .NET 5

Pourquoi .NET 5.0 et pas .NET Core 4.0 ?

Microsoft a nommé cette nouvelle version .NET 5.0 au lieu de .NET Core 4.0 pour deux raisons :

  • Ignorer les numéros de version 4.x pour éviter toute confusion avec .NET Framework 4.x.
  • Supprimer « Core » du nom pour souligner qu'il s'agit de la principale implémentation de .NET à l'avenir. .NET 5.0 prend en charge plus de types d'applications et plus de plates-formes que .NET Core ou .NET Framework.

ASP.NET Core 5.0 est basé sur .NET 5.0 mais conserve le nom « Core » pour éviter de le confondre avec ASP.NET MVC 5. De même, Entity Framework Core 5.0 conserve le nom « Core » pour éviter de le confondre avec Entity Framework 5 et 6.

Les nouveautés de .NET 5

Les mises à jour C#

Les développeurs qui écrivent des applications .NET 5 auront accès à la version et aux fonctionnalités C# les plus récentes. .NET 5 est associé à C# 9, qui offre de nombreuses nouvelles fonctionnalités au langage.

Ci-dessous quelques points importants :

  • Enregistrements :types référence avec une sémantique d’égalité basée sur des valeurs et une mutation non destructrice prise en charge par une nouvelle « with » expression.
  • Critères spéciaux relationnels : étend les fonctionnalités de critères spéciaux aux opérateurs relationnels pour les évaluations comparatives et les expressions, y compris les modèles logiques, les nouveaux mots clés and, or et not.
  • Instructions de niveau supérieur : comme un moyen d’accélérer l’adoption et l’apprentissage de C#, la Main méthode peut être omise et l’application est aussi simple : System.Console.Write("Hello world!");
  • Pointeurs fonction : constructions de langage qui exposent les OpCodes de langage intermédiaire suivants : ldftn et calli.

Générateurs de sources

En plus de certaines nouvelles fonctionnalités en C#, les générateurs de code source s’intègrent dans des projets de développement. Les générateurs de source autorisent le code qui s’exécute pendant la compilation à inspecter votre programme et à produire des fichiers supplémentaires qui sont compilés avec le reste de votre code.

Comment .NET 5 affectera-t-il mon organisation ?

Nous avons rassemblé quelques-unes des questions courantes .NET 5 et leurs réponses pour vous aider à planifier votre migration.

Devons-nous vraiment migrer vers .NET 5 ?

Oui, car Microsoft abandonne le Framework à partir de novembre 2020. Le Framework continuera à fonctionner tant que le système d'exploitation sur lequel il est installé sera pris en charge. (Par exemple, si vous avez un système d'exploitation serveur 2019 qui prend en charge Framework, Framework continuera de fonctionner jusqu'à ce que Microsoft arrête de prendre en charge votre serveur 2019.) Vous ne pouvez pas compter sur cette prochaine version de votre système d'exploitation qui vous permettra d'installer Framework (ou toute autre version plus ancienne de .NET que vous souhaitez installer). Ou si vous pouvez le faire, cela peut nécessiter de sérieuses manipulations pour que cela fonctionne.

Cependant, la migration de .NET Core vers .NET 5 posera probablement moins de problèmes, car .NET 5 est une continuation de .NET Core (le « .NET Core v.Next », comme Microsoft le décrit). Cela dit, Microsoft mettra fin à la prise en charge à long terme de la dernière version de Core (3.1.7) vers décembre 2022, vous devriez donc commencer au moins à planifier votre migration.

En bref, la transition est inévitable, mais elle ne doit pas nécessairement se produire avant .NET 6 ou une version ultérieure.

Combien nous coûtera la migration vers .NET 5?

Cela vous coûtera du temps et des efforts, mais pas d’argent, Microsoft ne vous facturera pas la mise à niveau, mais vous y consacrerez certainement du temps et des heures de travail. La quantité d'effort dépendra entièrement des différentes versions de .NET utilisées par vos applications.

Pour le moment, il n'y a pas de services de conseil formels disponibles pour l'aide à la migration .NET 5, mais ceux-ci peuvent devenir disponibles lorsque la majorité des entreprises entament la transition.

Comment les applications .NET 5 sont-elles déployées (par rapport à .NET Framework)?

Elles sont pratiquement les mêmes, sauf pour les applications Web. L'implémentation actuelle de .NET 5 nécessite qu'un module soit installé dans IIS (si vous utilisez IIS), mais à l'avenir, il est prévu que Microsoft modifie cette dépendance. Cependant, Microsoft n'a fait aucune annonce ou déclaration concernant IIS pour le moment.

Le quotidien de vos pipelines changera très peu, mais votre build (intégration continue) devra changer. La plupart du code .NET Framework est également compilé à l'aide d'une ligne de commande (CLI) appelée MSBuild. Avec .NET 5, vous utiliserez .NET CLI au lieu de MSBuild. Celles-ci sont différentes en termes de fonctionnalités, car toutes les fonctionnalités et fonctions de MSBuild peuvent ne pas être transférées dans la CLI .NET. La fonctionnalité de base doit être la même, mais vous pouvez remarquer des problèmes si vous utilisez de nombreuses personnalisations avancées de MSBuild.

De combien de recyclage mon personnel aura-t-il besoin ?

Cela dépend totalement de votre cas. Par exemple, les équipes utilisant Windows Workflow Foundation peuvent avoir besoin d'une tonne de formation pour apprendre une nouvelle bibliothèque de flux de travail. En revanche, les développeurs utilisant WCF mais qui ont interagi avec l'API Web auront probablement besoin de moins de formation pour apprendre pleinement l'API Web. Et les équipes qui utilisent ASP.NET MVC auront plus de temps à apprendre .NET 5+ par rapport aux équipes qui utilisent encore les formulaires Web ASP.NET.

.NET 5 est en C # (identique à .NET Core), mais .NET 5 est toujours un nouveau système. Vous devriez allouer du temps à environ autant de formation que vous le feriez pour que votre personnel apprenne d'autres cadres. Communiquez avec vos développeurs ! Ils savent quelles fonctionnalités ils utilisent et pour quelles nouvelles fonctionnalités ils auront besoin de temps pour apprendre.

Quelle sera la complexité de cette migration ?

Encore une fois, cela dépend totalement de votre cas individuel. Combien de vos applications reposent sur des fonctionnalités et des outils qui ne migreront pas dans la version .NET 5 ? Quelles versions de Framework ou Core sont différentes applications en cours d'exécution ? Si vous exécutez tout sur .NET Framework, cela va être une migration majeure. Si vous utilisez .NET Core 3.x, cependant, vous avez plus de temps pour effectuer la transition et la transition sera moins discordante car .NET 5 est la prochaine version de .NET Core.

En ce qui concerne vos serveurs, .NET 5 fonctionnera sur toutes les versions prises en charge de Windows. Cela signifie que vous n'aurez pas à mettre à jour Windows Server tant que votre version n'aura pas atteint la fin de vie. Une fois que le système d'exploitation du serveur atteint, vous devrez examiner attentivement le chemin de migration que vous suivrez pour mettre à jour en fonction de vos applications et de leurs dépendances.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Joseph basila  

Bonjour, j'ai un problème d'erreur 0X80070661 lors de l'installation de dotnet core 5.0 sur mon ordinateur HP G72. pouvez-vous me dire ce qu'il faut faire ? Merci

 

Jérôme P.  

J'ai effectué la migration du SI en 100% NET Core dans l'entreprise où je travaille actuellement. Le travail est long est fastidieux si vous maintenez les deux architectures simultanément (.NET Core / Net Framework). Si en plus, vous devez migrer Entity Framework 6, c'est encore plus long. Par contre le résultat est sans appel, les programmes fonctionnent plus rapidement et avec moins de bugs. Le plus compliqué à mon sens reste quand même les packages Nuget à migrer quand ils ne sont plus maintenus (ex. iTextSharp dans mon cas). Actuellement, nous sommes sur .NET 6 et je suis fier d'avoir réalisé cette opération seul (à 90%).