David Hill, Principal Architect, Pattern & Practices, Microsoft
Il s'agit de la technologie qui s'appelait Prism.
Pourquoi Prism?
L'expérience utilisateur prend de plus en plus d'importance, mais les besoins changent. Le problème est de rendre les applications dynamiques, adaptables, extensibles et testables.
La solution est de découper l'application en morceaux, de surveiller les dépendances entre les morceaux pour qu'elles soient aussi faibles que possibles, puis on assemble les morceaux pour faire la ou les applications. C'est ce qu'on appelle les applications composites. Prism est le modèle d'applications composites pour les clients riches.
Prism contint une bibliothèque, une implémentation de référence, une documentation, dezs quick-starts et how-to.
Prism 2.0 sortira début 2009.
Prism contient notamment un conteneur DI/IoC (injection de dépendances), des modules, la composition d'interface utilisateur, la séparation de la présentation, les événements et commandes, et le multi-targeting.
Patterns de modularité
Les modules sont des morceaux indépendants pouvant être déployés de manière séparée. Prism 2.0 permet la découverte de modules et leur chargement à la demande ou en arrière-plan.
C'est le module loader qui charge et injecte les modules, soit d'après un fichier de configuration, soit d'après un service Web ou une base de données. Cela permet notamment d'avoir une UI adaptée au rôle de l'utilisateur (exemple: un directeur en verra plus qu'un employé).
Patterns de composition d'interface utilisateur
Le Shell est la fenêtre qui héberge les modules. Il est découpé en Regions, qui sont des zones nommées. Dans les Regions sont placées les Views, qui encapsulent l'UI et la logique de présentation.
Un modèle push ou pull permet de placer les Views dans les Regions. Dans un cas les vues s'ajoutent aux régions, dans l'autres les vues indiquent dans quelles régions elles souhaitent être ajoutées.
Patterns de séparation de présentation
Le but est de séparer la vue (difficile à tester) de la logique métier et de la logique de présentation. Cela améliore aussi la séparation développeur / designer.
Le modèle Model-View-ViewModel est une nouveauté de Prism 2.0. L'état de présentation (exemple: une présentation dit si le modèle est occupé par une tâche) est géré, et les vues sont très minces grâce aux data templates.
Comments