2009-05-31 13 views
12

.NETスタックのWindowsワークフローにはどのような選択肢がありますか?また、これらのソリューションを使用している場合、Windows Workflow上で何が選択されたのか、それは良い選択でした。誰でもWindows Workflowの代わりに.Netオープンソースを推奨できますか?


アップデート:私は先に行って、ニコラスBlumhardtによって作成されたstatelessを選択

。これは、ドメイン内の状態をモデリングする非常に簡単な方法です。

var phoneCall = new StateMachine<State, Trigger>(State.OffHook); 

phoneCall.Configure(State.OffHook) 
    .Allow(Trigger.CallDialed, State.Ringing); 

phoneCall.Configure(State.Ringing) 
    .Allow(Trigger.HungUp, State.OffHook) 
    .Allow(Trigger.CallConnected, State.Connected); 

phoneCall.Configure(State.Connected) 
    .OnEntry(t => StartCallTimer()) 
    .OnExit(t => StopCallTimer()) 
    .Allow(Trigger.LeftMessage, State.OffHook) 
    .Allow(Trigger.HungUp, State.OffHook) 
    .Allow(Trigger.PlacedOnHold, State.OnHold); 

phoneCall.Configure(State.OnHold) 
    .SubstateOf(State.Connected) 
    .Allow(Trigger.TakenOffHold, State.Connected) 
    .Allow(Trigger.HungUp, State.OffHook) 
    .Allow(Trigger.PhoneHurledAgainstWall, State.PhoneDestroyed); 

あなたが見ることができるように、ステートマシンは状態とそれぞれのトリガーをモデル化するためにジェネリックを使用しています。以下は、Googleの提供するサンプルコードです。言い換えれば、enum、整数、文字列などを使用してニーズに合わせることができます。ステートマシンの各ステートは、特定の条件に基づいて起動する条件付きトリガーで構成できます。

+0

なぜ? Windows Workflow Foundationの何が問題になっていますか? – SLaks

+2

-1!WFを超えて基準を与えていないため。 –

+2

実際、私は、WFには特にステートマシンにとっていくつかの失敗があることに同意する傾向があります。私はあなた自身の理由を "!WF"と回答してみたいと思っています...現時点で私はこれに高価な製品を使用しています...自分のニーズに合ったワークフローエンジンを展開することを検討しています(長時間実行されるステートフルなビジネスプロセスの場合、プロセス自体が個々のケースの存続期間中に突然変異する)。 –

答えて

9

Windows Workflow Foundationは、の過剰使用から私にはのように感じる場合があります。次に、独自のワークフローエンジンを実装する方が簡単で簡単です。

サンプル参照:

+0

リンクをありがとう - 私はちょうど今週末DotNetRocksでニコラスを聞いて終了しました。 –

+0

ようこそ。 PS: "Nicholas" –

関連する問題