Plan du cours
Des compétences langagières à la conception de solutions
- Fonctionnalités avancées de C# et leurs implications en matière de conception.
- Récupération de l'intention de conception à partir d'un code existant.
Analyse des exigences et modélisation du domaine
- Cas d'utilisation, user stories et critères d'acceptation.
- Modèles de 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 des motifs créatifs, structurels et comportementaux.
- Motifs et anti-motifs dans le code existant.
Styles d'architecture et prise de décisions techniques
- Comparaison des architectures en couches, hexagonale et propre.
- 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 frontières orientées services.
C# moderne pour un code maintenable
- Appariement de motifs, enregistrements et types de référence nulle.
- Génériques, LINQ et composition fonctionnelle.
Gestion des exceptions, journalisation et observabilité
- Stratégie d'exceptions et contrats d'erreur.
- Journalisation structurée, corrélation et contrôles d'intégrité.
Réflexion, attributs et méta-programmation
- Conception par attributs et cas d'utilisation de la réflexion.
- Générateurs de 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 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.
- Cycle de vie du 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é.
- Transactions, jetons de concurrence et contournement de EF.
Concurrence et programmation asynchrone
- Tâches, TPL et pièges d'async/await.
- Synchronisation, annulation et sûreté des threads.
Optimisation des performances
- Profilage et étalonnage avec BenchmarkDotNet.
- Mémoire, allocations et gestion des objets orphelins.
- 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 de production et sécurité des releases.
Projet final : Revue de conception et mise en œuvre
- Revue d'architecture d'une application de cas d'étude.
- Mise en œuvre et refactorisation d'une tranche de fonctionnalité.
Pré requis
- Expérience de la programmation en C#
- Connaissances pratiques de la programmation orientée objet
- Connaissances de base en SQL et en bases de données relationnelles
Public visé
- Développeurs .NET
- Ingénieurs logiciels et chefs de projet technique
- Développeurs se tournant 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