* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download How to host WCF services in ASP.NET
Survey
Document related concepts
Transcript
Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET WCF is Our next-generation platform for distributed systems A set of extensions to the Microsoft.NET Framework 2.0 Build WCF services in Visual Studiousing any .NET Language Intelligent code editing, IDE Extensions for WCF, debugging, re-factoring, code snippets, etc. Visual Basic .NET, Visual C#, etc. Runs on Microsoft Windows Vista Microsoft Windows XP Microsoft Windows Server 2003 .NET at the core The Unified Framework For Rapidly Building Service-Oriented Applications WCF combines the functionality from ASP.NET Web Services, .NET Remoting, Message Queuing and Enterprise Services. Windows Communication Foundation (WCF) ASP.NET Web Service WCF supports multiple bindings HTTP, WSHTTP, TCP, MSMQ. ASP.NET Web Services supports only HTTP binding. WCF supports Atomic Transactions*. ASP.NET Web Services does not support Atomic Transactions*. By default WCF uses SOAP for sending and receiving the messages. But WCF can support any kind of message format not only SOAP. ASP.NET Web Services can send and receive messages via the SOAP only. The System.Runtime.Serialization.DataContract and System.Runtime.Serialization.DataMember attributes of the WCF's System.Runtime.Serialization assembly can be added for .NET types to indicate that instances of the type are to be serialized into XML, and which particular fields or properties of the type are to be serialized. ASP.NET Web Services uses XmlSerializer to translate the XML data (Message Send or received) into .NET objects. Windows Communication Foundation • Unifies today’s distributed technologies • Lets you develop/deploy/manage one model • Visual Studio.NET integration • Broad support for Web services (WS-*) specifications • Compatible with existing Microsoftdistributed application technologies • Enables development of loosely-coupled services • Config-based communication Unified Programming Model ASMX .NET Remoting Interop with other platforms Extensibility Location transparency AttributeBased Programming Enterprise Services WS-* Protocol Support WSE MessageOriented Programming System.Messaging Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET How does it work? Endpoints Client Service Endpoint Endpoint Message Endpoint How does it work? Address, Binding, Contract Endpoints - All communications with the WCF service will happen via the endpoints. The endpoint is composed of 3 parts (collectively called as ABC's of endpoint) as defines below: Address: The endpoints specify a Address that defines where the endpoint is hosted. Contract: The endpoints specify a Contract that defines which methods of the Service class will be accessible via the endpoint; each endpoint may expose a different set of methods. Binding: The endpoints also define a binding that specifies how a client will communicate with the service and the address where the endpoint is hosted.Various components of the WCF are depicted in the figure below. Client C B A Message A B C A B C Service How does it work? Behaviours and Metadata Metadata Client Service Bv Bv C Proxy B A Message A B C Bv A B C Bv ServiceHost() Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET How do I use it? Service Define Contract Implement Service Client Generate Proxy Pick Endpoint Define Endpoints Host Service How do I deploy it? Web Host within IIS: Self-Host within any .NET process: • Available for any service • Console apps, windowed apps, .NET NT Services … Building a simple service and client Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET All About Bindings You can choose a pre-defined binding: <endpoint name=“MyService” address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface” /> Binding BasicHttpBinding Purpose Basic Profile 1.1 Interop and Intergration w/ASMX WsHttpBinding Basis for WS-* interop Supports WS-Security, WS-RM, WS-Tx NetTcpBinding .NET.NET across processes Secure, reliable duplexed NetNamePipesBinding .NET.NET across processes Secure, reliable duplexed NetMSMQBinding .NET.NET via MSMQ NetPeerTcpBinding .NET Peer Peer All About Bindings You can customize a pre-defined binding: <services> <service name=“MyService”> <endpoint address=“MyAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/> </services> <bindings> <wsHttpBinding> <binding name=“MyReliableBinding”> <reliableSession enabled=“true” ordered=“true” </binding> </wsHttpBinding> </bindings> All About Bindings You can define custom bindings: <services> <service name=“MyService”> <endpoint address=“MyAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/> </services> <bindings> <wsHttpBinding> <binding name=“MyReliableBinding”> <reliableSession enabled=“true” ordered=“true” </binding> </wsHttpBinding> </bindings> Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET All about Addresses An endpoint address is relative to a base address: <services> <host> <baseAddresses> <add baseAddress="http://localhost:8000/MyBaseAddress"/> </baseAddresses> </host> <service name=“MyService”> <endpoint address=“MyEndpointAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/> </services> For a Web-Hosted service, the base address is that of its virtual directory Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET All About Contracts • Service Contract: Describes the operations a service can perform. Maps CLR types to WSDL. • Data Contract: Describes a data structure. Maps CLR types to XSD. • Message Contract: Defines the structure of the message on the wire. Maps CLR types to SOAP messages. Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET Hosting Services in ASP.NET Write your service as usual: [ServiceContract] [OperationContract] etc. ServiceHost’s are represented as .svc files: <% @ServiceHost Service=“HelloService” %> Service attribute is a CLR type name Matches <service name=“xxx”> from web.config Where can I put my service code? Anywhere you can put code in ASP.NET: Inline in the .svc file In a .cs/.vb in App_Code In a class library (.dll) located in \bin WCF plays nicely with ASP.NET’s dynamic compilation system Which project type should I use? Services can be built in any project type Web projects Class Libraries Class libraries have benefits Decouples implementation from hosting environment Can test services in other hosts (e.g. console apps) during development However, WCF doesn’t care which project type you use…use what makes sense for you Hosting WCF in ASP.NET Agenda What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET IIS Worker Process (w3wp.exe) ASP.NET w3wp.exe ASP.NET Page Framework, UI, Controls, HTTP Runtime (System.Web, System.Web.UI) ASP.NET Managed Hosting Layer (System.Web.Hosting, System.Web.Compilation) w3wp.exe ASP.NET WCF Service Model Page Framework, UI, Controls, (System.ServiceModel) Can share state HTTP Runtime (System.Web, System.Web.UI) ASP.NET Managed Hosting Layer (System.Web.Hosting, System.Web.Compilation) w3wp.exe WCF and the HTTP Pipeline Service Implementation Dispatcher IIS ASP.NET WCF Protocol Channels HTTP Transport WCF HttpModule (grabs *.svc) Other HttpModule Other HttpModule Other HttpModule Process Host HTTP Request HTTP Response Why the split? Two technologies, different priorities WCF: consistency across transports and hosting environments ASP.NET: optimize for HTTP applications hosted in IIS Becomes very important on IIS7/WAS WAS == Windows Process Activation Service Implications ASP.NET platform features still work for ASP.NET Forms auth Session state File/URL authorization They just don’t apply to WCF by default Summary What Is the Windows Communication Foundation? How Does It Work? How Do I Use and Deploy It? Bindings Addresses Contracts How to host WCF services in ASP.NET How WCF works inside of ASP.NET