Bon voilà, après quelques années dans le monde de l’ASP.NET, j’ai envie de faire un tour du coté des applications clients de la plateforme .NET. Non pas que je sois blasé par cette technologie mais simplement la curiosité de découvrir un autre monde. Après avoir lu quelques tutoriaux, et vu quelques videos, programmé quelques applications du style Hello World, je me lance dans le vif du sujet. Je tenterai à la manière de Rob Connery d’apprendre et de vous faire apprendre de façon simultanée, ceci, en anglais plus connu sous le nom de “public learning”. J’attendrai donc des retours de votre part via commentaires ou mails (pierre at dervalp.com). Ne soyez pas surpris de trouver des mots non traduit, je ne tenterai pas de traduire certains mots. Je ne suis pas particulièrement un adepte du franglais mais certains mots dans le domaine informatique perdent de leur sens lorsqu’ils sont traduits (le language C# n’est-il lui-même pas écrit en anglais ?).
Revenons à nos moutons, c’est par l’intermédiaire d’une connaissance qui m’a présenté le pattern MVVM que je suis tombé sur une partie très intéressante sur MSDN, le “Composite Application Guidance for WPF and Silverlight” ou sous le nom plus connu de PRISM v2. Ce guide vous permettra de créer des applications qui sont voués à grandir et à supporter les assaults du temps par l’ajout de vue, l’ajout de modules,…
Avant de se lancer dans ce monstre qu’est PRISM v2, je vous invite à vérifier les spécifications systèmes (rien de bien effrayant là dedans) :
Pour plus d’info : http://msdn.microsoft.com/en-us/library/dd458809.aspx
Pourquoi utiliser Composite Application Guidance ? Selon Ms, il nous aidera à nous guider dans le but de créer des applications WPF et Silverlight complexes et flexibles (cela tombe bien, c’est mon but). Des applications “loosely coupled” (cliquez-ici pour la traduction) et dont chaque module peut évoluer de manière indépendante (SoC). En gros, l’application presque parfaite…
Pré-requis :
Afin de bien comprendre tous les concepts présents, il vous faut des connaissances générales en WPF, en Silverlight mais aussi dans ces domaines:
Je vous rassure tout de suite, je vous expliquerai un à un ces points lors de différents articles (c’est cela le public learning, on rencontre un concept, on l’explique
).
Quand utiliser Composite Application Guidance ?
Une équipe de développement fait face toujours aux même problèmes au cours d’un projet, le changement de spécification, l’ajout de modules non prévus au départ, nouvelle technologie, mauvais feedback du client,… Tout cela, vous le connaissez aussi bien que moi n’est-ce pas ? C’est pour cela qu’il nous faut être agile (
), c’est à dire être flexible et pouvoir améliorer son application en continu sans difficulté.
Ce sont ces défis que Composite Application Guidance tente de relever, enfin rectification, ce sont les developpeurs à l’aide de Composite Application Guidance qui tenteront de relever ces différents défis. Ceci en divisant l’application en des parties peu couplés et semi-indépendantes qui pourront être développées et testées individuellement et ensuite regroupées ensemble dans une application “shell” (coquille en anglais) pour former une solution cohérente et performante. Que de beaux mots, en gros, pour les projets de grande envergures qui sont voués à évoluer au travers le temps.
Exemple d’une application composite (image provenant de MSDN):

Composite Application permet de développer, tester et déployer des modules de manière indépendante.
Il fournit également un « shell » commun composé de composant UI construit à partir de modules variés de manière peu couplée. Cela standardise l’apparence et permet d’ajouter des nouvelles fonctionnalités plus facilement.
Il permet la «separation of concerns» pour ce qui du logging et de l’authentification (capacité horizontal) mais également pour ce qui est des fonctionnalités business spécifique à vos applications (capacité vertical).
Il aide à la subdivision d’équipe en spécialisant les développeurs dans sa couche. Ceci permet de bien séparer l’application entre l’interface utilisateur et l’aspect business logic.
Quand ne pas utiliser Composite Application Guidance ?
Le Composite Application Guidance est déconseillé pour les infrastructures telles que client/serveur, les communications assynchrones et les communications encryptées. Les applications où la performance est la priorité numéro une, les applications d’authenfication et d’authorisation. Il y certainement encore des cas où l’utilisation de Composite Application Guidance ne s’applique pas, nous verrons cela par la suite.
Conclusion :
J’espère vous avoir donné l’envie d’en connaître plus sur cette partie du monde du développement .NET. Je reviendrai très vite avec un prochain article qui vous expliquera les différents requis (databinding, routed command) afin d’être paré lors des explications plus techniques sur le fonctionnement de PRISM.