WCF Designer

Il existe aujourd’hui de multiples moyens d'implémenter un Service WCF.

Il est possible de partir de zéro et d’enrichir manuellement classes, interfaces, en référençant System.ServiceModel.dll.

Avec les extensions WCF, Visual Studio fournit des modèles de génération de service, de l'intellisense sur le framework et le fichier de configuration, un éditeur SvcConfigEditor permettant de configurer manuellement bindings, behavior, endpoint du service...

L'équipe Pattern & Practices fournit un environnement de génération de code (Service Factory) basé sur le GAT/GAX facilitant de multiples aspects liés à la création d'un service WCF (définition des contrats de données, de message, de service, implémentation, hébergement, sécurisation et génération des paramètres de configuration associés).

Alain Metge a mis à disposition un DSL permettant de générer une application à partir de la définition d’un modèle de composant logiciel multicouches, le stockage de ces modèles dans un référentiel et le découplage des stratégies de génération de code et du modèle (téléchargeable à cette adresse https://www.dslfactory.org/files/16/candlesetup/entry110.aspx) et prenant en compte la mise en œuvre de stratégie de génération WCF.

Enfin, Jean-Marc Prieur vient de mettre à disposition un Designer WCF (téléchargeable à cette adresse : https://www.codeplex.com/DslFactoryUtilities/Release/ProjectReleases.aspx?ReleaseId=4611.Non content de proposer un modèle visuel permettant de générer code, attributs et configuration d'un service, Jean Marc a souhaité pouvoir offrir la possibilité de manipuler indifféremment le code ou les modèles (comme le Diagramme de Classes de Visual Studio). Il s’agit donc là d’un Domain Specific Language bidirectionnel, sachant que les DSL Tools n'offrent pas nativement ces mécanismes. Jean-Marc a factorisé et publié sur CodePlex cette extension des possibilités des DSL Tools, sous la forme d'une bibliothèque DslFactory.Utilities (téléchargeable à l’adresse suivante : https://www.codeplex.com/DslFactoryUtilities) offrant les classes permettant de faire la rétro-ingénierie et la génération de code incrémentale. L'évènement DSL Factory (https://www.dslfactory.org), en septembre, permettra d'avoir plus de détail sur cette implémentation.