Accueil Plan de formation - .NET Framework vers .NET moderne
Post
Annuler

Plan de formation - .NET Framework vers .NET moderne

💡 Cet article marque le dernier de l’annĂ©e 2025 : je prends maintenant un congĂ© bien mĂ©ritĂ© pour la pĂ©riode des fĂȘtes et je vous invite Ă  en faire autant. On se retrouve le 12 janvier prochain pour le prochain article.

Préambule

Passer de .NET Framework Ă  .NET moderne reprĂ©sente une Ă©tape importante pour tout dĂ©veloppeur souhaitant rester Ă  jour dans l’écosystĂšme Microsoft. Ce plan de formation a Ă©tĂ© conçu pour accompagner cette transition de maniĂšre progressive et concrĂšte.

L’objectif est d’aider les dĂ©veloppeurs et architectes Ă  :

  • Comprendre les diffĂ©rences fondamentales entre .NET Framework et .NET (Core) ;
  • Explorer les nouvelles versions de .NET, leurs cycles de support (LTS / STS) et leurs amĂ©liorations ;
  • DĂ©couvrir les nouveaux outils et pratiques (configuration moderne, DI intĂ©grĂ©e, hosting model, etc.) ;
  • Se familiariser avec les technologies clĂ©s de l’écosystĂšme actuel : ASP.NET Core, Entity Framework Core, TestContainers, Aspire, GitHub Copilot, et plus encore.

Qu’est-ce que .NET ? Microsoft .NET est une plateforme de dĂ©veloppement offrant un Ă©cosystĂšme riche pour crĂ©er des applications de tous types (web, bureau, mobiles, services, etc.). Historiquement, on distinguait .NET Framework (lancĂ© en 2002) et .NET Core (lancĂ© en 2016). Aujourd’hui, le terme « .NET » dĂ©signe principalement la version moderne issue de .NET Core, unifiĂ©e Ă  partir de .NET 5 en 2020. À l’inverse, .NET Framework 4.x est l’ancienne version « legacy », dĂ©sormais figĂ©e (la 4.8 Ă©tant la derniĂšre).

Quelles sont les grandes différences entre les deux ?

  • Multiplateforme vs Windows uniquement : .NET moderne est cross-platform : une application .NET peut s’exĂ©cuter sur Windows, Linux ou macOS avec les mĂȘmes performances. Le dĂ©veloppement n’est plus limitĂ© Ă  Windows : on peut coder sous Visual Studio Code ou d’autres Ă©diteurs sur Linux/macOS, en plus de Visual Studio sous Windows. En comparaison, .NET Framework Ă©tait uniquement compatible Windows.
  • Open source et innovation : Le nouveau .NET est open source et Ă©volue rapidement. La communautĂ© peut contribuer aux amĂ©liorations du runtime et des bibliothĂšques via GitHub. .NET Framework, lui, Ă©tait en grande partie fermĂ© et Ă©volue trĂšs peu depuis 2019.
  • Performance et scalabilitĂ© : .NET (Core) a Ă©tĂ© repensĂ© pour ĂȘtre beaucoup plus performant. Le runtime optimisĂ© et l’environnement d’exĂ©cution (CLR) font d’ASP.NET Core l’un des frameworks web les plus rapides selon TechEmpower. À l’inverse, .NET Framework est plus lourd et moins optimisĂ© pour les scĂ©narios modernes (microservices, conteneurs, etc.).
  • ModularitĂ© et dĂ©ploiement : .NET Core introduit une architecture modulaire (via NuGet) et permet le dĂ©ploiement auto‐contenu (les runtimes nĂ©cessaires peuvent ĂȘtre embarquĂ©s avec l’application). .NET Framework, en revanche, est installĂ© au niveau du systĂšme et partagĂ© par toutes les applications, ce qui rend les mises Ă  jour dĂ©licates. De plus, .NET moderne autorise d’installer plusieurs versions en parallĂšle sur la mĂȘme machine (side-by-side), chaque application peut cibler sa version de runtime sans conflit. Avec .NET Framework, une seule version 4.x est active Ă  la fois sur Windows, limitant la flexibilitĂ©.
  • APIs et fonctionnalitĂ©s disponibles : .NET Core a rattrapĂ© et mĂȘme dĂ©passĂ© .NET Framework sur la plupart des fonctionnalitĂ©s. Certains anciens modules (Web Forms, WCF, Workflow
) ne sont disponibles que sous .NET Framework, mais ils ont souvent des alternatives modernes (par ex. gRPC Ă  la place de WCF). Le nouveau .NET inclut Ă©galement de nouveaux frameworks (ASP.NET Core, Blazor, MAUI pour le multiplateforme, etc.) non prĂ©sents dans l’ancien.

En rĂ©sumĂ©, .NET « Core » unifiĂ© est l’avenir de l’écosystĂšme .NET, idĂ©al pour tout nouveau projet, tandis que .NET Framework sert uniquement Ă  maintenir d’anciennes applications sur Windows.

À Ă©couter :

Évolution des versions .NET 6 à .NET 10

Pour chaque version majeure de .NET (de la version 6 Ă  la version 10), vous trouverez ci-dessous au moins une vidĂ©o explicative des nouveautĂ©s ainsi que l’article dĂ©taillĂ© de Stephen Toub sur les amĂ©liorations techniques (notamment de performance) de cette version.

.NET 6 (2021 - 2024)

.NET 7 (2022 - 2024)

.NET 8 (2023 - 2026)

.NET 9 (2024 - 2026)

.NET 10 (2025 - 2028)

Le cycle de support de LTS versus STS avec .NET Core

Depuis .NET Core 3.1, Microsoft suit un cycle de publication fixe pour .NET avec une alternance entre versions LTS (Long-Term Support) et STS (Standard-Term Support).

LTS - Long-Term Support

  • Support officiel de 3 ans
  • IdĂ©al pour les applications critiques ou Ă  cycle de vie long
  • Mises Ă  jour de sĂ©curitĂ© et corrections sans changements de rupture
  • Exemples : .NET 6 (LTS), .NET 8 (LTS), .NET 10 (LTS)

STS - Standard-Term Support

  • Support Ă©tendu Ă  24 mois depuis .NET 9 (contre 18 mois auparavant)
  • AccĂšs anticipĂ© aux nouveautĂ©s du runtime et du langage
  • AdaptĂ© aux projets agiles pouvant adopter un rythme de mise Ă  jour rĂ©gulier
  • Exemples : .NET 7 (18 mois), .NET 9 (24 mois)

Vidéo explicative recommandée :

DiffĂ©rences entre les outils de l’écosystĂšme .Net Framework Ă  .NET Core

Le passage de .NET Framework Ă  .NET Core s’accompagne de nombreux changements d’outils, de conventions et de choix technologiques par dĂ©faut.

Voici un aperçu des évolutions les plus notables :

Remplacements technologiques fréquents

Outil / Approche (Framework)Évolution / Remplacement en .NET Core+Commentaire
Autofac (DI)DI natif intégré à ASP.NET CoreAutofac est toujours compatible, mais plus nécessaire pour la plupart des cas
Web.config, app.configappsettings.json + configuration par injectionPlus flexible, hiérarchique, supporte IOptions
System.WebSupprimé, remplacé par ASP.NET Core Hosting & MiddlewareArchitecture légÚre, cross-platform
Global.asaxRemplacé par Program.cs et Startup.cs ou minimal hostingDémarrage centralisé simplifié
IIS exclusivementCross-platform (Kestrel, Nginx, Apache, etc.)Kestrel est souvent utilisé en production
csproj verbeuxNouveau format SDK-style (<Project Sdk="...">)Plus simple, support multi-targeting
MSBuild-based NuGet restoredotnet restore intégré au buildPlus rapide, CLI unifiée
Project.json (obsolÚte depuis Core 1.x)Fusionné dans le nouveau format csproj moderneStabilisation du modÚle de projet

Changements frĂ©quents dans l’écosystĂšme .NET Core et modernes

MĂȘme entre les versions de .NET Core, certains outils ou comportements Ă©voluent :

  • Swagger / Swashbuckle : Ă©tait activĂ© par dĂ©faut dans certains templates .NET 5/.NET 6 (notamment dans les APIs), ce n’est plus le cas en .NET 9/10. Il faut l’ajouter et le configurer manuellement.
  • Hosting Model : depuis .NET 6, le modĂšle minimal de dĂ©marrage (Program.cs simplifiĂ©) est devenu la norme, remplaçant la combinaison Startup.cs + Program.cs.
  • HTTP Logging natif : ajoutĂ© dans .NET 6, souvent oubliĂ©.
  • Prise en charge des tests avec dotnet test : meilleure intĂ©gration CLI, y compris pour les tests en parallĂšle.
  • Nouvelle maniĂšre de gĂ©rer les secrets utilisateurs : dotnet user-secrets introduit depuis .NET Core 2, mais plus encouragĂ© avec les secrets Azure pour les apps cloud.

Changement de licences dans l’écosystĂšme .NET

Un point important Ă  connaĂźtre : Microsoft et d’autres Ă©diteurs ont modifiĂ© les licences de nombreux packages dans l’écosystĂšme .NET, ce qui a un impact sur :

  • L’utilisation commerciale de certains outils open source
  • La compatibilitĂ© avec certaines entreprises ou environnements sensibles
  • Les pratiques de contribution ou de fork

Article recommandé : https://codewithfrenchy.com/posts/changement-de-licence-ecosysteme-dotnet/

Développement web avec ASP.NET Core

ASP.NET Core est la plateforme web principale de .NET moderne. Elle permet de créer des applications performantes, testables, sécurisées et facilement déployables, grùce à une architecture modulaire, multiplateforme et cloud-ready.

Vidéo recommandée :

AccÚs aux données avec Entity Framework Core

Entity Framework Core (EF Core) est l’ORM moderne de Microsoft pour .NET. Il remplace EF6 dans l’écosystĂšme .NET Core et s’intĂšgre naturellement Ă  l’injection de dĂ©pendances, Ă  la configuration moderne et aux API REST.

Vidéo recommandée :

Migration d’une application ASP.NET MVC (Framework) vers ASP.NET Core

Migrer une application .NET Framework Ă  .NET Core est un projet structurant. Il ne s’agit pas d’un simple “portage”, mais bien d’une reconstruction partielle dans un Ă©cosystĂšme diffĂ©rent, plus modulaire, plus performant et multiplateforme.

Playlist recommandée : https://www.youtube.com/watch?v=zHgYDZK3MrA&list=PLdo4fOcmZ0oWiK8r9OkJM3MUUL7_bOT9z

Déploiement local et dans le cloud (Azure App Services)

DĂ©ployer une application ASP.NET Core en 2025 peut se faire trĂšs facilement, aussi bien localement qu’en environnement cloud. Comprendre les options disponibles et les outils recommandĂ©s est essentiel pour industrialiser son projet.

Vidéo recommandée :

Bonus

Structure moderne des solutions

Passer Ă  .NET 6 jusqu’à .NET 10 implique d’adopter de nouvelles conventions de structure et d’organisation du code. Une architecture propre facilite la maintenabilitĂ©, les tests, la scalabilitĂ© et les bonnes pratiques DevOps.

Vidéo recommandée :

Roadmap

L’écosystĂšme .NET Ă©volue rapidement, notamment avec .NET 8/9/10, les microservices, le cloud et la montĂ©e en puissance de la performance et de la productivitĂ©. En 2025, un dĂ©veloppeur .NET moderne devrait idĂ©alement maĂźtriser plusieurs axes, Ă  la fois techniques et mĂ©thodologiques.

Vidéo recommandée :

Moderniser une application .NET avec GitHub Copilot

GitHub Copilot, basĂ© sur l’IA, peut assister les dĂ©veloppeurs dans la modernisation d’une application existante en l’accĂ©lĂ©rant.

Vidéo recommandée :

Faciliter les essais

Dans les versions récentes de .NET, Microsoft a introduit plusieurs outils pour faciliter les tests automatisés sans avoir besoin de dépendances tierces.

Deux nouveautés trÚs utiles sont :

  • TimeProvider / FakeTimeProvider
  • ILogger<T> / FakeLogger<T>

Articles recommandés : https://grantwinney.com/how-to-use-timeprovider-and-faketimeprovider/ et https://www.freecodecamp.org/news/how-to-use-fakelogger-to-make-testing-easier-in-net

Tester contre des conteneurs réels avec les TestContainers

TestContainers est une bibliothÚque .NET qui permet de lancer des services Docker (bases de données, RabbitMQ, Redis, etc.) dans un environnement de test, à la volée. Elle garantit des tests réalistes, isolés et reproductibles.

C’est une solution idĂ©ale pour remplacer :

  • Les scripts SQL manuels d’initialisation
  • Les bases de donnĂ©es en dur sur la machine du dĂ©veloppeur
  • Les mocks peu fiables de services externes

Article recommandé : https://codewithfrenchy.com/posts/introduction-testcontainers/

Aspire : orchestrer des applications

Aspire est une stack d’orchestration proposĂ©e par Microsoft, conçue pour faciliter le dĂ©veloppement, la configuration, l’observation et le dĂ©ploiement d’applications cloud natives composĂ©es de plusieurs projets ou services.

C’est une rĂ©ponse directe aux dĂ©fis rencontrĂ©s avec les microservices, les BFF, les APIs, les workers, etc.

Playlist : Migrating From Docker Compose to Aspire (my experience) - YouTube

Cet article est sous licence CC BY 4.0 par l'auteur.