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

Slides:



Advertisements
Similar presentations
マイクロソフトがホスティングする拡張性に優れたサービス ベース アプリケーション プラットフォーム.
Advertisements

Microsoft VDI 事例とクラウド化. あらためて MS VDI と RDP の進化 3 Windows Server 2012 R2 の標準機能 1 platform 1 experience 4 deployment choices サーバーベースの リモートデスクトップ 旧ターミナル.
この部分こそが必 要とされている ! Runtime 自身と Expression が カバーする!
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
Oscar Koenders Principal Group Program Manager Microsoft Corporation
第28回codeseek勉強会 WPF で簡単ビデオ再生 2008年5月27日(火)
D2-301 現時点の本資料は 完成版のスライドではありません。
MSON-B2 .NET Framework Web アプリケーション開発
Microsoft Consumer Channels and Central Marketing Group
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
C# Programming .NET / C# Group 検索ワードでみる C#の困り事とその対策
3/2/2017 9:01 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
3/3/2017 8:49 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
3/4/ :37 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Expression Blend 3で始めるSilverlight 3アプリケーション開発
ParadoxのLiveScripting事情
Using connected devices in Metro style apps Metro スタイル アプリで デバイスを使用する
3/11/2017 7:02 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
WindowsストアアプリをC++/CXで作る
Windows Summit /13/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
クラウド開発の高速道路 ~Visual Studio 2010 による Windows Azure アプリケーション開発~
Microsoft Consumer Channels and Central Marketing Group
3/15/2017 8:38 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
表紙です.
3/17/2017 1:49 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
データはお客様に属し、かつ、コントロール可能
HP ProLiant DL980 G7 SQL Server 2008 R2 NUMA 環境 ベンチマークテスト結果報告書
ビジネスにおける オープンソースの利用価値
XAML の勉強不要! WPF アプリケーションは作れます
大学におけるクラウド活用の 最新動向と先進ソリューションの 事例
3/21/2017 3:39 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Using tiles and notifications タイルと通知の使用
[コース: A1] .NET Framework の基礎
Windows Summit /6/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /8/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /9/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Microsoft Consumer Channels and Central Marketing Group
9/17/ :05 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
9/17/ :17 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Partner Network Office 365 社内使用ライセンスの有効化
Azure Pack そして災害対策 日本マイクロソフト株式会社 エバンジェリスト 高添 修
11/9/2018 3:35 AM Windows Azure Platform ハンズオン トレーニング Windows Azure アプリケーション開発概要 ~ Windows Azure 入門編 ~ © 2007 Microsoft Corporation. All rights reserved.
11/16/ :27 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows Summit /22/2018 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
Windows Summit /11/23 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
Windows Summit /24/2018 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
[コース: B3] .NET Framework 2.0 分散アプリケーション開発
Expression Blend 3で始めるSilverlight 3アプリケーション開発
Chad Siefert Senior Test Lead Microsoft Corporation
Windows Azure 通知ハブ.
12/9/ :14 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
suppose to be expected to be should be
Microsoft Visual Studio 2005 Tools for
.NET Framework 3.0 概要 (旧称 : WinFX)
Windows Summit /21/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /22/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
MIX 09 2/23/2019 1:22 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Max Morris Principal Program Manager Microsoft Corporation
Windows Summit /24/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
主要関係者の特定用テンプレート Windows 10 and Office 365 導入ステップ 2/24/2019
Yochay Kiriaty Senior Technical Evangelist Microsoft® Corporation
~ 第5回 認証のためのプロキシー Web Application Proxy
Windows Summit /4/10 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Craig Rowland Senior Program Manager Microsoft Corporation
Microsoft Consumer Channels and Central Marketing Group
Windows Summit 2010 © 2010 Microsoft Corporation.All rights reserved.Microsoft、Windows、Windows Vista およびその他の製品名は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
Windows Summit /22/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Azure メディアサービス
Presentation transcript:

[コース: 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.

本日の内容 .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.

.NET Framework 3.0

.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.

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

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

.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.

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 仕様策定・公開 / 標準化中 標準仕様

新規開発フレームワーク(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.

Windows Communication Foundation (WCF)

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.

× 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.

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.

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="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.serviceModel> <services> <service type="ProductService.ProductServiceImpl"> <endpoint address="http://localhost:3000/ProductService/ProductService.svc" 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.

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 アプリケーションとの相互接続での通信

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

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="http://hoge.com:8888/Employee/" /> </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.

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

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 をサポート

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): http://localhost/HelloService/HelloService.svc <!-- サービス実装クラスの型を指定 (ServiceHost を自動生成) --> <% @ServiceHost language="C#" class="HelloService" %>

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="http://hoge.com/Private/Q" /> </client>

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

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

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.

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

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) { // ... } }

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

Windows Workflow Foundation (WF)

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

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

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.

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.

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.

ワークフローの実装 カスタムアクティビティの作成 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.

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.

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.

ワークフローライフサイクルの管理 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.

ワークフローライフサイクルの管理 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.

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

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.

技術情報リソース Windows Vista デベロッパー センター: .NET Framework デベロッパー センター: 11/15/2018 6:18 PM 技術情報リソース Windows Vista デベロッパー センター: http://www.microsoft.com/japan/msdn/windowsvista/ .NET Framework デベロッパー センター: http://www.microsoft.com/japan/msdn/netframework/ Microsoft Windows Workflow Foundation 入門(手引き): http://www.microsoft.com/japan/msdn/windowsvista/general/WWFGetStart.asp MSDN® Workflow Page : http://msdn.microsoft.com/workflow MSDN フォーラム Windows Workflow Foundation ( WF ) : http://forums.microsoft.com/MSDN-JA/ShowForum.aspx?ForumID=799&SiteID=7 © 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.

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.