2011年4月21日木曜日

StateMachine 関連アクティビティ

先日 .NET Framework 4 Platform Update 1 がリリースされ、今まで CodePlex で公開されていた Statemachine アクティビティ関係が正式に採用されました。同時に UnitTesting 関係のライブラリも採用されていたりと、Workflow 使いにはなかなか嬉しい更新です。

・・・が、自分の環境ではそれらのパッチが適用されてくれないので実物には触れてません。

調べているとどうやら CodePlex のものをベースに名前空間が変わった点と、機能強化されている点が追加されているとのことですので、今までの CTP 版を触っておくことも無意味ではないと信じたいのもあり、少しばかり触ってみました。

まずCTP版をリホスティング環境で利用するには少々事前準備が必要です。関係するdllの参照設定はいいとして、メタデータの更新が必要になります。

  1: Dim smReg As New Microsoft.Activities.Statements.Design.DesignerMetadata
  2: smReg.Register()


ロジックとしては上記の通りになります。そしてToolBoxItemとして登録するクラスも少々注意が必要です。




  • .Microsoft.Activities.Statements.Design.ToolboxItems.StateMachineWithInitialStateFactory:StateMachine アクティビティ


  • Microsoft.Activities.Statements.State:State アクティビティ


  • Microsoft.Activities.Statements.Design.ToolboxItems.FinalState:FinalState アクティビティ



StateMachine アクティビティと FinalState アクティビティのみ特殊になります。



大雑把にいうと、StateMachine アクティビティは本体、State アクティビティはその内部で状態毎に用意するアクティビティ、FinalState アクティビティは終了点です。そしてツールボックス上には用意できませんが、Transition アクティビティというものがあります。これは State アクティビティより別アクティビティに対して引かれる線になります。それぞれの設定については次回以降の記事に書きますが、利用シーンとしてこのような形が考えられる、というサンプルを貼っておきます。



StateMachineSample



状態とその遷移を上手くまとめられると、非常に使い出のある Workflow になると感じています。

0 件のコメント:

コメントを投稿