Prenez contact avec nous
 Durée 35 heures

Plan du cours

De la maîtrise du langage à la conception de solutions

  • Fonctionnalités avancées de C# et leurs implications pour la conception.
  • Recueillir l'intention de conception à partir du code existant.

Analyse des exigences et modélisation du domaine

  • Cas d'utilisation, récits utilisateurs et critères d'acceptation.
  • Modèles de domaine et langage universel.

Principes de conception logicielle

  • Application des principes SOLID aux solutions .NET.
  • Couplage, cohésion et direction des dépendances.

Patrons de conception pour les applications .NET

  • Sélection de patrons créatifs, structurels et comportementaux.
  • Patrons et anti-motifs dans le code existant.

Styles d'architecture et prise de décision technique

  • Comparaison des architectures en couches, hexagonale et propre (clean architecture).
  • Registres de décisions d'architecture et analyse des compromis.

Planification de la structure de la solution

  • Organisation des solutions et des projets pour les grandes bases de code.
  • Monolithe modulaire par rapport aux limites orientées services.

C# moderne pour un code maintenable

  • Matching de motifs, enregistrements (records) et types de référence nuls.
  • Génériques, LINQ et composition fonctionnelle.

Gestion des exceptions, journalisation et observabilité

  • Stratégie d'exceptions et contrats d'erreurs.
  • Journalisation structurée, corrélation et vérifications de santé.

Réflection, attributs et méta-programmation

  • Conception basée sur les attributs et cas d'usage de la réflexion.
  • Générateurs de source et génération de code à la compilation.

Fondamentaux d'ASP.NET Core

  • Modèle d'hébergement, injection de dépendances et configuration.
  • Flux de requêtes, middleware et filtres.

Conception d'API REST

  • Modélisation des ressources et sémantique HTTP.
  • Versionnage, validation et réponses d'erreur.
  • Contrats d'API avec OpenAPI.

Sécurisation des applications .NET

  • Authentification et autorisation avec OpenID Connect.
  • Autorisation basée sur des politiques et gestion des secrets.

Modélisation des menaces et conception sécurisée

  • Modélisation STRIDE et limites de confiance.
  • Revue de conception sécurisée avant la mise en œuvre.

Accès aux données avec Entity Framework Core

  • Modélisation des entités et des relations.
  • Durée de vie du DbContext et stratégie de migrations.

Performances des requêtes et architecture des données

  • Stratégies de chargement et pièges du chargement anticipé (eager loading).
  • Transactions, jetons de concurrence et contournement d'EF.

Concurrence et programmation asynchrone

  • Tasks, TPL et pièges d'async/await.
  • Synchronisation, annulation et sécurité des threads.

Optimisation des performances

  • Profilage et benchmarking avec BenchmarkDotNet.
  • Mémoire, allocations et ramasse-miettes (garbage collection).
  • Stratégies de cache et tests de charge.

Stratégie de test à travers les couches

  • Limites des tests unitaires, d'intégration et bout en bout.
  • Architecture testable et doubles de test.

Déploiement et préparation opérationnelle

  • Conteneurs, configuration et pipelines CI/CD.
  • Diagnostic en production et sécurité des releases.

Projet de synthèse : Revue de conception et mise en œuvre

  • Revue d'architecture d'une application de cas d'usage.
  • Implémentation et refactoring d'une tranche fonctionnelle (feature slice).

Pré requis

  • Expérience en programmation en C#
  • Connaissances pratiques de la programmation orientée objet
  • Connaissances de base en SQL et en bases de données relationnelles

Public cible

  • Développeurs .NET
  • Ingénieurs logiciels et responsables techniques
  • Développeurs évoluant vers des rôles de conception d'applications

Nombre de participants


Prix par participant

Nos clients témoignent (4)

Cours à venir

Catégories Similaires