Plan du cours
De la maîtrise du langage à la conception de la solution
- Fonctionnalités avancées de C# et leurs répercussions sur la conception.
- Récupération de l’intention de conception à partir de code existant.
Analyse des exigences et modélisation du domaine
- Cas d’utilisation, histoires utilisateur et critères d’acceptation.
- Modèles du domaine et langage universel.
Principes de conception logicielle
- Principes SOLID appliqués aux solutions .NET.
- Couplage, cohésion et direction des dépendances.
Motifs de conception pour les applications .NET
- Choix entre motifs de création, structurels et comportementaux.
- Motifs et anti-motifs dans le code existant.
Styles d’architecture et prise de décision technique
- Comparaison de l’architecture 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
- Appariement de motifs (pattern matching), 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 contrôles de santé.
Réflexion, attributs et métaprogrammation
- Conception basée sur les attributs et cas d’utilisation de la réflexion.
- Générateurs de code source et génération de code au moment de la compilation.
Fondamentaux d’ASP.NET Core
- Modèle d’hébergement, injection de dépendances et configuration.
- Pipeline de requêtes, middleware et filtres.
Conception des API REST
- Modélisation des ressources et sémantique HTTP.
- Versionnage, validation et réponses aux erreurs.
- Contrats d’API avec OpenAPI.
Sécurisation des applications .NET
- Authentification et autorisation avec OpenID Connect.
- Autorisation basée sur les politiques et gestion des secrets.
Modélisation des menaces et conception sécurisée
- Modélisation STRIDE et frontières de confiance.
- Examen de la conception sécurisée avant l’implémentation.
Accès aux données avec Entity Framework Core
- Modélisation des entités et des relations.
- Durée de vie de DbContext et stratégie de migration.
Performance 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
- Tâches, TPL et pièges de async/await.
- Synchronisation, annulation et sécurité des threads.
Optimisation des performances
- Profilage et tests de référence avec BenchmarkDotNet.
- Mémoire, allocations et collecte des ordures (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 de 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 livraisons.
Projet final : Examen de la conception et implémentation
- Examen de l’architecture d’une application de cas.
- Implémentation et refactorisation d’une tranche de fonctionnalité.
Pré requis
- Expérience en programmation C#
- Connaissances fonctionnelles de la programmation orientée objet
- Connaissances de base de SQL et des 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