34 votes

Quelles sont vos expériences avec Windows Workflow Foundation?

Je suis de l'évaluation de WF pour une utilisation dans des applications d'entreprise sur le web, et j'aimerais entendre quelques récents comptes rendus de première main de cette technologie.

Mon principal intérêt est ici dans l'amélioration de la maintenabilité des projets et peut-être en augmentant la productivité des développeurs lorsque l'on travaille sur des processus complexes qui changent fréquemment.

J'aime vraiment l'idée de la WF, cependant, elle semble être relativement inconnu et de nombreux anciens commentaires que j'ai rencontré mention qu'il est extrêmement complexe, une fois que vous obtenez en elle.

Si c'est suffisant, au point qu'il est inutilisable (ou un mauvais compromis) pour une petite ou de taille moyenne, c'est quelque chose que j'ai besoin de savoir.

Bien sûr, il a été depuis la fin de 2006, alors peut-être il a mûri. Si c'est le cas, c'est une autre information qui serait très utile!

Merci à l'avance!

22voto

Maurice Points 22343

Windows Workflow Foundation est un très capable de produit mais toujours très bien dans sa 1ère version :-(

Les principales raisons de cette utilisation:

  1. Visuellement la modélisation des exigences de l'entreprise.
  2. La séparation de la logique métier de l'entreprise, des règles et de l'extériorisation des règles sous forme de fichiers XML.
  3. Séparant de votre courant d'affaires à partir de votre application à l'extériorisation de vos flux de travail sous forme de fichiers XML.
  4. Créer un processus en cours d'exécution avec l'automatique capacité à réagir si de rien n'était pour quelque période de temps prolongée. Par exemple, une facture non payée.
  5. Automatique de la persistance de l'exécution de flux de travail pour maintenir l'utilisation des ressources et permettre un processus et/ou à la machine à redémarrer.
  6. Suivi automatique de flux de travail d'aider avec les besoins de l'entreprise.

WF vient comme une bibliothèque ou un cadre aussi la plupart du temps, vous devez écrire l'hôte qui instancie l'exécution de WF. Cela dit, en utilisant WCF hébergés dans IIS est une solution viable et permet d'économiser beaucoup de travail. Toutefois, la WCF/WF couplage est moins que parfaite et a besoin d'un sérieux travail. Voir ici http://msmvps.com/blogs/theproblemsolver/archive/2008/08/06/using-a-transactionscopeactivity-with-a-wcf-receiveactivity.aspx pour plus de détails. S'attendre à quelques changements et améliorations dans la prochaine version.

WF (WCF) sont assez central pour beaucoup de nouvelles choses à venir de Microsoft. Vous pouvez vous attendre à certains intéressant annonces au cours de la PDC.

BTW de conserver plusieurs versions d'un flux de travail de course prend un peu de travail, mais qui est la plupart du temps standard .NET. Je viens de faire une série de billets de blog sur le sujet de départ ici: http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx

Sujet visuellement la modélisation des exigences de l'entreprise. En théorie, cela fonctionne très bien avec une séparation de l'intention et de la mise en œuvre. Cependant, dans la pratique, vous allez déposer un peu plus d'activités sur un flux de travail purement pour des raisons techniques, et ce genre de défaites le but que Vous avez à dire à un analyste d'affaires pour ignorer la moitié de la formes et des lignes.

13voto

Panos Points 11429

Liés à la question: Lors de l'utilisation de Windows Workflow Foundation? Ma réponse:

Vous pouvez avoir besoin WF seulement si l'une des suivantes est remplie:

  1. Vous avez un long processus en cours d'exécution.
  2. Vous avez un processus qui change fréquemment.
  3. Vous souhaitez un modèle visuel du processus.

Pour plus de détails, voir Paul-André post: Ce que l'utilisation de Windows Workflow Foundation pour?

Merci de ne pas confondre ou se rapportent WF avec visual programmation de tout genre. Il est erroné et peut conduire à de très mauvais l'architecture/les décisions de conception.

Donc, si vous avez de telles exigences, puis WF est un bon candidat. Bien sûr, il est relativement complexe, mais simplement de mentionner que les problèmes que tente de résoudre est complexe (et parfois très complexes). À mon humble avis, il est très complexe, par exemple pour déshydrater/réhydrater les objets qui ont des gestionnaires d'événements ci-joint (avec des événements qui peuvent être déclenchées lorsque l'objet n'est pas en mémoire).

Je ne peux pas juger ce que tu veux dire par "petites à moyennes de projet", mais en général, je dirais que si votre projet a au moins deux exigences à partir de la liste ci-dessus, alors vous pouvez envisager WF comme une solution.

10voto

axel_c Points 4025

Nous avons utilisé WF dans un grand-ish application SharePoint et je peux dire que c'est OK. Il a beaucoup de puissance et de souplesse. et, comme Kevin mentionne, une fois que vous grok les concepts sous-jacents des flux de travail, vous pouvez faire à peu près tout ce que vous voulez avec elle.

D'autre part, il a vraiment de sérieux problèmes, comme le manque de contrôle de version, ce qui peut vraiment nuire à votre demande dans l'avenir. Nous avons été obligés de déployer jusqu'à 3 versions parallèles du même flux de travail nommé xxx-v1, xxx-v2 et xxx-v3 de conserver d'anciennes instances en cours d'exécution et d'avoir de nouvelles instances utiliser les versions mises à jour. Une vraie douleur dans le cul. Oh, et il y a aussi quelques vraiment non-intuitive des concepts là-bas (corrélation des jetons, wtf??)

9voto

daharon Points 1355

Nous avions un projet au travail que j'ai été impliqué dans l'aide de flux de travail. L'idée (de la direction), a été que nous, les programmeurs écrivent les Activités de Flux de travail avec le "moteur" et le cadre. Ensuite, les non-programmeurs serait de prendre soin de tout le reste, par la compilation de leur propre flux de travail dans les dll dont le moteur serait automatiquement charger.

La gestion a été vendu sur cette notion de non-programmeurs à l'aide de Flux de travail pour aider à développer des logiciels, et c'était un peu une perte de temps totale. Le problème que nous avons essayé de résoudre avec ce projet était relativement complexe et nous savions dès le début que le logiciel devrait être modifié presque constamment (ses calculs étaient à la charge sur d'autres entreprises et des gouvernements).

Le résultat final est que nous avons été incapables de faire des modules de Workflow suffisamment générique pour quiconque de l'utiliser. Donc, les programmeurs ont été ceux qui ont été forcés à travailler avec les flux de travail, et tous les flux de travail n'a été se en travers de notre chemin.

7voto

Lygpt Points 116

J'ai été à l'aide de Flux de travail 4.0 depuis quelques mois, et bien que la plupart du temps impressionné, je l'ai trouvé extrêmement difficile à apprendre.

Pour la version la plus récente (qui vient avec .NET 4.0 RC), il est à côté-à-pas de documents sur le web, dans les livres ou pas, les cours de formation. J'ai trouvé les articles relatifs à la défunte version 3.0. Même la MSDN documenation est la lumière sur le sol.

Le concepteur de flux de travail n'est pas aussi intuitif comme il se doit par tous les moyens afin d'apprentissage est très dur. J'ai dû compter sur des réponses à partir d'une seule personne sur StackOverflow (grâce par le moyen Maurice!) - et je serais bourré sans son aide.

Donc en résumé, je pense qu'il a du potentiel, mais vous serait assez fou pour apprendre encore attendre plus de la formation, de la documentation et des livres sinon vous allez en aveugle!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X