Introduction
La notion d’usine logiciel
Optimisation et réutilisation du code dans le but de maximiser la productivité
Outils pour la non duplication du code dans le but d’améliorer la maintenance
Optimisation
Quand, comment, pourquoi optimiser ?
Les différents axes d’optimisation en .NET (TPL, optimisation mémoire…)
Architectures et patterns de programmation en .NET
Patrons de création
Fabrique
Fabrique abstraite
Monteur
Prototype
Singleton
Patrons structurels
Adapteur
Pont
Composite
Decorateur
Facade
Poid mouche
Proxy
Patrons comportementaux
Chaine de responsabilité
Commande
Iterateur
Mediateur
Memento
Observateur
Etat
Strategie
Patron de méthode
Visiteur
Mise en œuvre des bonnes pratiques
Organisation et implémentation de la logique métier
Développement en couches (n-Tiers)
Architecture applicative et architecture physique
Architecture hexagonale
Appliquer les bons principes de la POO (principes SOLID)
Ouvert/fermé
Responsabilité unique
Substitution de Liskov
Séparation des interfaces
L'inversion des dépendances
Utilité de l’injection de dépendance sous .NET Core
Organisation et architecture applicative sous .NETCore
Les alternatives (Unity Container)
Exemple avec Blazor wasm, Blazor server et MVC
Exemple avec XAMARIN Form
Aller plus loin avec les tests
Automatisation des tests unitaires
Réduire les cycles de développement via les tests automatisés
Amélioration de la qualité grâce aux tests
Supprimer les erreurs via les tests de régression réutilisables
Intégration des tests et de l'écriture du code
Architecture TDD (Test driven developpement)
Organiser, coordonner et effectuer des cas de tests
Isolation d'un environnement de test de classes avec le Pattern Mock-Object pour des tests fiables et renouvelables
Refactorisation rythmée par les tests pour une validation immédiate
Utilisation de Mock, objets factices et bouchons
Intégration continue et introduction à DevOps
Introduction à Azure DevOps