SlideShare a Scribd company logo
XAML & XAML 
~ デザイナーリホスティングな世界~
WFをアプリケーションに 
 WFの特徴 
 WorkflowをXAMLとして、保存/読込可能 
 ActivityをDrag&Dropするだけで、実行可能なWorkflowが作成可能 
 つまり、WFを採用するとこんなことができる!? 
 リコンパイル不要で処理のカスタマイズ 
 不要な派生バージョンの増加を抑制 
 エンドユーザに処理フロー構築の明け渡し 
 細かすぎるカスタマイズ案件からの解放
アジェンダ 
 Workflowの実行 
 Workflowの作成 
 CustomActivityの作成
Workflowを実行する 
 WorkflowInvoker 
 Workflowをメソッドのように実行する。 
 呼び出し側は、Workflowの終了を待機する。 
 WorkflowApplication 
 WorkflowのInstanceを作成し、それを管理する。 
 呼び出し側は、Workflowの状態変更を各種Callbackとして受け取る 
 WorkflowServiceHost 
 Workflowをサービスとして実行する(詳細は割愛) 
(参考)WorkflowInvoker とWorkflowApplication の使用 
http://msdn.microsoft.com/ja-jp/library/dd560894%28v=vs.110%29.aspx
Workflowの実行 
 引数・戻値の設定 
 Workflowの実行時読込
Workflowを作成する 
 Visual Studioで、新しい項目の追加→アクティビティ 
← Visual Studioで作成とか、うれしくな 
い。 
⇒ そこで、デザイナー 
リホスティングですよ。
デザイナーリホスティングとは 
 Visual Studio上のWorkflowデザイナを、コントロール化し独自アプリ 
ケーションでも利用できるようにしたもの 
 ただし、現状VB式のみ 
 VisualStudio上のデザイナは.NET4.5よりC#式が利用可能となったので、次期 
バージョンぐらいからC#も対応されないかなぁ(希望
提供されるView 
 WorkflowDesigner 
 DesignView 
 OutlineView 
 PropertyInspector 
 ToolBoxControl
デザイナーリホスティングの基本機能 
 XAMLの読込/保存 
 Drag&Dropによる編集 
 編集中に使用する各種コマンドの提供 
 Cut/Copy/Paste/SelectAll… 
 入力エラーの表示 
とりあえず、作ってみましょう 
⇒Demo
標準では有効にならない機能 
 デフォルトでは、.NET Framework 4.5で強化された機能がOffになってい 
ます。 
 せっかくなので、Onにしておきましょう。 
 http://blogs.msdn.com/b/tilovell/archive/2012/06/05/wf4-5-enabling-new- 
net-framework-4-5-features-in-your-rehosted-designer-application. 
aspx
気を付ける点 
 DesignerMetadataの登録 
 おまじない 
 WorkflowDesignerの初期化 
 WorkflowDesignerはLoadごとに使い捨て 
 Loadしたら、各種Viewも更新 
 ActivityBuilderで初期化すること(引数を使うため) 
 ToolBox 
 ForeachはForEachWithBodyFactoryを使用すること
エディタを強化する 
 標準では用意されていないが、実装次第で機能追加可能 
 インテリセンス 
 実装難易度高 
 IExpressionEditorService とIEXpressionEditorInstance 
 http://blogahf.blogspot.jp/2011/11/iexpressioneditorservice.html 
 Tracking(デバッグ実行・ログ出力) 
 実装難易度中 
 TrackingParticipant とDebugManagerView 
 http://msdn.microsoft.com/en-us/library/ee624139.aspx
CustomActivityの作成 
 既存のActivityの問題点 
 色々なことが出来過ぎてしまう。 
 Primitive過ぎて、一つのWorkflowを組み立てるのが大変。 
 全てをまかなえるとは限らない。 
 CustomActivity作成指針 
 Applicationで必要とされる処理単位で作成するとよい 
 プログラムの構造を意識させない
CustomActivityの作成 
 CodeActivity 
 任意のコードを実行するときに使用するときに便利な、Activityのサブクラス 
 Executeをoverrideするだけお手軽 
 ActivityDesigner 
 Workflow上でのActivityの見た目を表現するための基底クラス 
 WPFのContentControlのサブクラスでもある 
 つまりWPFのXAMLで表現する 
 ExpressionTextBox 
 VB式を解釈して値を取得するために使用するTextBox
まとめ 
 WFアプリケーションお手軽簡単3ステップ 
 CustomActivityで処理単位を適切にまとめる 
 WorkflowDesingerでXAML編集 
 WorkflowInvokerで実行 
 ただし、文献少な目
参考 
 てすとぶろぐ 
 http://blogahf.blogspot.jp/ 
 松崎剛Blog 
 http://blogs.msdn.com/b/tsmatsuz/archive/tags/workflow/ 
 WF Designer Express 
 http://blogahf.blogspot.jp/2011/11/iexpressioneditorservice.html 
 Windows Workflow (WF) Samples 
 http://msdn.microsoft.com/en-us/library/dd483375.aspx

More Related Content

Viewers also liked

とあるアプリの設計進化
とあるアプリの設計進化とあるアプリの設計進化
とあるアプリの設計進化yone64
 
Reactive extensions
Reactive extensionsReactive extensions
Reactive extensions
yone64
 
超LINQ入門
超LINQ入門超LINQ入門
超LINQ入門
yone64
 
Wpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへ
Wpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへWpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへ
Wpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへHiroyuki Mori
 
超Linq入門 実践編
超Linq入門 実践編超Linq入門 実践編
超Linq入門 実践編
yone64
 
ReactiveProperty
ReactivePropertyReactiveProperty
ReactiveProperty
一希 大田
 
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Yuya Yamaki
 
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
Fujikido
 
An other world awaits you
An other world awaits youAn other world awaits you
An other world awaits you
信之 岩永
 
WPF4.5入門
WPF4.5入門WPF4.5入門
WPF4.5入門
一希 大田
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
Sho Okada
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目
cct-inc
 
Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目
cct-inc
 

Viewers also liked (14)

とあるアプリの設計進化
とあるアプリの設計進化とあるアプリの設計進化
とあるアプリの設計進化
 
Reactive extensions
Reactive extensionsReactive extensions
Reactive extensions
 
超LINQ入門
超LINQ入門超LINQ入門
超LINQ入門
 
Wpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへ
Wpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへWpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへ
Wpf・silverlightのアニメーションからwindowsストアアプリのアニメーションへ
 
超Linq入門 実践編
超Linq入門 実践編超Linq入門 実践編
超Linq入門 実践編
 
ReactiveProperty
ReactivePropertyReactiveProperty
ReactiveProperty
 
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。Windowsフォームで大丈夫か?一番良いのを頼む。
Windowsフォームで大丈夫か?一番良いのを頼む。
 
C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門C#/WPFで作るデスクトップマスコット入門
C#/WPFで作るデスクトップマスコット入門
 
An other world awaits you
An other world awaits youAn other world awaits you
An other world awaits you
 
WPF4.5入門
WPF4.5入門WPF4.5入門
WPF4.5入門
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目
 
Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目
 

Similar to XAML & XAML

Nawatech 20131123
Nawatech 20131123Nawatech 20131123
Nawatech 20131123
Tomoyuki Obi
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
Tomoyuki Obi
 
Lt 111217
Lt 111217Lt 111217
Lt 111217
Tomoyuki Obi
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
 
AWS Lambda Update
AWS Lambda UpdateAWS Lambda Update
AWS Lambda Update
Keisuke Nishitani
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
 
Lt 110205
Lt 110205Lt 110205
Lt 110205
Tomoyuki Obi
 
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
友太 渡辺
 
Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"
Kazuyuki Nomura
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
Uemura Yuichi
 
Harmoware-VIS Tutorial
Harmoware-VIS TutorialHarmoware-VIS Tutorial
Harmoware-VIS Tutorial
Nobuo Kawaguchi
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-publicAmazon Web Services Japan
 
Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012
Akio Katayama
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdkKazuki Nakajima
 
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたちService worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
Kinuko Yasuda
 
140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler
OSSラボ株式会社
 

Similar to XAML & XAML (20)

Nawatech 20131123
Nawatech 20131123Nawatech 20131123
Nawatech 20131123
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
 
Lt 111217
Lt 111217Lt 111217
Lt 111217
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
20070310
2007031020070310
20070310
 
AWS Lambda Update
AWS Lambda UpdateAWS Lambda Update
AWS Lambda Update
 
20100218
2010021820100218
20100218
 
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
 
Lt 110205
Lt 110205Lt 110205
Lt 110205
 
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
 
Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"Windows Azure Appfabric as "Middleware as a Services"
Windows Azure Appfabric as "Middleware as a Services"
 
Apache Module
Apache ModuleApache Module
Apache Module
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Harmoware-VIS Tutorial
Harmoware-VIS TutorialHarmoware-VIS Tutorial
Harmoware-VIS Tutorial
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
Service worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたちService worker が拓く mobile web の新しいかたち
Service worker が拓く mobile web の新しいかたち
 
140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler140917運用管理勉強会job scheduler
140917運用管理勉強会job scheduler
 

Recently uploaded

iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 

Recently uploaded (10)

iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 

XAML & XAML

  • 1. XAML & XAML ~ デザイナーリホスティングな世界~
  • 2. WFをアプリケーションに  WFの特徴  WorkflowをXAMLとして、保存/読込可能  ActivityをDrag&Dropするだけで、実行可能なWorkflowが作成可能  つまり、WFを採用するとこんなことができる!?  リコンパイル不要で処理のカスタマイズ  不要な派生バージョンの増加を抑制  エンドユーザに処理フロー構築の明け渡し  細かすぎるカスタマイズ案件からの解放
  • 3. アジェンダ  Workflowの実行  Workflowの作成  CustomActivityの作成
  • 4. Workflowを実行する  WorkflowInvoker  Workflowをメソッドのように実行する。  呼び出し側は、Workflowの終了を待機する。  WorkflowApplication  WorkflowのInstanceを作成し、それを管理する。  呼び出し側は、Workflowの状態変更を各種Callbackとして受け取る  WorkflowServiceHost  Workflowをサービスとして実行する(詳細は割愛) (参考)WorkflowInvoker とWorkflowApplication の使用 http://msdn.microsoft.com/ja-jp/library/dd560894%28v=vs.110%29.aspx
  • 5. Workflowの実行  引数・戻値の設定  Workflowの実行時読込
  • 6. Workflowを作成する  Visual Studioで、新しい項目の追加→アクティビティ ← Visual Studioで作成とか、うれしくな い。 ⇒ そこで、デザイナー リホスティングですよ。
  • 7. デザイナーリホスティングとは  Visual Studio上のWorkflowデザイナを、コントロール化し独自アプリ ケーションでも利用できるようにしたもの  ただし、現状VB式のみ  VisualStudio上のデザイナは.NET4.5よりC#式が利用可能となったので、次期 バージョンぐらいからC#も対応されないかなぁ(希望
  • 8. 提供されるView  WorkflowDesigner  DesignView  OutlineView  PropertyInspector  ToolBoxControl
  • 9. デザイナーリホスティングの基本機能  XAMLの読込/保存  Drag&Dropによる編集  編集中に使用する各種コマンドの提供  Cut/Copy/Paste/SelectAll…  入力エラーの表示 とりあえず、作ってみましょう ⇒Demo
  • 10. 標準では有効にならない機能  デフォルトでは、.NET Framework 4.5で強化された機能がOffになってい ます。  せっかくなので、Onにしておきましょう。  http://blogs.msdn.com/b/tilovell/archive/2012/06/05/wf4-5-enabling-new- net-framework-4-5-features-in-your-rehosted-designer-application. aspx
  • 11. 気を付ける点  DesignerMetadataの登録  おまじない  WorkflowDesignerの初期化  WorkflowDesignerはLoadごとに使い捨て  Loadしたら、各種Viewも更新  ActivityBuilderで初期化すること(引数を使うため)  ToolBox  ForeachはForEachWithBodyFactoryを使用すること
  • 12. エディタを強化する  標準では用意されていないが、実装次第で機能追加可能  インテリセンス  実装難易度高  IExpressionEditorService とIEXpressionEditorInstance  http://blogahf.blogspot.jp/2011/11/iexpressioneditorservice.html  Tracking(デバッグ実行・ログ出力)  実装難易度中  TrackingParticipant とDebugManagerView  http://msdn.microsoft.com/en-us/library/ee624139.aspx
  • 13. CustomActivityの作成  既存のActivityの問題点  色々なことが出来過ぎてしまう。  Primitive過ぎて、一つのWorkflowを組み立てるのが大変。  全てをまかなえるとは限らない。  CustomActivity作成指針  Applicationで必要とされる処理単位で作成するとよい  プログラムの構造を意識させない
  • 14. CustomActivityの作成  CodeActivity  任意のコードを実行するときに使用するときに便利な、Activityのサブクラス  Executeをoverrideするだけお手軽  ActivityDesigner  Workflow上でのActivityの見た目を表現するための基底クラス  WPFのContentControlのサブクラスでもある  つまりWPFのXAMLで表現する  ExpressionTextBox  VB式を解釈して値を取得するために使用するTextBox
  • 15. まとめ  WFアプリケーションお手軽簡単3ステップ  CustomActivityで処理単位を適切にまとめる  WorkflowDesingerでXAML編集  WorkflowInvokerで実行  ただし、文献少な目
  • 16. 参考  てすとぶろぐ  http://blogahf.blogspot.jp/  松崎剛Blog  http://blogs.msdn.com/b/tsmatsuz/archive/tags/workflow/  WF Designer Express  http://blogahf.blogspot.jp/2011/11/iexpressioneditorservice.html  Windows Workflow (WF) Samples  http://msdn.microsoft.com/en-us/library/dd483375.aspx