Comprendre les versions de .NET : .NET Core, .NET Standard, .NET Framework, etc
La navigation dans l'écosystème .NET peut être déroutante avec des termes tels que .NET, .NET SDK, .NET Core, .NET Standard et .NET Framework. Chacun d'entre eux joue un rôle unique dans l'environnement de développement C# à l'aide de Visual Studio 2022, et il est crucial de comprendre leurs différences pour choisir le bon framework cible pour votre projet.
Cet article, basé sur la vidéo de Tim Corey intitulée "Les versions .NET expliquées - .NET, .NET Core, .NET Standard, .NET Framework and more", vise à simplifier ces termes et à fournir des conseils clairs sur ceux à utiliser et à quel moment.
Pourquoi .NET Core devait exister
Le .NET Framework, souvent appelé simplement .NET, est un élément essentiel du développement de logiciels et de l'exécution de logiciels de bureau depuis plus de deux décennies. Cependant, ses limites ont nécessité la création de .NET Core. Tim Corey souligne plusieurs raisons essentielles :
-
<Correctifs et solutions de contournement : Au fil du temps, le .NET Framework a accumulé de nombreux correctifs et solutions de contournement, ce qui l'a considérablement ralenti (1:35).
-
Dépendance à Windows : Le .NET Framework est profondément intégré à Windows, ce qui le rend difficile à utiliser sur d'autres plateformes. Cette dépendance a entravé le développement multiplateforme (2:03).
-
Conception monolithique : Le .NET Framework a été conçu pour tout inclure dans un seul paquet, ce qui, bien que pratique, a abouti à un système gonflé et moins efficace (2:25).
- Conception dépassée : Développé il y a plus de 20 ans, le .NET Framework n'a pas été conçu en tenant compte de l'internet moderne et de l'utilisation mobile (3:20).
La structure des applications .NET
Pour comprendre les avantages de .NET Core, il est important de saisir comment une application .NET est structurée.

Comme l'explique Tim Corey :
-
Code source C# : votre code C# est d'abord compilé en code de langage intermédiaire (IL) (5:49).
- Common Language Runtime (CLR) : Le code IL est ensuite exécuté par le CLR. Le .NET Framework et le .NET Core ont des CLR différents, mais ils traitent le code IL de manière similaire, ce qui permet à une grande partie de votre code source de rester identique sur les deux plateformes (6:42).
Avantages de .NET Core par rapport à .NET Framework
le runtime .NET Core est un cadre de développement qui a été développé pour remédier aux lacunes du .NET Framework. Tim Corey met l'accent sur les principaux avantages de ces outils :
-
<Compatibilité multiplateforme : Contrairement à .NET Framework, .NET Core est conçu pour fonctionner sur plusieurs plateformes, notamment Windows, Mac, Linux, Android, iOS, Xbox, IoT, etc.
-
Performances : .NET Core offre des améliorations significatives en matière de performances. Il élimine les correctifs hérités et prend en charge les pratiques matérielles et logicielles modernes, ce qui le rend plus rapide que le .NET Framework.
-
Modularité : .NET Core est modulaire, ce qui permet aux développeurs d'inclure uniquement les composants nécessaires, réduisant ainsi les frais généraux et améliorant l'efficacité.
-
Fonctionnalités modernes : .NET Core est livré avec des fonctionnalités prêtes à l'emploi plus modernes, telles que l'injection de dépendances et la journalisation intégrées, qui favorisent les meilleures pratiques en matière de développement.
-
Open Source : .NET Core est open source, encourageant les contributions de la communauté et la transparence dans le développement.
-
Conformité avec les normes industrielles : .NET Core adhère aux normes industrielles, garantissant la compatibilité et l'intégration avec les technologies modernes, contrairement à .NET Framework, qui est limité aux environnements Windows.
- Facile à mettre à jour : La mise à niveau de .NET Core est généralement simple, ne nécessitant souvent que la modification des numéros de version et la mise à jour des packages NuGet. La partie du processus de mise à niveau de Microsoft est simplifiée, avec moins de changements de rupture par rapport à .NET Framework, qui a historiquement impliqué des mises à niveau plus complexes et problématiques.
.NET Standard
Tim explique que .NET Standard est une spécification qui définit un ensemble d'API que toutes les plateformes .NET doivent mettre en œuvre et qu'il ne s'agit pas simplement d'un runtime. Elle fournit une API uniforme qui garantit la compatibilité du code entre les différentes implémentations de .NET. Cela signifie que vous pouvez écrire des bibliothèques qui fonctionnent à la fois sur .NET Core et sur .NET Framework. À 33:35, Tim aborde toutes les versions de .NET Standard jusqu'à la dernière version. Le résumé est présenté ci-dessous dans la capture d'écran :

Répartition détaillée des versions .NET
Temporaire du .NET Framework
Le .NET Framework existe depuis le début des années 2000 et est étroitement intégré à Windows. Le logiciel est adapté à la création d'applications de bureau et d'applications web sous Windows, mais il est limité en termes de capacités multiplateformes.
.NET Framework 1.0 (janvier 2002)
Tim Corey décrit la version initiale de .NET Framework 1.0 comme révolutionnaire, introduisant le concept d'un langage intermédiaire commun qui permettait à plusieurs langages de programmation de travailler ensemble (40:07). Cette version de base a préparé le terrain pour les développements futurs en offrant une plateforme unifiée pour différentes langues.
.NET Framework 2.0 (octobre 2005)
Trois ans plus tard, le .NET Framework 2.0 a apporté d'importantes améliorations et de nouvelles fonctionnalités, poursuivant ainsi la croissance de la plateforme (41:40). Cette version s'est distinguée par l'amélioration des fonctionnalités linguistiques et la prise en charge d'un plus grand nombre d'applications.
Mises à jour principales:
-
Novembre 2006 : .NET Framework 3.0 a été présenté (41:43).
-
Novembre 2007 : .NET Framework 3.5, une étape importante, a été publié (41:49).
-
Avril 2010 : .NET Framework 4.0, la dernière version majeure, est sortie (42:13).
-
Août 2012 : .NET Framework 4.5 a été publié (42:50).
- Avril 2019 : .NET Framework 4.8, la dernière version mineure, a été lancée (47:17).
Versions de .NET Core
.NET Core 1.0 (juin 2016)
Tim Corey parle de .NET Core 1.0 comme d'une preuve de concept aux fonctionnalités limitées, visant à démontrer le potentiel de .NET Core (43:32). Cette première version a jeté les bases, mais n'a pas été largement adoptée en raison de ses fonctionnalités limitées.
.NET Core 2.0 (août 2017)
Publié comme une mise à jour plus riche en fonctionnalités, .NET Core 2.0 comprenait d'importantes avancées, notamment dans le développement d'applications web (45:23). Cependant, il ne s'agissait pas d'une version LTS, et Tim souligne qu'elle contenait des changements de rupture qui ont conduit à la publication d'une version plus stable par la suite.
.NET Core 2.1 (mai 2018)
.NET Core 2.1 était une version LTS (Long-Term Support), dont Tim souligne l'importance cruciale pour les entreprises ayant besoin de stabilité et d'une assistance étendue (45:42). Il s'agit d'une mise à jour importante qui a rendu .NET Core plus adapté à une utilisation en production.
.NET Core 3.0 (septembre 2019)
.NET Core 3.0 a introduit la prise en charge des applications de bureau, notamment WinForms et WPF, élargissant ainsi son utilisation au-delà des applications web (53:04). Cette version a fait de .NET Core une plateforme plus complète, attirant les entreprises à migrer depuis .NET Framework.
.NET Core 3.1 (décembre 2019)
S'appuyant sur la version 3.0, .NET Core 3.1 était une autre version LTS, offrant une prise en charge et une stabilité continues pour les applications de bureau et les applications web (53:16). Tim explique que cette version a marqué un point où .NET Core a été considéré comme doté de fonctionnalités complètes et fiable pour une utilisation en entreprise.
.NET 5 et au-delà
<.NET 5.0 (novembre 2020)
Avec la sortie de .NET 5, Microsoft a supprimé le terme "Core" du nom pour simplifier l'image de marque (58:03). Tim explique que ce changement visait à réduire la confusion entre .NET Framework et .NET Core. .NET 5 a représenté une étape majeure dans l'unification de l'écosystème .NET sous un nom unique.
<.NET 6.0 (novembre 2021)
.NET 6 a poursuivi le cycle de publication annuel introduit avec .NET 5 (59:56). Tim note que chaque nouvelle version, y compris .NET 6, fait partie d'un rythme de mise à jour annuel, ce qui permet d'apporter régulièrement des améliorations et des ajouts de fonctionnalités.
<.NET 7.0 (novembre 2022)
.NET 7 a suivi le modèle de publication annuelle, faisant progresser la plateforme avec des mises à jour et des améliorations mineures (59:56). Tim explique en détail comment cette version, ainsi que ses prédécesseurs, reflète l'engagement de Microsoft en faveur d'un développement et d'une innovation continus dans l'écosystème .NET.

Compréhension des versions de .NET et du cycle de vie du support
Tim Corey fournit une explication détaillée des versions .NET et de leur cycle de vie (1:01:27). Voici un résumé des principaux points abordés :
Cycle de vie du support : STS vs. LTS
Tim Corey explique la différence entre deux types de fenêtres d'assistance : Standard Term Support (STS) et Long-Term Support (LTS).
-
STS (Standard Term Support) : Offre une fenêtre d'assistance de 18 mois. Par exemple, .NET 5, publié en novembre 2020, a été pris en charge jusqu'en mai 2022. .NET 7, publié en novembre 2022, dispose d'une fenêtre de support similaire de 18 mois, se terminant en mai 2024.
- LTS (Long-Term Support) : Offre une fenêtre d'assistance plus longue de 3 ans. .NET 6, qui est sorti en novembre 2021, est pris en charge jusqu'en novembre 2024. .NET 8, dont la sortie est prévue en novembre 2023, sera la prochaine version LTS, et sera prise en charge jusqu'en novembre 2026.
Tim souligne que si les développeurs d'applications à évolution rapide préfèrent les versions STS pour accéder aux dernières fonctionnalités, les entreprises privilégient souvent les versions LTS pour leur stabilité et une assistance plus longue.
Parcours de mise à niveau et versions
Tim Corey décrit le processus de mise à niveau pour les versions .NET :
-
De .NET 5 à .NET 6 : Vous disposez d'une année de chevauchement pendant laquelle les deux versions sont prises en charge.
-
<De .NET 6 à .NET 8 : vous disposerez d'une année complète pour passer de .NET 6 à .NET 8 avant la fin de la prise en charge de .NET 6.
- Mises à jour futures : Suivant ce modèle, .NET 8 (qui est actuellement la dernière version) sera pris en charge jusqu'à l'arrivée de .NET 10, ce qui vous laisse amplement le temps d'effectuer une mise à niveau.
Tim souligne que ce cycle de publication prévisible permet aux entreprises de planifier leurs mises à niveau en toute confiance.

Stratégie d'assistance de Microsoft
Tim évoque l'approche de Microsoft en matière d'assistance et de développement :
-
Coût et complexité : l'extension de la prise en charge des anciennes versions peut s'avérer coûteuse et complexe en raison de la nécessité de maintenir des mises à jour de sécurité pour plusieurs versions. C'est pourquoi Microsoft a adopté une stratégie d'assistance plus prévisible et plus facile à gérer.
- Cadre modulaire : l'approche modulaire de .NET Core et .NET permet des mises à jour rapides des fonctionnalités et un cycle de vie de l'assistance plus facile à gérer.
Choisir entre .NET Framework et .NET Core
Tim Corey donne des conseils sur l'utilisation des différentes versions de .NET :
-
<.NET Framework : Utilisez-le pour les projets existants ou pour la prise en charge d'anciens systèmes d'exploitation tels que Windows XP.
- .NET Core (désormais .NET) : Pour les nouveaux projets, commencez par la dernière version de .NET. La mise à niveau des anciennes versions de .NET Framework vers .NET peut offrir des améliorations significatives en termes de performances.
ASP.NET contre ASP.NET Core
Tim explique les différences entre ASP.NET et ASP.NET Core :
-
ASP.NET : Construit sur le .NET Framework, il prend en charge les formulaires Web, MVC et l'API Web. Les formulaires Web, notamment, ne sont pas inclus dans ASP.NET Core.
- ASP.NET Core : Un cadre modulaire pour la création d'applications web sur .NET Core. Il s'agit de Razor Pages, MVC, API, Blazor Server et Blazor WebAssembly. ASP.NET Core est conçu pour être plus flexible et plus moderne par rapport à son prédécesseur.
Tim à 1:21:00 précise que ASP.NET Core continue de prendre en charge le développement web avec de nouvelles fonctionnalités et une plus grande modularité, tandis que ASP.NET (Framework) est plus traditionnel et limité aux anciennes versions de .NET.
Conclusion
Tim Corey propose un guide clair et perspicace pour naviguer dans l'écosystème .NET, du contexte historique de .NET Framework aux capacités modernes de .NET Core et au-delà. Sa vidéo explique l'évolution des versions de .NET, la nécessité de .NET Core et les avantages de la modularité et de la compatibilité multiplateforme. Qu'il s'agisse de choisir entre .NET Framework et .NET Core ou de comprendre le cycle de vie du support des différentes versions de .NET, les explications de Tim constituent une feuille de route précieuse pour prendre des décisions de développement éclairées.
Pour des discussions plus approfondies et des exemples de codage pratiques, ne manquez pas de visiter la chaîne YouTube de Tim Corey, IAmTimCorey.

