Prenez contact avec nous

Plan du cours

Introduction à la plateforme .NET moderne

  • Aperçu du runtime, du SDK et de la plate-forme unifiée .NET 8
  • Comparaison de l'évolution de .NET Framework, .NET Core et .NET 8+
  • Structure du projet, frameworks cibles et bases du multi-ciblage
  • Mise en place de l'environnement de développement et des outils

C# moderne et pratiques linguistiques orientées vers l'avenir

  • Records, setters en lecture seule (init-only) et modèles d'immutabilité
  • Améliorations de la correspondance de motifs (pattern matching) et expressions switch
  • Types de référence nullable et sécurité basée sur le compilateur
  • Meilleures pratiques async/await et streaming efficace en mémoire
  • Mathématiques génériques, membres abstraits statiques dans les interfaces et APIs orientées performance
  • Préparation des bases de code aux fonctionnalités C# 12/13 sur .NET 8

Fondamentaux d'ASP.NET Core et amorçage de l'application

  • Host builder, pipeline de middleware et cycle de vie des requêtes
  • APIs minimales vs APIs basées sur des contrôleurs : critères de décision
  • Fournisseurs de configuration, paramètres spécifiques à l'environnement et gestion des secrets
  • Fichiers statiques, routage et conventions d'extrémité (endpoint)
  • Configuration du conteneur d'injection de dépendance et durées de vie des services

Conception et implémentation d'APIs REST

  • Modèle de maturité REST, modélisation des ressources et conception des URIs
  • Méthodes HTTP, codes de statut et négociation de contenu
  • Validation des requêtes, liaison de modèles et intégration de FluentValidation
  • Stratégies de versioning pour les APIs publiques et internes
  • Documentation avec OpenAPI et Swagger UI
  • Tests d'intégration des APIs avec TestServer et WebApplicationFactory

Injection de dépendance d'entreprise et inversion de contrôle

  • Injection par constructeur, durées de vie des services et dépendances piégées (captive dependencies)
  • Modèles Decorator et Factory avec le conteneur intégré
  • Intégration de Scrutor et d'autres bibliothèques IoC tierces
  • Inscription modulaire des services et organisation par fonctionnalité
  • Soucis transversaux via middleware et filtres

Journalisation, configuration et gestion centralisée des erreurs

  • Journalisation structurée avec Microsoft.Extensions.Logging et Serilog
  • Niveaux de log, portées (scopes), enrichissement et configuration des sink
  • Middleware d'exception et pipelines globaux de gestion des erreurs
  • ProblemDetails et réponses d'erreur conformes à la RFC 7807
  • Vérifications de santé (health checks), télémétrie et crochets d'observabilité
  • IDs de corrélation et préparation au tracing distribué

Architecture logicielle pour les solutions .NET d'entreprise

  • Principes de l'architecture en couches, hexagonale et clean architecture
  • Blocs de construction du Domain-Driven Design (DDD) dans .NET
  • Modèles CQRS et Mediator avec MediatR
  • Modèles Repository et Unit of Work avec EF Core
  • Architecture Vertical Slice pour la cohérence des fonctionnalités
  • Évaluation des compromis entre monolithe, monolithe modulaire et microservices

Sécurité des applications web et des APIs

  • Schémas d'authentification : JWT, OAuth2, OpenID Connect et flux basés sur les cookies
  • Politiques d'autorisation, accès basé sur les revendications (claims) et garde-fous basés sur les ressources
  • Application du HTTPS, HSTS et middleware des en-têtes sécurisés
  • Sanitisation des entrées, encodage des sorties et atténuation du OWASP Top 10
  • Limiter le débit (rate limiting), politiques CORS et gestion des tokens anti-forgery
  • Gestion des secrets avec Azure Key Vault et rotation pilotée par l'environnement

Qualité du code, maintenabilité et meilleures pratiques

  • Normes de codage, EditorConfig et dotnet format
  • Analyse statique avec les analyseurs Roslyn et intégration SonarQube
  • Tests unitaires avec xUnit, mocking avec Moq ou NSubstitute
  • Tests d'intégration et de contrat dans les pipelines CI
  • Techniques de refactoring pour les modules hérités de longue durée de vie
  • Documentation, contrats API et pratiques de partage des connaissances

Stratégie de modernisation : Évaluation du code legacy .NET Framework

  • Analyse du portefeuille : classer les applications par criticité, complexité et valeur commerciale
  • Utilisation de .NET Upgrade Assistant et de l'analyseur de compatibilité
  • Identification des APIs obsolètes, des dépendances spécifiques à la plateforme et des lacunes tierces
  • APIs spécifiques à Windows et considérations de migration WCF
  • Création d'une feuille de route de migration avec une priorisation basée sur les risques

Migration progressive et techniques de coexistence

  • Modèle Strangler Fig : remplacement progressif des sous-systèmes hérités
  • Migration API-first : exposition des domaines .NET Framework via des façades REST
  • Pontage par messages avec RabbitMQ, Azure Service Bus ou Kafka
  • Coexistence de base de données partagée et stratégies de versioning du schéma
  • Faire fonctionner .NET Framework et .NET 8 côte à côte dans la même infrastructure
  • Conteneurisation des composants modernes tout en laissant l'héritage sur IIS

Laboratoire de migration pratique et révision

  • Application de Upgrade Assistant à un projet legacy représentatif
  • Refactoring d'un service Web Forms ou WCF en APIs ASP.NET Core
  • Mise en œuvre de l'IoC, de la journalisation et de la gestion centralisée des erreurs dans la solution migrée
  • Ajout de l'authentification et de l'autorisation à la nouvelle surface API
  • Vérification de la coexistence via des tests d'intégration de bout en bout
  • Révision, questions-réponses et conseils pour la planification post-formation de la modernisation

Pré requis

  • Expérience avec la programmation C# et les principes de conception orientée objet
  • Connaissance des concepts de développement web (HTTP, HTML, CSS, bases de JavaScript)
  • Compréhension de base des bases de données relationnelles et de SQL
  • Une exposition antérieure à .NET Framework ou ASP.NET est utile mais non requise

Audience

  • Développeurs et architectes .NET se préparant à moderniser des applications héritées .NET Framework
  • Ingénieurs logiciels évoluant vers des rôles de développement .NET d'entreprise
  • Chefs techniques responsables de la migration de plate-forme et de la planification de la coexistence
  • Personnel DevOps et infrastructure supportant les cycles de vie des applications .NET
 21 Heures

Nombre de participants


Prix par participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires