Workflow Foundation > Articles > Développer un Workflow « SharePoint » avec Visual Studio 2008

     Accueil
     L'équipe


     Présentation
     Activités WF
     Articles
     Tutoriaux
     Trucs & Astuces


     Forum (MSDN)
     Téléchargements
     Ressources FR
     Annuaire des liens
     Formation (WW)


     Administration

 




Développer un Workflow « SharePoint » avec Visual Studio 2008

Ce premier article fait suite à une session présentée durant les Techdays 2008 : Création d'un Workflow pour Windows SharePoint Services 3.0 avec Visual Studio 2008.

Comme précédemment annoncé sur ce blog, le but de cette série sur les workflows va être de revoir en détails les démonstrations faites pendant cette session aux Techdays 2008.

Ainsi, nous évoquerons les sujets suivants :
 • les avantages de Visual Studio 2008 pour le développement de workflow "SharePoint"
• les différences entre workflows séquentiel et à états.
• le design d'un workflow à états
• l'utilisation de correlation token
• des activités comme OnWorkflowActivated, Delay, ...
• la création de formulaires ASP.Net et Infopath+Form Services
• L'interaction entre les workflow SharePoint et la suite Office 2007
• la gestion de la sécurité sur les tâches et sur les documents liés au workflow
• la gestion d'un processus d'escalade dans les deux types de workflow
• la gestion des erreurs dans un workflow
• La création de types de contenu (content type) personnalisés pour votre workflow
• le packaging et le déploiement sur votre environnement.

Aujourd’hui, nous allons aborder les différents avantages de Visual Studio 2008 pour le développement de workflows « SharePoint ».

Après une installation standard de Visual Studio 2008, la première chose qui va vous surprendre (si vous êtes dans la branche SharePoint), est la partie « projet Workflow ».
En effet si vous sélectionnez le type de projet Workflow, pour le Framework 3.5, vous trouverez deux types de projets spécifiques à SharePoint :
• SharePoint State Machine Workflow
• SharePoint Sequential Workflow

Si vous vous demandez ce que ce type de projets fait dans une installation basique de Visual Studio 2008, vous pourrez trouver plus d’informations dans cette vidéo où John Durant, « Program Manager » des « SharePoint Workflow Tools » de VS 2008, explique pourquoi ils ont été mis en place.

En résumé, ces nouveaux modèles de projets existent pour vous permettre de gagner du temps lors de vos développement Workflow pour SharePoint et ce, essentiellement au niveau du déploiement et du débogage.

Examinons pour cela les étapes de création d’un workflow dans SharePoint avec Visual Studio 2008.

Après avoir cliqué sur le projet de workflow séquentiel (ou à état), s’affiche un nouvel assistant de création :

Cet écran nous permet de préciser le nom du workflow et la collection de site sur laquelle notre worklow va être débogué.

Une fois les données renseignées, vous pouvez cliquez sur suivant.

Par défaut, le workflow que vous allez développer, s’exécutera sur une liste ou une bibliothèque de document.

L’assistant vous permet de spécifier la liste en question ainsi que la liste d’historique et de tâches associées. Il vous permettra aussi de décider si votre workflow doit être automatiquement associé à la liste en question ou non.

Finalement, l’assistant vous permet de choisir les conditions de démarrage de votre workflow dans SharePoint : manuellement, lors de la création, lors de la modification.

Une fois, que vous avez terminez votre sélection, vous pouvez cliquer sur le bouton « Terminer » et vous obtiendrez cet affichage (pour un workflow séquentiel) :

On retrouve ici le fichier workflow.cs « classique » qui définit votre workflow ainsi que le designer de workflow qui vous permet de le « dessiner » comme nous pouvions le faire avec Visual Studio 2005 et les extensions Workflow dans SharePoint.

Si on compare avec la version 2005, on remarquera la disparition des fichiers manifest.xml et wsp_structure.ddf nécessaires à la création de la solution SharePoint. In fine, ces fichiers ont été supprimés afin de simplifier le déploiement et le test.

Au final, il nous reste les fichiers :
• Feature.xml
• Key.snk
• Workflow.xml

Le fichier feature.xml vous permet de définir la fonctionnalité qui va enregistrer votre workflow « proprement » dans SharePoint :

L’avantage de ce fichier est qu’il est généré automatiquement (id, nom, etc.) et est fonctionnel en l’état.

Le fichier key.snk sert à signer l’assembly du workflow afin de pouvoir le déployer dans le GAC.

Enfin, le fichier workflow.xml vous permet d’identifier le workflow (nom, description, identifiant, assembly à utiliser) ainsi que les formulaires à utiliser et diverses données supplémentaires, sur lesquelles nous reviendrons dans les prochains articles.

On retrouve aussi les activités SharePoint dans la boite à outils :

C’est pratique, mais nous avions déjà tout ça avec Visual Studio 2005 et les extensions pour Workflow SharePoint ! Nous avions déjà le designer, les fichiers de déploiements et les activités SharePoint dans la boite à outils (si ce n’est les nouvelles activités du Framework 3.5).

Donc au final, que nous apporte cette nouvelle version ? Et bien, tout simplement le débogage à la façon « Winform », et dans l’univers SharePoint c’est un sacré avantage en terme de développement !

Dorénavant, il est possible de positionner un point d’arrêt (aussi bien sur le designer que dans le code), d’appuyer sur F5 et de debugger votre workflow en un clic !

Concrètement, que se passe t il ?

Ces nouveaux modèles, utilisent les informations que vous avez données lors de la création de votre projet dans l’assistant de création (le nom de workflow, le site sur lequel debugger, etc.) pour lancer le déploiement de votre feature et l’installer sur votre collection de site.

Compilation et déploiement :

Une fois la feature installée, Visual Studio s’attache au processus SharePoint et lance Internet Explorer à l’URL de la collection de site spécifiée et si besoin s’associe automatiquement à la liste SharePoint.

Visual Studio s’attache au processus SharePoint :

Internet Explorer se lance et charge la page correspondante à l’URL de la votre liste, votre workflow est déjà associé :

Il ne vous reste plus qu’à déclencher l’exécution de votre workflow via votre liste et à débugger votre workflow en ajoutant des points d’arrêt, tout le reste se fait automatiquement :

Lors du lancement, vous pouvez directement déboguer que ce soit en mode « design » ou en code :


Trois précisions néanmoins :
• Il faut bien entendu avoir installé SharePoint sur votre machine pour que ce déploiement simplifié fonctionne.
• Si vous souhaitez ajouter des fichiers lors du déploiement de votre feature (comme des types de contenus), il faudra les renseigner dans votre fichier feature.xml dans la section « ElementManifests » pour que SharePoint les prenne en charge mais pour que ces fichiers soient déployés automatiquement par Visual Studio 2008, il faudra aussi les ajouter avec l’attribut « ElementFile » comme ci-dessous.


• Finalement, si vous développez sur Windows SharePoint Services, il vous faudra supprimer la référence à l’assembly manquante dans les références de votre projet, supprimer les lignes dans feature.xml et supprimer la ligne « Microsoft.Office.Workflow.Utility » dans le fichier workflow1.cs

Vous êtes maintenant prêt à développer des workflows avec Visual Studio 2008 !

Philippe SENTENAC et Adrien SIFFERMANN