2009-07-04 4 views
0

1)コードとCallexternalメソッドの違いは何ですか?Workflow Foundationに関するいくつかの質問

2)遅延などの構造を使用すると、メソッド内でコード化することができます。コードの代わりにワークフローでそれを実行すると、どのようなメリットがありますか?

3)ワークフロー駆動のCMSを作成しようとしています。列挙の状態(選択値)に応じてページが公開されます。これを行うには、私は乱雑に感じる背後のワークフローコードに型変数が必要です。それでも、どのように私はIfElseブロックに?私はそのコンストラクタで列挙を設定し、別のプロジェクトでのWebページのオブジェクトを持っている場合(revisionStatus = RevisionStatus.Publish)」と言うことができます。

おかげ

答えて

1

1)コードは、アクティビティメソッドスタブをワークフローと同じクラスに配置します(ワークフローデザイナーはWindowsフォームデザイナーと同じように動作します)。プロジェクトの[すべてのファイルを表示]をクリックすると、ワークフローが自動生成されたデザイナークラス)
CallExternalMethodは、別のクラスに存在するメソッドを呼び出します。したがって、すべてのロジックをワークフローと同じクラスに入れる必要はありません。通常どおりに他のクラスに渡すことができます。

2)アプリケーションの動作の重要な部分であるかどうかは、ワークフロー上で確認するのがいいと思います(何が起こっているのかを視覚的に把握することができます)。また、ワークフロー遅延アクティビティでは、ワークフローはアイドルとしてマークされます。したがって、Persistenceサービスを使用している場合、作業フローはこの時点で自動的に永続化されます。また、ワークフロー外から取り上げることができるWorkFlow OnIdleイベントもあります。これがコード経由の遅延に当てはまるかどうかはわかりません。

3)私はこのことを正しく理解しているかどうかはわかりません。ワークフローに何かを渡す場合は、バインドするプロパティ/フィールドが必要ですが、型定義は同じクラス/アセンブリ内にある必要はありません。仕事の流れが住んでいるプロジェクトがEnumが住んでいるものを参照できる限り、あなたは大丈夫でしょう。
ifブランチをクリックし、プロパティを選択します。条件ボックスをクリックし、* Declarative Rule Condition *に変更します。あなたの条件に名前をつけて、通常のコードのようにIf式をExpressionボックスに入力します。

関連する問題