1

J'ai récemment été chargé de travailler sur Workflow Foundation. L'objectif réel serait de mettre en œuvre un système dans lequel les utilisateurs finaux peuvent définir des flux de travail personnalisés dans l'application déployée (et bien sûr, les utiliser). Personnellement, je n'ai jamais utilisé WF auparavant (et lire ici sur SO les gens sont très douteux à ce sujet - je suis donc en train de lire ces questions/réponses), et j'ai du mal à le contourner étant donné les ressources d'apprentissage disponibles.Flux de travail dynamiques définis par l'utilisateur et saisie par l'utilisateur

De toute façon, il y a quelques questions, par exemple, this, qui mentionnent quelque chose qu'ils appellent des workflows dynamiques ou définis par l'utilisateur. Ils soulignent que WF permet de «réhéberger» le concepteur, afin que les utilisateurs finaux puissent définir leurs propres nouveaux workflows après le déploiement de l'application (sans intervention du développeur (?), C'est la partie dont je ne suis pas vraiment sûr) .

J'ai été informé par mes collègues que nous pourrions ainsi implémenter une application dans laquelle, une fois cette fonctionnalité implémentée, nous n'aurions plus besoin de continuer à modifier l'application chaque fois qu'un nouveau flux de travail serait implémenté. Cependant, ils ont également souligné qu'ils ont simplement «entendu», ils n'ont pas eux-mêmes l'expérience de première main.

J'ai regardé autour pour des échantillons en ligne mais la meilleure chose que j'ai pu trouver était une application deviner de nombre - à peine plus qu'un simple bonjour monde. Donc, peu de choses me diraient dans quelle direction fonctionne cette fonction de flux de travail définie par l'utilisateur, quelles sont ses limites, etc.

Ma principale préoccupation est la suivante: il est normal que l'on puisse définir des workflows personnalisés, mais aucun workflow ne vaut un centime sans la possibilité d'entrer des données tout au long du processus. Par exemple, même si la seule chose que je dois faire est d'enregistrer un client dans un système de gestion des plaintes, j'aurais besoin du nom du client, du contact, etc. Si l'utilisateur final doit pouvoir définir un flux de travail alors, bien sûr, il doit y avoir un moyen de fournir aux utilisateurs du flux de travail un moyen d'entrer des données à travers des formulaires. Si le flux de travail peut être de toute nature, les données doivent l'être. Sinon, si nous devons implémenter nous-mêmes les interfaces utilisateur, cette fonction de "flux de travail utilisateur" est inutile, car elles se retrouveraient toujours à nous obligeant à mettre en œuvre un formulaire ou une sorte de saisie de données pour les différentes étapes. Donc je suppose qu'il devrait y avoir un moyen de définir la "forme" des données qui doivent être remplies à chaque phase d'interaction utilisateur du workflow que je peux étudier et générer dynamiquement des formulaires basés sur les données. Ainsi, par exemple, si je trouvais que les données requises étaient constituées d'un nom et d'une date de naissance, alors je devrais afficher une zone de texte et une date sur la page. Ce que je ne pouvais pas vraiment comprendre à partir du Q & Comme ici et ailleurs est de savoir si cela est même possible. Puis-je définir et ensuite "interroger" la structure des données à transmettre au flux de travail à tout moment? Si c'est le cas, comment? Si ce n'est pas le cas, comment cette fonction de flux de travail définie par l'utilisateur devrait-elle être utilisée, à quoi sert-elle? Pour clarifier un peu, je pourrais imaginer quelque chose comme spécifiant un type complexe, qui serait le modèle de vue (modèle d'entrée) dans une application MVC régulière, et puis je pourrais réfléchir dessus, obtenir les propriétés et l'entrée de rendu champs basés sur cela.

Répondre

3

Windows Workflow Foundation concerne les workflows machine, pas les workflows métier. Il est vrai que c'est l'ensemble d'outils de base créé par Microsoft pour créer leurs produits de workflow métier. Mais dès sa sortie de l'emballage, le WWF ne dispose pas des composants dont vous avez besoin pour créer rapidement et facilement des workflows professionnels. Si vous souhaitez envoyer un e-mail dans un flux de travail, vous devez l'écrire à partir de rien. À peu près tout ce que vous pouvez penser d'un point de vue commercial, vous devez écrire à partir de zéro.

Si vous souhaitez créer facilement des flux de travail professionnels à l'aide de produits Microsoft, consultez les éléments de flux de travail dans SharePoint. C'est le plus facile des produits Microsoft avec lesquels travailler (selon mon expérience.) Si cela ne répond pas à vos besoins, il existe d'autres produits comme BizTalk. K2 est une autre société avec un produit de workflow métier qui utilise le WWF comme base pour créer plus facilement des workflows métier, les anciens produits K2 créent en effet automatiquement des pages Web pour collecter les données auprès de l'utilisateur. WWF est très bas niveau, sans doute il a perdu la traction après avoir réécrit le tout dans 4.0. Bien que n'étant pas déclaré publiquement par Microsoft, mon opinion personnelle est Service Fabric (de Microsoft) atteint les objectifs que le WWF a essayé à l'origine de résoudre, un «environnement de programmation plus robuste».