4

MVC Webページとそれらが表示される順序を切り離したいと思っています。一般的に言えば、これらは私が対処する必要があるシナリオだと思うが、私は特定の考え方に縛られている。私はちょうど流れを制御するのを助けるパターンか目的を見つけたいと思う。MVC3でWorkflow Foundationを使用してページフローを処理する(ウィザードのように)

サンプル・ページシーケンシング:フォワード

  • のみ:終了するまで、ユーザーは唯一、ワークフローかかわらず前方に進行させることができます。
    - 特別なケース:ユーザーがナビゲートする、または手動で無効なURLに入力した場合、システムはそれに応じて応答しなければならない(現在のステップにリダイレクト)

  • フォワード - バック(読み取り専用):ユーザが進行してもよいですウィザードを介して、しかし、戻るボタンは、以前のデータの読み取り専用のビューを可能にします。

  • フォワードバック(読み書き):ユーザーは前のエントリのデータを更新して更新することができます。これにより、ワークフローが以前の状態にリセットされる可能性があります。

    :フォワードコンセプトは上記

    質問(なステートマシンのように)それを収容する必要があり、ユーザが複数の「有効な状態」に入ることがあり、それらの回のために

このページコントロールフローをMVC3/WF4アプリケーションに実装するにはどうすればよいですか?

enter image description here

+0

あなたの質問があまりにも汎用的であるが。答えるには全書籍が必要になるかもしれません。あなたはそれが*答える*ようにそれを絞り込む必要があります。 –

+0

私はかなり複雑で、実行中のプロセスがASP.NET(MVC?)で処理される必要があります。これがWFを見ている主な理由です – LamonteCristo

答えて

3

私はこのアイデアを検討しました。私の考えでは、あなたのプロセスが(日のように)長い時間がかかる場合にのみ、Workflow Foundationはそれに値するでしょう。

そうしないと、(ステートマシンのような)カスタムコードを書くことが、Workflow Foundationを組み込むよりもはるかに簡単な解決策であることがわかります。あなたが例を探しているなら

はしかし、ここで一つだ: http://code.msdn.microsoft.com/Windows-Workflow-233b5e3c/sourcecode?fileId=22211&pathId=1790082120

+0

複雑な流れではないし、長い時間がかかる場合を除いて、WFの価値は実際には分かりません。あなたが指摘したように、同じことを達成するためのカスタムクラスは、WFオーバーヘッドなしではかなり簡単です。 – GalacticCowboy

+1

@ GalacticCowboyこの値は、アプリケーションの本質的な部分であるページフローロジックを単体テストすることです。 – LamonteCristo

4

私たち自身が、あなたの提案に似たアーキテクチャを検討しています。 MVCの部分は主に、Llblgen Pro +カスタムASP.Netテンプレート を使用した自動生成コードです。したがって、ビジネスロジック(およびページワークフロー)を他の場所から制御したいと考えています。

WF 4.0は1つの候補です(再利用可能なアクティビティのライブラリを作成するのは非常に簡単です)が、ステートレスステートマシンは非常に簡単な方法で、維持しやすくなります。 私たちはすでにORMによって生成された永続性レイヤーを持っていますので、いつでも一時停止したワークフローの状態を再開することは大したことではありません。 ステートレスを見て、それが合っているかどうかをお知らせください。

例を説明:例とhttp://blogs.msdn.com/b/nblumhardt/archive/2009/04/16/state-machines-in-domain-models.aspx

顕在VS 2010のコード:https://github.com/haf/Stateless

+0

ようこそStackoverflowへ!私はあなたのコードを数週間で見ていきますが、これを共有してくれてありがとう! – LamonteCristo

関連する問題