Presentation is loading. Please wait.

Presentation is loading. Please wait.

[コース: C2] .NET Framework 3.0 WCF/WF アプリケーション開発

Similar presentations


Presentation on theme: "[コース: C2] .NET Framework 3.0 WCF/WF アプリケーション開発"— Presentation transcript:

1 [コース: C2] .NET Framework 3.0 WCF/WF アプリケーション開発
11/15/2018 6:18 PM Microsoft ON ― 出張ワークショップ ― [コース: C2] .NET Framework 3.0 WCF/WF アプリケーション開発 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 本日の内容 .NET Framework 3.0 新しい開発プラットフォームとしての .NET Framework 3.0 の進化(概要)
11/15/2018 6:18 PM 本日の内容 .NET Framework 3.0 新しい開発プラットフォームとしての .NET Framework 3.0 の進化(概要) Windows Communication Foundation (WCF) Windows Workflow Foundation (WF) © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3 .NET Framework 3.0

4 .NET Framework 3.0 新たなビジネスアプリケーションの開発・実行基盤
11/15/2018 6:18 PM .NET Framework 3.0 新たなビジネスアプリケーションの開発・実行基盤 プレゼンテーション コミュニケーション プロセス 認証・アクセス Windows Presentation Foundation (WPF) Windows Communication Foundation (WCF) Windows Workflow Foundation (WF) Windows CardSpace (WCS) .NET Framework 3.0 既存の .NET Framework 2.0 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5 新しい開発プラットフォームとしての .NET Framework 3.0 の進化(概要)

6 パラダイムの進化 オブジェクト、コンポーネントからサービス概念の追加
1980s オブジェクト指向 クラスベース 責務の分離、カプセル化 継承、ポリモーフィズム コンポーネント指向 1990s インターフェイスベース ランタイム メタデータ ダイナミック ローディング サービス指向 2000s スキーマ・コントラクト (マルチプラットフォーム統合) 可変と不変を区別して実装 疎結合 ポリシーによるバインディング .NET Framework 3.0 で サービス指向開発が選択可能 実装再利用 技術 バイナリ 再利用技術 可変実装 技術

7 .NET Framework 3.0 における開発の変化 サービス実装採用の際の分析・設計への留意
11/15/2018 6:18 PM .NET Framework 3.0 における開発の変化 サービス実装採用の際の分析・設計への留意 サービス指向4原則 (by Don Box, Microsoft) 境界は明確であること 業務分析 (要件定義) サービスは自律していること クラスでなく スキーマ/コントラクトを共有すること ポリシーベースの互換性を持つこと デメテルの法則 システム分析 「知らないやつには話しかけない」 システム設計 × A B C D E F G X 実装・ 単体テスト Operation Context Operation Context 結合テスト DSM (The Design Structure Matrix) によるサービス抽出 ・・・・ ツールの技術だけでは、”サービス指向” の恩恵は手に入らない! (技術 + 方法) © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

8 WS-* アーキテクチャ .NET Framework 3.0 が参照する OASIS 標準
Management & Device Metadata WS-Management WS-Enumeration WS-Discovery WS-Metadata Exchange WS-Transfer DP4WS (Devices Profile for Web Services) WS-Security Policy Assurances WS-Security WS-Federation WS-Coordination WS-Policy WS-Trust BPEL4WS (Business Process Execution Language for Web Services) WS-Atomic Transaction UDDI 2.0 WS-Secure Conversation WS-Reliable Messaging WS-Business Activity WSDL 1.1 Messaging WS-Addressing WS-Eventing MTOM (Message Transmission Optimization Mechanism) XML Schema Foundation XML 1.0 XML Namespaces XML Infoset HTTP HTTPS SOAP 1.1/1.2 仕様策定・公開 / 標準化中 標準仕様

9 新規開発フレームワーク(3.0 WCF/WF) がもたらす その他のメリット
11/15/2018 6:18 PM 新規開発フレームワーク(3.0 WCF/WF) がもたらす その他のメリット WS-* に伴う動作仕様の大幅拡張 XML Web サービスで、ASP.NET認証、独自認証の組み込みが可能 WebMethod がトランザクションに参画可能 (従来はルートトランザクション作成のみ) など テスト時などにおける通信実装の切り替え(変更)が容易 ワークフローエンジンと利用スキルの統一 (SharePoint, BizTalk, など) © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

10 Windows Communication Foundation (WCF)

11 WCF のビジネスインパクト 通信処理の統一、ビジネスロジックとの分離
11/15/2018 6:18 PM WCF のビジネスインパクト 通信処理の統一、ビジネスロジックとの分離 .NET Remoting ASMX 異種プラットフォームとの相互運用 位置透過な リモート オブジェクト 属性ベースの プログラミングと オブジェクト コンテナ メッセージ指向の プログラミング WS-* プロトコル サポート Enterprise Services System.Messaging WSE © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

12 × WCF の価値 そのメリット全般 高度にデザインされた通信実装モデルを提供 分散アプリケーション開発の保守性の向上
11/15/2018 6:18 PM WCF の価値 そのメリット全般 高度にデザインされた通信実装モデルを提供 通信テクノロジーをビジネスロジックと分離 Contract-First デザイン 分散アプリケーション開発の保守性の向上 × チューニング結果に応じた通信方法の変更容易性や、移行の迅速化、など Web サービス標準に準拠した相互運用性の実現 WS-* 標準仕様のフルサポート 既存のテクノロジとの互換性、コンフィグレーションによる 他プラットフォームとの接続 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

13 WCFのデザインコンセプト 処理の基本は “A・B・C”
11/15/2018 6:18 PM WCFのデザインコンセプト 処理の基本は “A・B・C” 内部的なサービス内の振る舞いを実装 並列処理、インスタンス化制御 Fault、Exception 処理 偽装、認証、認可 トランザクションの自動参加・投票 etc … クライアント サービス Behavior Endpoint Endpoint Behavior Message A B C A B C Behavior Behavior Endpoint Address Binding Contract Where? How? What? © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

14 WCF のサービス実装 コントラクトとコンフィグレーション
11/15/2018 6:18 PM WCF のサービス実装 コントラクトとコンフィグレーション サービスコントラクト データコントラクト using System.ServiceModel; [ServiceContract] public interface IProductServiceContract { [OperationContract] Product[] GetProducts(); } [DataContract] public class Product { [DataMember] public int ProductID; public string ProductName; ・・・・ サービスコンフィグレーション <?xml version="1.0" encoding="utf-8" ?> <configuration xmlns=" <system.serviceModel> <services> <service type="ProductService.ProductServiceImpl"> <endpoint address=" binding="basicHttpBinding" contract="ProductService.IProductServiceContract, ProductService" /> </service> </services> </system.serviceModel> サービス実装のタイプ情報 Namespace.Class 名 A B C サービスコントラクトのタイプ情報 Namespace.Class 名 コントラクトのアセンブリ名 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

15 WCF のサービス実装 バインディングの種類
標準バインディング セット(要件にマッチしない場合は CustomBinding を使用) バインディング名 .config 要素 説明 BasicHttpBinding <basicHttpBinding /> WS-I Basic Profile に準拠した相互運用性の高い Web サービスによる通信 WsHttpBinding <wsHttpBinding /> WS-* プロトコルを使用した高機能な Web サービスによる通信 WsDualHttpBinding <wsDualHttpBinding /> WS-* プロトコルを使用した高機能な Web サービスによる非同期双方向での通信 NetTcpBinding <netTcpBinding /> .NET to .NET に最適化された高速マシン間の通信 NetNamedPipeBinding <netNamedPipeBinding /> .NET to .NET に最適化されたマシン内プロセス間の最速度通信 NetMsmqBinding <netMsmqBinding /> MSMQ による WCF アプリケーション間の通信 MsmqIntegrationBinding <msmqIntegrationBinding /> 既存の MSMQ アプリケーションとの相互接続での通信

16 WCF のサービス実装 バインディングごとのサポート機能
バインディング 名 通信プロトコル 相互運用性 通信区間 エンコーディング セキュリティ セッション リライアビリティ トランザクション メッセージング パターン BasicHttpBinding HTTTP HTTPS WS-I BP 1.1 BSP 1.0 Cross- machine Text T | M Mixed Simplex Request-Reply WsHttpBinding HTTP HTTPS WS-* Text MTOM ü D WsDualHttpBinding HTTP Text MTOM M Simplex Request-Reply Duplex NetTcpBinding TCP .NET (WCF) Binary NetNamedPipeBinding Named-Pipe Cross- process T Simplex Request-Reply Duplex NetMsmgBinding MSMQ T | M Q Simplex MsmqIntegrationBinding

17 WCF のサービス実装 Endpoint の定義
11/15/2018 6:18 PM WCF のサービス実装 Endpoint の定義 一般には、構成ファイル (.config) で定義(下記) Self ホスティング(後述)でコードで定義することも可能 <system.ServiceModel> <services> <service type="EmployeeService"> <!-- Endpoint の定義 --> <endpoint contract="IEmployeeService" binding="netTcpBinding" bindingConfiguration="SampleBinding" address=" /> </service> </services> <bindings> <netTcpBinding> <binding name="SampleBinding" transactionFlow="true" /> </netTcpBinding> </bindings> </system.ServiceModel> © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

18 WCF のサービス実装 Behavior の定義
ServiceBehavior 属性 サービス レベルでの振舞いを定義 OperationBehavior 属性 オペレーション レベルでの振舞いを定義 [ServiceBehavior( TrasactionIsolationLevel = IsolationLevel.Serializable )] public class EmployeeService : IEmployeeService { [OperationBehavior( TransactionAutoComplete = true, TransactionScopeRequired = true )] public void Regist( Employee employee ) { // ... } }

19 WCF のサービス実装 サービスホストによるホスティング(1)
ServiceHost クラスを使用する ホスティング可能なアプリケーション形態: スタンドアロン (WPF、WindowsForm、コンソール) NT サービス ASP.NET (IIS 5.1、6.0) ※ HTTP(S) のみサポート WAS (Windows Activation Service: IIS7) ※ HTTP(S)、TCP、MSMQ、Named-Pipe をサポート

20 WCF のサービス実装 サービスホストによるホスティング(2)
Self-hosting: // サービス実装クラスの型を指定して、サービス ホストを生成 ServiceHost host = new ServiceHost( typeof( HelloService ) ); // ... (Endpoint の追加処理) // サービス ホストを起動 host.Open(); // ... (中略) // サービス ホストを停止 host.Close(); ASP.NET/WAS-hosting (IIS 5.1/6.0、IIS7): <!-- サービス実装クラスの型を指定 (ServiceHost を自動生成) --> language="C#" class="HelloService" %>

21 WCF のクライアント実装 クライアントチャネルを使用する場合
ChannelFactory<T> クラス サービス コントラクトに対応するクライアント チャネルを生成するファクトリークラス // サービス コントラクトに対応するクライアント チャネルのファクトリーを生成 // (.config のクライアント用 Endpoint 名を指定) ChannelFactory<IMyService> factory = new ChannelFactory<IMyService>( "SampleEndpoint" ); // ChannelFactory からクライアント チャネルを生成 IMyService mySvc = factory.CreateChannel(); // サービス コントラクトのオペレーションを呼び出す mySvc.Hello( "How are you ?" ); // クライアント チャネルを破棄 ( (IChannel)mySvc ).Close(); <client> <!-- Endpoint の定義 --> <endpoint name="SampleEndpoint" contract="IMyService" binding="netMsmqBinding" address=" /> </client>

22 WCF のクライアント実装 プロキシを使用する場合
ツールでプロキシを生成可能 SvcUtil.exe (Service Metadata Utility Tool) サービスのメタデータ (WSDL、WS-MEX) から、プロキシのコードや構成情報 (.config) を生成 Visual Studio から「Web 参照」ライクにプロキシを生成することも可能 svcutil /config:app.config

23 WCF のアシュアランス 4つのアシュアランス
セキュア (Secure) リライアブル (Reliable) トランザクテッド (Transacted) インターオペラブル (Interoperable)

24 WCF のアシュアランス セキュリティ 機密性、完全性 認証、認可 セキュリティはバインディングの機能
11/15/2018 6:18 PM WCF のアシュアランス セキュリティ 機密性、完全性 セキュリティはバインディングの機能 標準的なバインディングはデフォルトでセキュア BasicHttpBinding 以外 アプリケーションデータは暗号化され署名される 認証、認可 X.509 証明書、ユーザーネーム/パスワード、Kerberos、SAML、カスタム <behaviors> <behavior name = "credentialConfig"> <serviceCredentials> <serviceCertificate storeLocation="LocalMachine" storeName="My" findValue="purchase.com" x509FindType="FindBySubjectDistinguishedName"/> </serviceCredentials> </behavior> </behaviors> © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

25 WCF のアシュアランス リライアビリティ 信頼できる End-to-End のメッセージングを提供 順序保証(オプショナル)
Exactly Once (正確な1回のメッセージ保証、重複メッセージの排除) WS-ReliableMessaging を使用 <bindings> <wsHttpBinding> <binding name="Binding1"> <reliableSession enabled="true" ordered="true" /> </binding> </wsHttpBinding> </bindings>

26 WCF のアシュアランス トランザクション System.Transactions と連携可能
WS-AT (WS-AtomicTransaction) をサポート MS-DTC が WS-AT、WS-Coordination に対応 [ServiceContract] public interface IMyContract { [OperationContract] [TransactionFlow( TransactionFlowOption.Required )] bool Transfer1( Account from, Account to, decimal amount ); } [ServiceBehavior()] public class MyService : IMyContract { [OperationBehavior( TransactionScopeRequired = true, TransactionAutoComplete = true )] public bool Transfer1(Account from, Account to, decimal amount) { // } }

27 WCF のアシュアランス インターオペラビリティ
Web サービスによる相互運用性 IETF、W3C、OASIS などの標準化団体による Web サービス標準仕様 (WS-*) の策定 WS-I による Web サービスの相互運用に対する取り組み Web サービス標準仕様に基づいた相互運用のガイドラインの作成やテストツールを公開 Basic Profile WS-I Basic Profile 1.0/1.1 WS-I Basic Security Profile 1.0

28 Windows Workflow Foundation (WF)

29 WF のビジネスインパクト WF の2つの目的 サービス指向 型プロセス管理(統合)の支援
ワークフローのビジュアルなデザインと変更 カスタムアクティビティの開発者とフローの作成者の分離 Windows プラットフォームにおけるワークフロー ソリューションの テクノロジー統一 すべてのワークフローテクノロジーにおける統一基盤の提供(Microsoft Office Sharepoint Server 2007, など) システム ワークフロー/ヒューマン ワークフローの双方を想定 シーケンシャルワークフロー/ステートマシンワークフローの双方を想定

30 WFの価値 役割分担の明確化 (適材適所のワークフロー管理)
ワークフロー開発 ほぼコードレス、フローの記述 Application Workflows フロー ロジック PDCA型の ビジネスフロー進化 (社員力の活用) ホスト開発 アプリケーションサービス&ホスト Runtime カスタム・アクティビティ Services カスタムサービス アクティビティ開発 個別の機能や値評価ロジック等

31 WFの価値 統一的ワークフロープラットフォームの提供
11/15/2018 6:18 PM 18/11/15 18時18分 WFの価値 統一的ワークフロープラットフォームの提供 ヒューマンワークフロー システムワークフロー コラボレート型プロセス トランザクション型プロセス 活用例: 口座開設、ローン申請、ドキュメント承認、etc 活用例:明細書の発行、ルーチン型データ転送、etc 活用例: 機関間の料金請求と決済、サプライチェーン etc 活用例: 相場連動型ポートフォリオリスク計算(自動売買)、etc ヒューマン ワークフロー バッチ システム間連携 状態機械 (データー駆動型) 個人・チーム 機能 システム アプリケーション アクティビティ複雑性 / 流動性レベル © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

32 Visual Studio Workflow デザイナー
11/15/2018 6:18 PM WFの構成 ランタイムと標準ライブラリ Visual Studio Workflow デザイナー カスタムデザイナー ホストプロセス (exe, Windows サービス, ASP.NET, etc..) アクティビティ カスタム アクティビティ Structured State Machine Rules アクティビティ フレームワーク Validation Compilation Serialization Visualization Transactions Fault Handling Cancellation Compensation ワークフローランタイム Scheduling Instance Mgmt ランタイムサービス Loader Persistence Threads Transactions Tracking © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

33 WF の実装 ワークフロー定義 ワークフローの定義 (XOML) ワークフローの実行
11/15/2018 6:18 PM WF の実装 ワークフロー定義 ワークフローの定義 (XOML) <?Mapping XmlNamespace="Activities" ClrNamespace="System.Workflow.Activities" Assembly="System.Workflow.Activities" ?> <SequentialWorkflow x:Class="MyWorkflow" xmlns="Activities" xmlns:x="Definition"> </SequentialWorkflow> ワークフローの実行 static void Main(string[] args) { // WorkflowRuntime の作成 WorkflowRuntime workflowRuntime = new WorkflowRuntime(); // workflow の型をロード   Type type = typeof(MyWorkflow); // workflow インスタンスの作成/ワークフローの開始 workflowRuntime.StartWorkflow(type); // WorkflowRuntime の終了まで待機 waitHandle.WaitOne(); } © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

34 ワークフローの実装 カスタムアクティビティの作成
11/15/2018 6:18 PM ワークフローの実装 カスタムアクティビティの作成 例:メール送信アクティビティ using System.Workflow.ComponentModel; public partial class SendMail : System.Workflow.ComponentModel.Activity { public SendMail() { InitializeComponent(); } protected override Status Execute(ActivityExecutionContext context) // メール送信の実装をここに記述する return Status.Closed; } public partial class SendMail public string subject; public string Subject { get { return subject; } set { this.subject = value; } } private void InitializeComponent() // Designer により生成 this.ID = "SendMail"; © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

35 2 種類のワークフロー シーケンシャルワークフロー
11/15/2018 6:18 PM 2 種類のワークフロー シーケンシャルワークフロー シーケンシャルワークフローは、段階(Step)から構成される 開始から終了まで、段階を逐次実行する 段階には、条件分岐、反復等が含まれる A1 A2 A3 A4 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

36 2 種類のワークフロー ステートマシンワークフロー
11/15/2018 6:18 PM 2 種類のワークフロー ステートマシンワークフロー ステート マシン ワー クフローは、「状態(ス テート)」の集合から構 成される 所定の状態では、一 組の「イベント」を受信 できる 状態「遷移」の境界で 受信したイベントを基 に、「アクション」が実 行される S1 S2 S3 S4 S5 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

37 ワークフローライフサイクルの管理 Workflow インスタンスの制御
11/15/2018 6:18 PM ワークフローライフサイクルの管理 Workflow インスタンスの制御 WorkflowInstance オブジェクトを通して制御 実行中のワークフローとの接点 永続化サービスを用いた自動ロードのインスタンス Auto-loads instance using PersistenceService ライフサイクル管理と永続化の操作 Abort, Terminate, Suspend, Resume Load, Unload オペレーションは WorkflowRuntime イベントに対応 private void TerminateButton_Click(object sender, EventArgs e) { WorkflowInstance workflowInstance = workflowRuntime.GetWorkflow(Program.workflowInstanceId); workflowInstance.Terminate("Terminating Case, Problem was resolved"); } © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

38 ワークフローライフサイクルの管理 WorkflowRuntime イベント
11/15/2018 6:18 PM ワークフローライフサイクルの管理 WorkflowRuntime イベント キーコンセプト 2種類のイベント – ワークフローインスタンスとランタイム イベントを処理するハンドラーの定義が必要 ワークフローインスタンスが実行されているスレッドから呼び出される ワークフローインスタンスのライフサイクル ワークフローインスタンスのステータスの変化を管理 Aborted, Terminated, Started, Completed, etc. EventArgs はイベントを発生させたワークフローのワークフローインスタンスIDを含む WorkflowInstance への操作もしくはワークフローの実行を通して引き起こされる 例 Terminate アクティビティの実行が WorkflowRuntime.WorkflowTerminated イベントを引き起こす ワークフローランタイムのライフサイクル ワークフローランタイムのステータスの変化を管理 Started, Stopped 例 管理ツールでの制御、アプリケーション/OS のシャットダウン © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

39 ワークフローインスタンスのライフサイクル インスタンスごとに分離されたマネージスレッド
ワークフローインスタンスはホストアプリケーションとは別々のマネージスレッド上で実行 ・ホストアプリケーションとは別のマネージスレッド上で動作 ・スレッドプール上で実行 ワークフローランタイム Workflow Instance InstanceId=25b27c73-c acb1-0e458b8ffa54 Workflow Instance InstanceId=a947e517-0b5a b61fb1802 ・ホストアプリケーションとワークフローインスタンスとの間でのデータの受け渡しが必要 ホストアプリケーション(exe, ASP.NET 等)

40 WF の進んだトピック 標準アクティビティ ルール、ポリシー ランタイムサービスとそのカスタマイズ
11/15/2018 6:18 PM WF の進んだトピック 標準アクティビティ CAG (Conditioned Activity Group), トランザクション、等 ルール、ポリシー ランタイムサービスとそのカスタマイズ トラッキングサービス、永続化サービス、等 ビジュアルデザイナーをアプリケーション内で再利用可能 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

41 技術情報リソース Windows Vista デベロッパー センター: .NET Framework デベロッパー センター:
11/15/2018 6:18 PM 技術情報リソース Windows Vista デベロッパー センター: .NET Framework デベロッパー センター: Microsoft Windows Workflow Foundation 入門(手引き): MSDN® Workflow Page : MSDN フォーラム Windows Workflow Foundation ( WF ) : © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

42 11/15/2018 6:18 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "[コース: C2] .NET Framework 3.0 WCF/WF アプリケーション開発"

Similar presentations


Ads by Google