数年前(WFが存在する前)、私はカスタムワークフローエンジンに取り組みました。これは次のように機能しました:ワークフロー(定義と呼ばれる)を設計し、特定のタイプの作業項目をその定義に関連付け(例:ワークフロー定義Xはウィジェットを処理します)、1つのインスタンスを作成することにより、さまざまな状態と遷移を通じてその作業項目を処理します作業項目ごとのその定義の。
作業項目はIWorkItemインターフェイスを実装し、一種のステートマシンとして処理できるようにしました(たとえば、現在の状態と、それを制御するためのRun、Stop、Pauseなどの一連のメソッドがありました)。
Windowsワークフローでは、作業項目をどのように定義しますか?SQL Serverデータベースでモデル化されたカスタムエンティティにすることはできますか?特定のフィールドを指定する必要がありますか?コードでそれを表すオブジェクトは、特定のインターフェイスを実装する必要がありますか?基になる行データの観点から、永続性/非永続性にどのように対応しますか?データベースに簡単にクエリを実行して、エンティティの状態を取得するにはどうすればよいですか?