2009-10-27 6 views
20

je suis tombé sur stateless, un cadre de machine d'état hiérarchique basé sur Simple State Machine pour Boo, mais configurés en utilisant C# 3.0.NET flux de travail Suggestions moteur

Il est facile à configurer et à utiliser, je vais probablement utiliser bientôt.

Mais je me demandais si

  • Toute personne utilisé stateless pour des projets réels (Si oui, quelle est votre opinion?)
  • Existe-t-il d'autres moteurs de bons flux de travail pour .NET? (autre que WF)
+3

Autres moteurs de flux de travaux - vous voulez dire, à l'exception de Workflow Foundation, n'est-ce pas? –

+1

Oui, autre que WF. – Leyu

+3

Question pratique et utile? Fermons-le! – Den

Répondre

11

J'ai utilisé Stateless et WF pour une application qui est destinée à entrer en production un jour. :) J'ai détaillé mes expériences jusqu'à présent on my post here.

Dans l'ensemble, je préfère Stateless parce que c'est plus simple pour plus de choses que WF. Bien sûr, il est agréable de concevoir graphiquement votre flux de travail, mais lorsque vous devez implémenter quelque chose de plus difficile qu'un flux de travail séquentiel (comme le workflow de la machine d'état), vous devez travailler avec ExternalDataExchange. Ce n'est probablement pas difficile, mais compte tenu de cela et le fait que vous ayez besoin d'implémenter un service de persistance pour mettre en pause un flux de travail m'a semblé peu attrayant. Je n'ai pas besoin de conserver un flux de travail sur le disque pour une exécution ultérieure de toute façon ... donc j'utiliserai des événements réguliers pour gérer cela dans Stateless. La gestion des erreurs est facilement réalisable dans Stateless (j'ai réussi avec), mais l'implémentation que j'ai prise est discutable, et est le sujet d'une autre discussion (que je recherche maintenant sur SO!). Je pourrais poster une question à ce sujet très bientôt.

Bonne chance avec Stateless. J'espère entendre comment vous avez progressé avec elle.

+0

Il y a un projet sur CodePlex qui montre graphiquement votre statemachine sans état. Actuellement, il ne prend pas en charge toutes les fonctionnalités du cadre sans état. http://statelessdesigner.codeplex.com –

+0

Je vais vérifier. Merci d'avoir partagé! – Dave

2

Si vous n'avez pas regardé le Windows Workflow Foundation il vaut probablement la peine de faire un peu de lecture à ce sujet.

+5

Je veux une solution plus légère – Leyu

+1

nous avons tous besoin de solutions légères :) –

5

Pour Workflow Foundation, utilisez-le uniquement pour un projet vert afin de pouvoir utiliser WF4. Check this out http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm

WF 1.0 et 1.5 ne sont pas compatibles avec WF4. Ce n'est donc pas une solution avancée.

Personnellement, j'utilise http://simplestatemachine.codeplex.com comme alternative à WF. Je l'ai utilisé dans un système de production complet (basé sur asp.net) pour gérer un système d'émission de licences commerciales assez complexe (gérant plus de 350 licences commerciales gouvernementales différentes).

Je n'ai pas encore essayé d'état, mais cela semble prometteur.

5

En fin de soirée. Nous avons utilisé Stateless en production depuis plus d'un an et demi, sans problème. C'est une solution très élégante pour le traitement des workflows et vous intégrez rapidement les états à votre modèle de données. Nous représentons nos états avec et int dans SQL, de sorte que vous pouvez exécuter la machine d'état dans ASP.Net en cours. Cela est également vrai pour les workflows de longue durée.

+0

Salut David, je serais intéressé de savoir si vous utilisez toujours Stateless pour vos flux de travail? Des conseils sur les états persistants en SQL? –

+0

@Mark H - le plus certainement. Je l'ai trouvé très utile, et j'ai construit plusieurs solutions avec elle. –

5

Si vos besoins sont basiques, un StateMachine très simple que j'ai écrit peut vous intéresser.

S'il vous plaît être averti que ce n'est pas (au moment de l'écriture) soutenir les états hiérarchiques.

Vous pouvez trouver sur NuGet:

nuget install nstate 

ou vérifier sur GitHub:

https://github.com/benaston/NState

J'espère que quelqu'un juge utile.

+0

Je suis en train de lire votre solution sur github maintenant. C'est intéressant. J'utilise Apatride depuis 3 ans mais j'aime aussi votre approche. –

+0

Merci pour votre aimable commentaire! – Ben