WCF (Indigo): Under the Hood of the Channel Layer

Slides:



Advertisements
Similar presentations
3/25/2017 8:53 AM Windows Communication Foundation (“Indigo”): A Deep Dive Into Extending The Channel Layer Kenny Wolf, Software Development Engineer.
Advertisements

Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright.
WCF Intro Scott Reed Owner - Brain Hz Software Instructor – DevelopMentor
Windows Communication Foundation and Web Services.
The Microsoft Technical Roadshow 2006 Windows Communication Foundation Mike Taulty Developer & Platform Group Microsoft Ltd
Module 13: WCF Receive Adapters. Overview Lesson 1: Introduction to WCF Receive Adapters Lesson 2: Configuring a WCF Receive Adapter Lesson 3: Using the.
1 Building Distributed Asynchronous Applications With SQL Service Broker Gerald Hinson, Roger Wolter DAT303 Dev Lead Microsoft Corporation.
1 Building Management Applications with SQL Server “Yukon” SQL Management Objects (SMO): Overview Bruce Prang Development Manager Microsoft Corporation.
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
Future Directions for Leveraging Advanced XML Tools and Building Custom XML Solutions Denise Draper DAT321 Microsoft Corporation.
Christian Weyer thinktecture.
Case Study: Revolutionizing Microsoft Axapta Mike Ehrenberg COML01 Architect, Microsoft Business Solutions Microsoft Corporation.
1 Developing Rules Driven Workflows in Windows Workflow Foundation Jurgen Willis COM318 Program Manager Microsoft Corporation.
CON 413 Justin Smith Technical Evangelist
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Introduction to Windows Communication Foundation Ruwan Wijesinghe.
Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation.
Using the Actions Pane, Host Controls, and Smart Tags
Module 14: WCF Send Adapters. Overview Lesson 1: Introduction to WCF Send Adapters Lesson 2: Consuming a Web Service Lesson 3: Consuming Services from.
1 Windows Communication Foundation: Integrating COM+ and MSMQ Applications Andy Milligan COM305 Program Manager Microsoft Corporation.
1 “Indigo”: Services And The Future Of Distributed Applications Don Box Architect Microsoft Corporation here –
DAT 379 XML Today And Tomorrow Mark Fussell Lead Program Manager Microsoft Corporation.
A Deep Dive into Best Practices with the Windows Communication Foundation John Justice COM415 Program Manager Microsoft Corporation.
Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program.
10 – 12 APRIL 2005 Riyadh, Saudi Arabia. Visual Studio 2005 : New Features for the Web Services Developer Malek Kemmou CEO Arrabeta Consulting Microsoft.
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
Mahesh Krishnan, Senior Consultant, Readify Slide 1.
COM326: Web Services for XML Programmers Doug Purdy Lead Program Manager Connected Systems Division.
Lap Around Windows Presentation Foundation Rob Relyea PRS305 Lead Program Manager Windows Presentation Foundation
Web Services Error Handling and Debugging. Agenda Simple SOAP faults Advanced SOAP faults SOAP headers and faults Error handling From a Service Perspective.
Kemal Baykal Rasim Ismayilov
Windows Communication Foundation David Anderson Independent Software Developer DCOM Productions.
Presentation 24: Windows Communication Foundation Introduced Objektorienteret Netværkskommunikation.
Dhananjay Kumar MVP-Connected System 1. WCF  Agenda What is WCF ? Why WCF? Address, Binding, Contract End Points Hosting Message Patterns Programming.
Windows Communications Foundation ("Indigo"): Writing Secure Distributed Applications Martin Gudgin COM312 Program Manager Microsoft Corporation.
Shani Raba Team Leader & Software Architect
BizTalk Damir Dobric Lead Architect. Agenda Microsoft BizTalk RFID Overview Architecture Application models Implementing Event Handlers Sensors.
The Mechanics of HTTP Requests and Responses and network connections.
3 Ways to Integrate Business Systems to Partners
Windows Communication Foundation and Web Services
Mike Harsh PRSL001 Program Manager Microsoft Corporation
4/12/2018 2:37 PM Windows Communication Foundation: Migration, interop, upgrade, and integration Risman Adnan ISV Lead, Microsoft Indonesia
Web Services On Devices: Rally Implementation
5/22/2018 3:04 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Sabri Kızanlık Ural Emekçi
Avalon – Using Data In Your Applications
Windows Communication Foundation (WCF)
2007 Office System Integration
Shanku Niyogi PRS 312 Group Program Manager Microsoft Corporation
Microsoft Dynamics.
Windows Communication Foundation and Web Services
Customizing your device experience with assigned access
Building real-time web apps with WebSockets using IIS, ASP.NET and WCF
Understanding Wi-Fi Direct in Windows 8
Implementing a service-oriented architecture using SOAP
Implementing RESTful Services Using the Microsoft .NET Framework
Developer Patterns to Integrate Silverlight 4.0 with SharePoint 2010
Integrating Security Roles into Microsoft Silverlight Applications
Agile App Development with Azure API Management
Building event-driven, long-running apps with Windows workflow
Tech·Ed North America /7/2018 2:51 PM
MIX 09 12/9/2018 6:08 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows Communication Foundation (WCF)
Pablo Castro Software Architect Microsoft Corporation
Microsoft Connect /25/2019 1:20 PM
Developing for Windows Azure
Distributed Applications on Windows Vista
User Segmentation and Targeted Push Notifications for UWP apps
Server & Tools Business
Windows Forms in Visual Studio 2005: An in-depth look at key features
Tech Ed North America /6/2019 2:07 PM Required Slide
Presentation transcript:

WCF (Indigo): Under the Hood of the Channel Layer 9/18/2018 4:37 AM WCF (Indigo): Under the Hood of the Channel Layer Steve Swartz COM416 Architect Microsoft Corporation ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

From the Outside Client Service Message Address Binding Contract A B C 9/18/2018 4:37 AM From the Outside Client Service A B C Bv Bv Bv A B C Message A B C Bv Address Binding Contract (Where) (How) (What) ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

From the Inside Service A B C Bv A B C Bv 9/18/2018 4:37 AM ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Positioning This Talk This Talk Other Talks 9/18/2018 4:37 AM Positioning This Talk This Talk How Does the Channel Layer Work? Why Do You Care? Other Talks How Does the ServiceModel Work? COM417: Thursday, 10:00am How Do You Build XML Messaging Apps? COM326: Thursday, 5:15pm How Do You Build Channels? COM424: Thursday, 3:45pm How Do You Hook Channels Into WebHost? COM413: Friday, 1:00pm ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Big Ideas Bindings: How You Use The Channel Layer 9/18/2018 4:37 AM Big Ideas Bindings: How You Use The Channel Layer Bindings Are Easy & Extensible Channels: How Messages Are Exchanged Channels have Shape, Capabilities, Stacks Factories: How Channels Are Created ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

The Talk-In-A-Slide Binding Binding Factory CreateChannel<T>() 9/18/2018 4:37 AM The Talk-In-A-Slide Binding Binding Factory CreateChannel<T>() Channel Factory Listener Listener Channel Factory Listener Channel Factory Listener AcceptChannel() Channel Channel Send() Message Receive() ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Agenda: Message Binding Binding Factory CreateChannel<T>() Listener Listener Channel Factory Listener Channel Factory Listener AcceptChannel() Channel Channel Send() Message Receive() ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Message: The Basics CLR Representation of SOAP Infoset 9/18/2018 4:37 AM Message: The Basics CLR Representation of SOAP Infoset Supports SOAP 1.1 / SOAP 1.2 Encoding-Agnostic Stream-Oriented public abstract class Message : IDisposable { public abstract MessageHeaders Headers { get; } public abstract MessageProperties Properties { get; } public abstract MessageVersion Version { get; } public T GetBody<T>() { } static public Message CreateMessage(...) { } public void WriteMessage(XmlWriter writer) { } } ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Message: Constructors 9/18/2018 4:37 AM Message: Constructors Select Action Select Message Version Select Formatter Body as Object, XMLReader Special Support for Faults, Replies ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Agenda: Bindings Binding Binding Factory CreateChannel<T>() 9/18/2018 4:37 AM Agenda: Bindings Binding Binding Factory CreateChannel<T>() Channel Factory Listener Listener Channel Factory Listener Channel Factory Listener AcceptChannel() Channel Channel Send() Message Receive() ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings: What Are They? 9/18/2018 4:37 AM Bindings: What Are They? Client Service A B C C B A Message A B C Address Binding Contract (Where) (How) (What) ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings: Out of the Box 9/18/2018 4:37 AM Bindings: Out of the Box Protocols Security Session Transactions Duplex Streaming BasicHttpBinding BP 1.1 T WsHttpBinding WS T | S X WsDualHttpBinding NetTcpBinding .NET O NetNamedPipesBinding NetProfileMsmqBinding T = Transport Security | S = WS-Security | O = One-Way Only ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings: Scenarios Shipping Channels Future Channels Custom Channels 9/18/2018 4:37 AM Bindings: Scenarios Shipping Channels Change defaults Change options Change set of channels used Future Channels Change versions, functionality Preserve app code Custom Channels Binding benefits for any channel ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9/18/2018 4:37 AM Binding: Object Model public abstract class Binding : IDefaultCommunicationTimeouts { protected Binding() { } public abstract string Scheme { get; set{} } public TimeSpan OpenTimeout { get; set{} } public TimeSpan SendTimeout { get; set{} } public TimeSpan ReceiveTimeout { get; set{} } public TimeSpan CloseTimeout { get; set{} } public virtual IChannelFactory<TChannel> BuildChannelFactory<TChannel>(BindingParameterCollection p) {} public virtual IChannelListener<TChannel> BuildChannelListener<TChannel>(BindingParameterCollection p) {} } ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings: Build Your Own 9/18/2018 4:37 AM Bindings: Build Your Own Subclass Binding An (Internal) Binding Element Collection Completely Defines Binding, Channel Stack A Constructor Loads and Initializes B.E. Collection A Public API Simplifies Working With B.E. Collection ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Binding: Binding Elements 9/18/2018 4:37 AM Binding: Binding Elements public abstract class BindingElement { protected BindingElement() { } public virtual IChannelFactory<TChannel> BuildChannelFactory<TChannel>(ChannelBuildContext context) {} public virtual IChannelListener<TChannel> BuildChannelListener<TChannel>(ChannelBuildContext context) {} } public class ChannelBuildContext public ChannelBuildContext() {} public BindingElementCollection UnhandledBindingElements { get; } public BindingParameterCollection BindingParameters { get; } public IChannelFactory<TChan> BuildInnerChannelFactory<TChan>() {} public IChannelListener<TChan> BuildInnerChannelListener<TChan>(){} BindingElement RemoveNextElement(){} ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Bindings: Building Factories 9/18/2018 4:37 AM Bindings: Building Factories Call “Build()” on First Binding Element It Builds Its Factory It Optionally Consumes Binding Elements It Optionally Consumes Binding Parameters It Calls “BuildInner()” on BuildContext It Wires Inner Factory to Itself It Returns ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Agenda: Factories Binding Binding Factory CreateChannel<T>() 9/18/2018 4:37 AM Agenda: Factories Binding Binding Factory CreateChannel<T>() Channel Factory Listener Listener Channel Factory Listener Channel Factory Listener AcceptChannel() Channel Channel Send() Message Receive() ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Factories: In Perspective 9/18/2018 4:37 AM Factories: In Perspective Apps use Channels Factories Create Channels Factories Share Resources Per Process Per Machine Channel Factory Process Manager Machine Manager ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ICommunicationObject 9/18/2018 4:37 AM ICommunicationObject Implemented by all channels, factories public interface ICommunicationObject : IDisposable { // Created, Opening, Opened, Closing, Closed, Faulted CommunicationState State { get; } event EventHandler Closed; event EventHandler Closing; event EventHandler Faulted; event EventHandler Opened; event EventHandler Opening; // Async Calls Available, Too void Open(); void Close(); void Abort(); } ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

IChannelManager Implemented by all channels, factories 9/18/2018 4:37 AM IChannelManager Implemented by all channels, factories public interface IChannelManager : ICommunicationObject { MessageVersion MessageVersion { get; } string Scheme { get; } ReadOnlyCollection<IChannel> GetChannels(); T GetProperty<T>() where T : class; } ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Factories: The Client Clients Initiate Connections 9/18/2018 4:37 AM Factories: The Client Clients Initiate Connections One contract, one binding, many addresses Async methods available public interface IChannelFactory<TChannel> : IChannelFactory { TChannel CreateChannel(string address); TChannel CreateChannel(Uri address); TChannel CreateChannel(EndpointAddress to); } public interface IChannelFactory : IChannelManager { } ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Factories: The Service 9/18/2018 4:37 AM Factories: The Service Services Passively Wait For Connectinons One address, one binding, many contracts Async methods available public interface IChannelListener<TChannel> : IChannelListener { void SetUri( /* … */ ); bool WaitForChannel(TimeSpan timeout); TChannel AcceptChannel(); TChannel AcceptChannel(TimeSpan timeout); } public interface IChannelListener : IChannelManager { } ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Agenda: Channels Binding Binding Factory CreateChannel<T>() 9/18/2018 4:37 AM Agenda: Channels Binding Binding Factory CreateChannel<T>() Channel Factory Listener Listener Channel Factory Listener Channel Factory Listener AcceptChannel() Channel Channel Send() Message Receive() ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Channels: Three Shapes 9/18/2018 4:37 AM Channels: Three Shapes public interface IOutputChannel : IChannel { void Send(Message message); } public interface IInputChannel : IChannel { Message Receive(); public interface IDuplexChannel : IInputChannel, IOutputChannel { } public interface IRequestChannel : IChannel { Message Request(Message message); public interface IReplyChannel : IChannel { IRequestContext ReceiveRequest(); public interface IRequestContext : IDisposable { Message RequestMessage { get; } void Reply(Message message); ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Channels: Sessions public interface ISession { string Id { get; } } 9/18/2018 4:37 AM Channels: Sessions public interface ISession { string Id { get; } } public interface ISessionChannel<SessionType> where SessionType : ISession SessionType Session { get; } public interface IInputSession : ISession public interface IInputSessionChannel : IInputChannel, ISessionChannel<IInputSession> ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Channel Families: Transports ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Channel Families: Encoders ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Channel Families: Dual Dual Channel Channel ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Channel Families: Protocols Protocol Channel EP EP Protocol Channel Transport Channel Transport Channel M M M Message M ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

In Summary Bindings: How You Use The Channel Layer 9/18/2018 4:37 AM In Summary Bindings: How You Use The Channel Layer Bindings Are Easy & Also Extensible Channels: How Messages Are Exchanged Channels have Shape, Capabilities, Stacks Factories: How Channels Are Created ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Community Resources At PDC After PDC For more information, go see 9/18/2018 4:37 AM Community Resources At PDC For more information, go see Service Model Internals: COM417, Thursday, 10:00am XML Messaging: COM326, Thursday, 5:15pm Building Channels: COM424, Thursday, 3:45pm WebHost Integration: COM413, Friday, 1:00pm Ask The Experts table: WCF Internals I’ll be at COM Track lounge: Thu 3:30-6:30pm, Fri 8:30-11am After PDC If you miss some of these sessions, watch the DVD! MSDN dev center The WCF newsgroup Channel 9 tag ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

© 2005 Microsoft Corporation. All rights reserved. 9/18/2018 4:37 AM © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. ©2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.