38 votes

Un cas solide pour WF

J'ai lutté pendant si longtemps pour trouver une irrésistible cas d'utilisation de flux de travail (c'est à dire: WF) contre régulier de la programmation impérative. Chaque fois que je retombe à la conclusion que je devrais juste laisser WF ou de reporter arriver jusqu'à plus tard. Mais je continue à avoir ce sentiment tenace que quelque chose me manque.

Personne ne sait tout livre qui fait vraiment une forte cas pour le Flux de travail de la sorte? Le livre a pour (i) enseigner WF bien, et (ii) montrer à l'aide de l'utilisation appropriée des cas que WF fait une mise en oeuvre facile à faire que si on a juste fait notre droite régulière de codage.

Je vous en seront reconnaissants.

21voto

itowlson Points 44174

Du point de vue d'un non-expert, il y a deux choses qui, pour moi, de faire le cas pour WF-l'un flux de travail unique à des plates-formes, les autres peut-être plus de commodité chose.

La commodité est la capacité à créer de nouvelles façons de composer des activités. La programmation impérative fournit un répertoire limité de composition primitives: fondamentalement, le séquençage, l'if-else et des boucles. WF vous permet de construire votre propre composition des opérateurs tels que l'exécution entrelacée, l'exécution en parallèle, first past the post, etc. Et bien sûr, il a la composition sophistiquée mécanisme de machines d'état intégré.

Je dis que c'est une fonctionnalité pratique parce que vous pouvez construire tous ces opérateurs dans un langage impératif comme le C#: en fait, c'est comment vous construire le WF opérateurs. Mais WF rend facile à utiliser et à lire personnalisé compositions, alors qu'en C# vous avais rapidement descendre dans une grêle de lambda expressions. Donc, si vous avez une orchestration complexe exigences-qui est, si la façon dont vos activités ensemble, c'est plus compliqué que de séquences, if-else et boucles -- puis WF peut rendre votre programme plus facile à exprimer et à comprendre.

La caractéristique unique est la durabilité. C'est là que le Shukla et Schmidt livre commence à partir, et où il revient sans cesse. Un impératif programme écrit en C# ou VB peut courir pendant des heures, des jours, des semaines, si c'est de la chance, peut-être même des mois... mais finalement IIS va le cycle de l'application de la piscine, ou les admins vont vouloir installer les dernières mises à jour de sécurité, ou quelqu'un va trébucher sur le cordon d'alimentation. Alors, comment est-ce que votre programme rappelez-vous, "d'accord, j'ai le bon de commande à partir d'Imagination Noms de Société R Us, et je suis en attente sur une approbation de crédit de la Banque de Breadheads Inc., et quand je reçois ce que je peux envoyer l'e-mail de confirmation"?

Dans un classique programme impératif, lorsque le processus meurt, l'état d'exécution meurt avec elle. Vous pouvez démarrer un nouveau processus, mais il va commencer au début du programme. Bien sûr, vous pouvez créer une base de données et l'utiliser pour stocker les drapeaux comme "a obtenu la commande d'achat" et "a obtenu une approbation de crédit." Mais maintenant vous avez à écrire spécifique à l'application du code de sauvegarder et de rechercher de l'état, et de revenir au point de droit dans le programme en fonction de cet état. Et vous avez à la conception d'une nouvelle base de données et de nouvelles sauver/restaurer/saut logique pour chaque application qui tourne depuis longtemps.

Durable de flux de travail est de s'attaquer à ce problème. Si vous écrivez votre programme comme un flux d'activités, alors WF prendra soin de la persistance de son état, y compris lorsqu'il est dans son flux d'exécution. La machine qui exécute le programme peut prendre feu et brûler votre centre de données, mais quand la réponse de la banque vient en, WF réveillera votre programme dans votre autre centre de données, et il va commencer à courir au bon endroit et avec les bonnes données.

Pour moi, c'est le "fort" pour WF. Dans de nombreux cas, vous n'en avez pas besoin: les applications sont suffisamment courte durée que l'échec n'est pas une préoccupation importante, et de redémarrer à partir de zéro est viable de la stratégie de rétablissement. Mais pour les applications de longue durée, tels que l'endroit où vous pouvez être à l'orchestration externe des systèmes qui peuvent prendre des heures à répondre, ou des processus d'affaires qui impliquent les humains qui peuvent prendre des jours pour responsables, la durabilité peut être la killer feature pour WF.

Avertissement: je ne suis pas un WF programmeur et n'ont jamais construit un monde réel WF système. Je viens à ce à partir d'une BizTalk arrière-plan, et de ce que j'ai lu sur WF, de sorte que cette évaluation est un peu théorique. Espérons que cela aide tout de même!

5voto

Maurice Points 22343

Vous ne savez pas si il y a une bonne réponse à votre question. Le problème n'est pas que la question n'est pas valide ou quelque chose comme ça parce que vous êtes demandent deux choses très différentes.

Tout d'abord, vous demandez pour des raisons impérieuses liées à l'utilisation de flux de travail. C'est un très subjective de la question et non sur la technologie liée à tous. Vous pouvez trouver des livres blancs sur le web pointant vers toutes sortes de succès et d'échec pour cette question, flux de travail mises en œuvre. C'est indépendamment de la technologie, une solution qui a été fait en utilisant le produit X pourrait tout aussi bien avoir été effectué en utilisant le produit Y. Le chapitre de Shukla et Schmidt explique certainement les principes fondamentaux, mais je ne suis pas sûr que c'est un bon livre vous montre où et comment appliquer un flux de travail.

D'autre part, vous êtes à la recherche d'un livre pour vous apprendre Windows Workflow Foundation. La première question est de WF3 ou WF4 comme ils sont très différents des bêtes. Je vais supposer WF4 parce que cela va remplacer WF3 quand .NET 4 est sorti (réel dès maintenant) et à partir de WF3 ne fait pas beaucoup de sens dans la plupart des cas. Mais comme WF3 n'a jamais été très populaires et le marché du livre pas très rentable pour la plupart des auteurs il n'y a pas WF4 livres encore. Je crois que Bruce Bukovics travaille sur une nouvelle version de son Pro WF: Windows Workflow .NET 3.5 livre que j'ai trouvé l'un des plus utilisable WF3 livres. Jusqu'à présent, il n'en est rien, cependant, et vous êtes coincé avec le, très limité, les docs sur le site msdn et blog comme le mien ici. Et bien sûr il y a des cours comme ce à partir de DevelopMentor (note: shameless plug que je suis le principal auteur du cours)

Je n'ai fournissons un certain nombre de raisons, dans cette réponse, ici, ceux-ci peuvent vous aider certains.

Pas tout à fait la réponse à votre question, mais j'espère que tout cela vous sera toujours utile pour vous.

1voto

Mads Ravn Points 155

Ce n'est pas une réponse directe, mais cela peut être utile si vous cherchez d'autres ressources. Pour moi, il ressemble à WF est assez étroitement modelé autour des concepts introduits dans le Business Process Langage d'Exécution (BPEL). Cette mst. a été autour pendant beaucoup plus longtemps que WF, et les utilisations de BPEL devrait vous donner une idée de ce à utiliser WF pour.

Je n'ai pas utilisé de WF, mais quand j'ai joué avec BPEL un peu, et je l'ai trouvé difficile à utiliser. Cela est dû principalement à la prise en charge des outils (j'ai trouvé le plugin eclipse pour la modélisation visuelle manquait). Lorsque vous combinez cela avec le fait, qu'il est difficile de lire le code en XML par rapport à la "normale programmation syntaxe de la langue", puis BPEL n'était pas une solution viable. Si WF est un bon outil visuel, ce problème a au moins été résolu.

1voto

Tore Points 11

Les bonnes raisons sont les suivantes: Aperçu visuel de vos processus d’entreprise. Vous pouvez même demander à votre client - l'expert du domaine - de modifier le flux de travail avec le concepteur; redémarrez l'application et lancez-la sans recompiler

Bon livre: Bruce Bukowics ET mon favori de tous les temps: PRO C # 2010 et le framework .NET 4 a un excellent chapitre

0voto

goofballLogic Points 508

Je ne sais pas d'un livre spécifiquement sur ce sujet. Cependant, je crois qu'une partie de l'appel de WF (ou d'autres produits de flux de travail), c'est qu'il réintroduit la possibilité de l'faiblement couplée, basé sur le message paradigme que l'original OO gars (comme Alan Kay sont intéressés.

Le concept d'un "message" transmis n'est pas immédiatement évident dans WF. Toutefois, la notion d'objets agissant discrètes comme des machines.

Pour un de génial (mais un peu fou) livre sur l'état de l'OO, voir l' Objet de la Pensée par David West. Et voir ici pour Alan Kay, l'analyse de ce qu'OO signifie pour lui.

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