WF概論

Windows Workflow Foundation
of .NET Framework 3.0
tk-engineering.com
Copyright© 2006 tk-engineering.com All rights reserved.
An apology


デモが主体なので、
このスライドだけでは解りにくい
かもしれません。
では、気を取り直して行ってみましょう。
Copyright© 2006 tk-engineering.com All rights reserved.
まず初めに

Windows Workflow Foundation とは
• .NET Framework 3.0 の中核機能の一部

かといって、WPF等のような「見た目の派手さ」はない
• 地味なだけに、「何をするか」よくわからない
• Workflowっていうけど、
要するに何がしたいのよ?
Copyright© 2006 tk-engineering.com All rights reserved.
Workflowとは

そもそも何よ?
• 「何か」の流れをあらわすモノ


古典的なフローチャートも、”Workflow”
UMLだって、”Workflow”
• しかし、ロジックをフローチャートから書き起こすこ
とは、めったに無い。

さらに、保守されることは、もっと稀
• →だったら、フローチャートがそのまま動けば…
Copyright© 2006 tk-engineering.com All rights reserved.
[参考]
フローチャートによるコーディング

COBOLの世界からすでに存在
• 少なくとも、95年には、Jackson Treeから
コーディングする手法が存在。
• 構造化プログラミングの基本要素を満たす

構造変更の際には、Treeも変更される。
Copyright© 2006 tk-engineering.com All rights reserved.
基本的なワークフロー @ WF

Sequential
• そのまま、フローチャート的なWorkflow

State Machine
• 状態遷移図のようなWorkflow


この二つのWorkflowが標準でサポートされる
詳しくはDemoで!
Copyright© 2006 tk-engineering.com All rights reserved.
DEMO – Sequential

例によって、”Hello World”
•イベントログに出力します

見所:”Took Box”にご注意ください。
Copyright© 2006 tk-engineering.com All rights reserved.
さらにDEMO – State Machine

例によって、”Hello World”
•イベントログに出力します
見所:”Took Box”にご注意ください。
 加えて、プロジェクトの構成にご注意。

Copyright© 2006 tk-engineering.com All rights reserved.
今のDEMOの見所

メインのAPとワークフローの関係に注意
• この場合、メインAPはワークフローの
”Hosting Application”と呼ばれます。
• 使用している”Runtime”,”Instance”などに注
意してください。

ExternalDataExchange属性にも注意
Copyright© 2006 tk-engineering.com All rights reserved.
更に見所

ワークフローを定義するXML(xoml)が
見当たらなかったことに注意してください。
• やり方は後ほど…


このアプリを途中で中断すると…
内容は失われます!
さらに、記録も残りません。
Copyright© 2006 tk-engineering.com All rights reserved.
しつこく見所

ホストAPとWFは、同一プロセスで動作します

ですが、別スレッドの模様です
• ホストAPはWFの終了を待ちません。

ウッカリすると、Exceptionが返されます。
• 微妙なタイミング制御に使わないほうが吉?

→だから、パラメータオブジェクトが…
• インターフェイスが必要で…
• 「シリアライズ可能」なのです…

きっと…
Copyright© 2006 tk-engineering.com All rights reserved.
忘れちゃいけない、”Activity”

ToolBoxに並んでいたアレです。
• 並んでいるのは、「標準品」です。
• 自前のActivityを作ることには問題はありません。
…どころか、推奨されています。


Activityの目指すところは、VB6のOCX !?
つまり、「共通部品化」をも視野に入れる。
Copyright© 2006 tk-engineering.com All rights reserved.
要するにWFは何をしたいのか




“むき出しのエンジン”としての、
Workflowエンジン
基本的なAPIはそろっている。
あとはあなた次第。
カスタムActivityで幸せに
他システム連携などのややこしいところは、
WFで外出しに。
Copyright© 2006 tk-engineering.com All rights reserved.
(参考)BizTalkとの違い

似たもの同士と言うことで、BizTalkとの違い
• BizTalkは…


それ自体で「製品」です。
外部システムとの連携を制御するのに適しています。
• WFは…



製品を作るための「部品」です
お好みの機能をつけて、良いように使ってください。
ビジネスロジックを実装するのに適しています。
Copyright© 2006 tk-engineering.com All rights reserved.
参考文献

…英語ばっかりなんですけど、
何とかしてください。Microsoftさん…
• MSDN – Windows Workflow Foundation
http://msdn2.microsoft.com/en-us/netframework/aa663328.aspx
• MSDN Library - .NET Development – WF
http://msdn.microsoft.com/library/default.asp?url=/library/enus/WF_GetStart_MSDNLive/html/feaec6ba-1653-434a-b0c3-c6d27b5fe540.asp
• WFに関する総合ポータル
http://wf.netfx3.com/
• MSDN Vista デベロッパーセンター –
Windows Workflow Foundation 入門 (ja-jp)
http://www.microsoft.com/japan/msdn/windowsvista/general/WFGetStart.aspx
Copyright© 2006 tk-engineering.com All rights reserved.