Microsoft
Développement .NET
Design Patterns en C#
Avis d'expert
Avec la maturité, notre profession de développeur et d'architecte logiciel commence à reconnaître les bénéfices d'une capitalisation des connaissances et des expériences. Après la publication en 1994 de « Design Patterns: Elements of Reusable Object-Oriented Software » par le fameux Gang of Four (GoF), le concept de Design Pattern a suscité un véritable intérêt et cette popularité ne cesse de croître depuis 15 ans. Les design patterns sont aujourd'hui reconnus comme un outil indispensable, proposant des solutions testées et éprouvées à des problèmes que rencontre toute équipe de développement.
Objectifs pédagogiques
- Eviter les dérives de la programmation orientée objet par la maîtrise de quelques principes fondamentaux
- Utiliser ces principes pour comprendre les design patterns
- Etudier les principaux design patterns et les mettre en œuvre sur des exemples concrets en C#
- Aller au-delà des design patterns du GoF en étudiant les contributions de Microsoft, Martin Fowler et des autres
- Savoir reconnaître et choisir les design patterns pour concevoir une nouvelle application ou améliorer une application existante
Public
Développeur
Architecte technique
Pré-requis
- Avoir une expérience réelle en développement C# ou avoir suivi la formation « Programmation C# » (Réf. MSCSH).
- Connaissance de base en UML.
Méthode pédagogique
Formation rythmée par des apports théoriques et des ateliers de mise en pratique.
Programme pédagogique détaillé par journée
Jour 1
Jour 2
Jour 3 Introduction
Les promesses non tenues de la programmation orientée objet.
Présentation générale des design patterns (définition, classification et principaux travaux).
Le rôle des design patterns.
Langage de description d'un design pattern.
Rappels sur UML
Les principaux diagrammes et les notations utilisées.
Les principes fondamentaux de la programmation orientée objet
Le principe open-closed.
Le principe de substitution de Liskov.
Le principe d'inversion de dépendance.
Le principe de séparation des interfaces.
Héritage vs. composition.
Etude détaillée de quelques design patterns importants du GoF (1ère partie)
L'étude de chacun des patterns nommés ci-dessous aborde de manière formelle chaque pattern, présente des cas concrets d'utilisation ou exemples connus et se termine par un atelier permettant d'expérimenter sa mise en œuvre en C#.
Favoriser la collaboration entre objets avec les patterns Observer et Mediator.
Séparer la création et l'utilisation des objets avec les patterns Factory.
Contrôler la création des objets avec le pattern Singleton.
Enrichir le comportement d'un objet avec les patterns Decorator et Visitor.
Adapter le comportement d'un objet avec les patterns Template Method et Strategy.
Etude détaillée de quelques design patterns importants du GoF (2ème partie)
Gérer les changements d'état d'un objet avec le pattern State.
Gérer des hiérarchies complexes d'objets avec le pattern Composite.
Parcourir une collection d'objets avec le pattern Iterator.
Faire passer un objet pour un autre avec le pattern Adapter.
Abstraire les invocations entre objets avec les patterns Command et Chain Of Responsibility.
Contrôler l'accès aux objets avec le pattern Proxy.
Autres patterns utiles
Le pattern Null Object.
Le pattern Specification.
Les patterns de présentation
Les patterns Model-View-Controller (MVC) et Model-View-Presenter (MVP) : historique et comparaison.
Etude complète et mise en œuvre du pattern MVP.
Le pattern Model-View-ViewModel (MVVM) popularisé avec Microsoft WPF.
Les patterns d'accès aux données
Le pattern Repository.
Le pattern Data Transfer Object.
Le pattern Lazy loading.
Le pattern Unit of Work.
Patterns d'architecture
Architecture en couches.
Architecture hexagonale.
Les design patterns dans la pratique
Comment les reconnaître ou les choisir ?
Refactoriser vers les design patterns pour améliorer la qualité du code existant.











3 jours - 21 heures



