Intérêts de la POO
- Rappel des principes de la programmation procédurale.
- Avantages et inconvénients de cette approche.
- Exemple d'une application orientée objet.
Travaux pratiques
Comparaison d'un même programme simple réalisé avec un découpage fonctionnel et orienté objet.
La notion d'architecture applicative
- Du Mainframe au client-serveur.
- Du client-serveur aux architectures multiniveaux.
- Architecture globale des applications en .NET : organisation en couches et en niveaux.
- Principe du modèle en trois couches : présentation, métier et d'accès aux données.
- Principe des applications distribuées et des architectures SOA.
Travaux pratiques
Analyse d'une application simple (starter kit) architecturée en trois couches logiques.
La notion d'objet
- Démystifier la notion d'objet et terminologie associée.
- Conception et manipulations d'objets (classes, instances).
- Présentation et utilisation du diagramme de classes UML.
L'implémentation d'une classe
- Mise en oeuvre du mécanisme d'encapsulation.
- Implémenter une méthode avec surcharges.
- Ajouter des constructeurs. Créer un membre statique.
- Définir la visibilité d'un membre et contrôler son accès.
Travaux pratiques
Manipuler les différents types de membre d'une classe.
Les concepts de la POO
- Principe et intérêt du mécanisme d'héritage.
- Redéfinir un membre dérivé.
- Rôle des classes abstraites et des interfaces.
- Faire du polymorphisme avec une interface.
Manipulations courantes d'objets en .NET
- Principe de la liaison précoce ou tardive et de la réflexion.
- Rôle et comportement des types valeur et référence.
- Regroupement d'objets en collections.
- Principe du DataBinding.
- Principe de LINQ.
Travaux pratiques
Se familiariser avec la manipulation des objets en .NET, avec exemple de LINQ, de LINQ To Object et To SQL.
Outils et méthodes
- Aperçu des techniques d'analyse (RUP ; Agile).
- Tirer parti d'UML (principaux diagrammes, pièges à éviter...).
- Principe et intérêt des design patterns.
Travaux pratiques
Réalisation du pattern Singleton et analyse des patterns exploités dans le Framework .NET.