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
Nos clients témoignent (4)
Il s'agissait d'un entraînement en face à face, donc la formation a été adaptée à mes besoins spécifiques. Shane a mis en lumière des éléments de WPF/C# qui pourraient potentiellement être bénéfiques pour mes projets de développement.
Warren Nolan - Northrop Grumman
Formation - Programming in WPF
Traduction automatique
Connaissances, implication et relation de confiance du formateur
Adam Kuklewski - GE Medical Systems Polska
Formation - Technical Architecture and Patterns
Traduction automatique
Les explications et l'interactivité du formateur étaient vraiment excellentes ; même si je n'étais probablement pas assez expérimenté, j'ai beaucoup appris !
Pieter Bruynseels - Spot Buy Center BV
Formation - Design Patterns
Traduction automatique
Sympathique et amical. Très compétent. Je recommanderais Shane à d'autres.
Joshua - California State University Bakersfield
Formation - Programming in C# with Visual Studio 2022
Traduction automatique