DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別で

Similar documents
WPF アプリケーションの 多言語切替

WPF アプリケーションの 多言語切替

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな

Prog2_12th

WPF アプリケーションの 多言語切替

Sparkline for WPF

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

Microsoft PowerPoint ppt

C#の基本2 ~プログラムの制御構造~

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

WPF Bindingの威力

Javaプログラムの実行手順

スライド 1

C#の基本

GUIプログラムⅣ

グラフィックス 目次

Prog2_15th

TOEIC

グラフィックス 目次

PowerPoint プレゼンテーション

Abstract Kinect for Windows RGB Kinect for Windows v Kinect for Windows v2

Silverlight を使用したデータアプリケーション開発手順

< F2D E E6A7464>

JavaプログラミングⅠ

第1章 ビジュアルプログラミング入門

Microsoft PowerPoint - prog03.ppt

基礎計算機演習 実習課題No6

TestDesign for Web

BarCode for WPF

ガイダンス

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

メソッドのまとめ

PowerPoint プレゼンテーション

ガイダンス

SharpShooter Reports.WPF 基本的な使い方 Last modified on: November 15, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されます

プログラミング基礎I(再)

PowerPoint Presentation

JAVA とテンプレート

スライド 1

ICONファイルフォーマット

Microsoft PowerPoint - chap10_OOP.ppt

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Web フォームアプリケーション開発基礎

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値

Java講座

JAVA入門


デジタル表現論・第4回

design_pattern.key

2. データ構造ヒープに保存するデータは 番号付けられて保存される 従って リスト L として保存することとする 3. アルゴリズム 3.1. 要素の追加新しい要素の追加は リストの終端に置くことで開始する つまり 最下層の一番右 または新たに最下層を生成してその一番左となる この後 この要素を正し

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

ガイダンス

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

: : : TSTank 2

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

プログラムの基本構成

Visual Studio Do-It-Yourself シリーズ 第 1 回 Windows ゕプリケーション開発の概要 -1-

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集

A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3,

XAML Do-It-Yourself シリーズ 第 7 回テンプレート -1-

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

ALG ppt

< F2D B825082CC96E291E82E6A7464>

Seasar.NET入門

Prog2_4th

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

ファイル監視

sp2-2.indd

VB.NETコーディング標準

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

ファイル操作

プラグイン

ウィンドウ操作 応用

アルゴリズムとデータ構造1

問題1 以下に示すプログラムは、次の処理をするプログラムである

10-C.._241_266_.Z

Microsoft認定資格問題集(70-483_demo)

人工知能入門

JavaプログラミングⅠ

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

基本情報STEP UP演習Java対策

2

XAML Do-It-Yourself シリーズ 第 1 回 XAML 概要 -1-

Windows 10 IoT Core MVA 2015 August Windows 10 IoT Core ハンズオントレーニング Building and running Github MS IoT Samples on Windows 10 IoT Core 3 章 UWP アプリの開発 L

Android から Windows Phone へ 10 の基本タスク 英語版公開日 : 2011 年 10 月 5 日 ( 水 ) 10:09:24 AM Windows Phone Interoperability サイトは さまざまなスマートフォンプラットフォーム向けにアプリケーションを開発

Prog1_15th

JavaプログラミングⅠ

Extended Library for UWP

Microsoft PowerPoint - prog04.ppt

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

とても使いやすい Boost の serialization

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

データアダプタ概要

ExtendedLibrary for WPF/Silverlight

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

10K pdf

JavaプログラミングⅠ

Transcription:

DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別できます こんなコードを追加 string str = Console.ReadLine(); int コード = int.parse(str); this.userdata["key"] = コード ; this.userdata[" 偶数フラグ "] = ( コード % 2) == 0 ; If-Else アクティビティをぽとぺ 今回はシーケンシャルのコンソール

(bool)this.userdata[" 偶数フラグ "] == true という条件をかく 左から順に評価されていきます 左のブランチの条件を設定します 宣言型 これ Workflow1.rules に記述される そして左右のブランチに CodeActivity を配置する ConditionName に適当に設定 Expression private void codeactivity2_executecode(object sender, EventArgs e) Console.WriteLine(this.UserData["Key"].ToString( ) + " だよ ~~ ん "); private void codeactivity3_executecode(object sender, EventArgs e)

Console.WriteLine(this.UserData["Key"].ToString( ) + " ですよ!!"); 一瞬で消えちゃうので 下に CodeActivity で ReadLine をつける 実行 奇数 偶数 試しましょう

DEMO2 プロジェクト作成 いったん終了 Csproj を開く <ProjectTypeGuids>14822709-B5A1-4724-98CA- 57A101D1B079; 追加で WF が選べないことを確認 いったんスライドに戻る <Reference Include="System.Workflow.Activities" /> <Reference Include="System.Workflow.ComponentModel" /> <Reference Include="System.Workflow.Runtime" /> <Import Project="$(MSBuildExtensionsPath) Microsoft Windows Workflow Foundation v3.0 Workflow.Targets" /> ワークフローの追加ができました コードアクティビティを追加します シーケンシャルワークフローを追加します ここでかならず ( コード ) を選ぶ XOML だとまとも に動かない なぜかは今のところわかりません ダブルクリック デバッグ用なので ブレークポイントを置く

using System.Workflow.ComponentModel; using System.Workflow.Runtime; using System.Workflow.Runtime.Hosting; こんな XAML を追加する FontSize="50"> ワークフローランタイムをメンバに追加 WorkflowRuntime _wr = new WorkflowRuntime(); コンストラクタで ランタイム開始 this._wr.startruntime(); <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Button Content=" ワークフロー開始 " 開始にワークフローを開始するロジックを追加 public void 開始 (object sender, RoutedEventArgs args) Click=" 開始 " Grid.Row="1"/> </Grid> </Window> Cs にイベントを追加する public void 開始 (object sender, RoutedEventArgs args) WorkflowInstance wi = this._wr.createworkflow(typeof(workflow1)); wi.start(); テストブレーク OK Using は 5 個くらい using System.Workflow; using System.Workflow.Activities;

DEMO3 画面の xaml をテキストボックスと テキストブロックを追加した形に変更 <TextBox Text="Binding Path=src"/> <Button Content=" ワークフロー開始 " Click=" 開始 " Grid.Row="1"/> <TextBlock Text="Binding Path=dest" Grid.Row="2"/> プロパティで src, dest を追加する private int _src; public int src get return _src; set _src = value; Workflow 側にも src を追加 private int _src; public int src やってはいけないけど データコンテキストに自身を指定 Using する this.datacontext = this; this.firepropertychanged("src"); private int _dest; public int dest get return _src; set _src = value; using System.ComponentModel; インターフェイス実装する get return _dest; set _dest = value; ここまででテスト, InotifyPropertyChanged this.firepropertychanged("dest"); ファイアを追加する public event PropertyChangedEventHandler PropertyChanged; private void FirePropertyChanged(string propertyname) if (this.propertychanged!= null) this.propertychanged(this, new PropertyChangedEventArgs(propertyname)); パラメータ渡しするように変更 public void 開始 (object sender, RoutedEventArgs args) Dictionary<string, object> dic = new Dictionary<string, object>(); dic.add("src", this.src); WorkflowInstance wi = this._wr.createworkflow(typeof(workflow1), dic); wi.start();

#endregion Dest プロパティを追加 private int _dest; public int dest get return _dest; set _dest = value; 受け渡し実装クラスの登録コンストラクタに追加 ExternalDataExchangeService exservice = new ExternalDataExchangeService(); this._wr.addservice(exservice); 実装 2 倍にするだけ private void codeactivity1_executecode(object sender, EventArgs e) さっきのメソッドを指定する value) 受け渡しクラス uke = new 受け渡しクラス (); uke. 受け渡しデリゲート = delegate(int this.dest = value; this.dest = this.src * 2; 受け渡し実装クラスの作成 public class 受け渡しクラス : I 受け渡し #region I 受け渡しメンバ ; exservice.addservice(uke); 受け渡しインターフェイスを作成 public void 受け渡し (int value) [ExternalDataExchange] public interface I 受け渡し void 受け渡し (int value); if (this. 受け渡しデリゲート!= null) this. 受け渡しデリゲート (value); CallExternalMethod をぽとぺ public Action<int> 受け渡しデリゲート ;

DEMO4 public class 受け渡しクラス : I 受け渡し I 受け渡しを以下のように変更する #region I 受け渡しメンバ [ExternalDataExchange] public interface I 受け渡し void 受け渡し (Guid guid, int value); event EventHandler<ExternalDataEventArgs> 許 public void 受け渡し (Guid guid, int value) if (this. 受け渡しデリゲート!= null) 可 ; this. 受け渡しデリゲート (guid, value); event EventHandler<ExternalDataEventArgs> 不許 可 ; public delegate void 受け渡し delegate(guid guid, int value); Guid を持たせるのは 対話するためのインスタンス番号を public 受け渡し delegate 受け渡しデリゲート ; 戻さなくてはいけないため ワークフロー側にインスタンス GUID を取得するプロパテ ィを追加する public Guid guid get return WorkflowEnvironment.WorkflowInstanceId; 左は許可 右は不許可左のコードアクティビティは 4 倍 右は 1 倍とする 受け渡しクラスは外に出す 受け渡しクラス uke = new 受け渡しクラス (); public event EventHandler<ExternalDataEventArgs> 許可 ; public void Fire 許可 (Guid guid) if (this. 許可!= null) this. 許可 (null, new ExternalDataEventArgs(guid)); 受け渡しクラスは Guid の追加と 許可不許可および それぞれの Fire を追加する

public event EventHandler<ExternalDataEventArgs> 不許可 ; public void Fire 不許可 (Guid guid) if (this. 不許可!= null) this. 不許可 (null, new ExternalDataEventArgs(guid)); 画面のイベントを追加する public void 許可 (object sender, RoutedEventArgs args) uke.fire 許可 (this.guid); public void 不許可 (object sender, RoutedEventArgs args) uke.fire 不許可 (this.guid); #endregion 画面を編集する 4 行目を追加して 許可不許可とする <Grid Grid.Row="3"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.5*"/> </Grid.ColumnDefinitions> <Button Grid.Column="0" Content=" 許可 " Click=" 許可 "/> <Button Grid.Column="1" Content=" 不許可 " Click=" 不許可 "/> </Grid>