windows communication foundation and web services

Post on 19-Dec-2015

228 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Windows Communication

Foundation and Web Services

Slide 2

A Word About Attributes The statements inside the brackets are

considered attributes Attributes are declarative information

about c# code Don’t confuse the term Attribute here

with an HTML attribute

Slide 3

A Word About Interfaces An interface contains the signatures of 

methods, properties, events or indexers A class that implements the interface

must implement the members of the interface that are specified in the interface definition

The interface name typically start with the letter I (capitalized)

Slide 4

A Word About Interfaces The class named ImplementationClass

implements ISampleInterface

Slide 5

WCF (Introduction) It’s Microsoft’s current inter-machine

communication foundation used to integrate HTTP requests and responses Web Services Messaging Lower-level TCP/IP Ajax / REST services And everything else

Slide 6

WCF (Introduction)

And I’ll start out by saying it’s complicated

Slide 7

WCF Fundamentals Simply put, it’s a set of APIs used to

send messages between services and clients

Messages are sent between endpoints using a transport protocol (such as (such as HTTP / TCP and others)

Slide 8

WCF Model (1)

Slide 9

WCF Model (2)

Slide 10

WCF Model (Contracts) Service contracts describe the precise

format of messages This is done using HTTP or another protocol The service contract defines the interface to

the outside world Operation contracts belong to a

service contract These are really the methods of the contract

Slide 11

WCF Model (Contracts) We are talking about the format of

Function calls Parameters Return types These are message signatures

The programming model defines how we write the code to do all of this

Slide 12

WCF Model (Contracts)

Slide 13

WCF Model (Contract)Request-Reply Request-Reply services

This is the default type of service Clients make a request for service

(synchronously or asynchronously) Clients receive a response

Duplex services

Slide 14

WCF Model (Contract)One Way In a One-Way service, the client sends a

request but does not expect a response To detect errors, create two One-Way

service contracts

Slide 15

WCF Model (Contract)Duplex Both endpoints can send messages

independently These are implemented using the idea of a callback

To implement, create two interfaces The first is the one-way client interface The second is the callback contract

Refer to http://msdn.microsoft.com/en-us/library/ms731064(v=vs.110).aspx

Slide 16

WCF Model (Service Runtime) This layer defines the behavior of the

runtime service (server configuration) We configure the service runtime using behaviors

There is much more detail here beyond the scope of this course

Slide 17

WCF Model (Service Runtime) How many messages are processed at a

time InstanceContextMode / ConcurrencyMode

How many instances of a server can run (singleton) InstanceContextMode

Threading and reentrancy ConcurrencyMode

Slide 18

WCF Model (Messaging) Transport channels are of two types

Transport channels send and receive messages

TCP, HTTP, MSMQ Protocol channels implement the

messaging protocols HTTP

Slide 19

WCF Model (Hosting) Simply put, it’s where the application

runs (is hosted) Might be IIS or WAS

Slide 20

WCF Model (Hosting)

Slide 21

WCF Model (Hosting)

Slide 22

WCF Model (Hosting - IIS) This is the easiest way to host your

service IIS treats the service as an ASP.NET Web

Site If you are using IIS6, then only HTTP and

HTTPS are supported You can create a self-hosted console (or

forms) application that listens for requests at a particular port

We can also host through Azure Services

Slide 23

WCF and Web Services WCF has changed the .net picture of

Web Services They used to be a standalone product type

etc… They are now just another service within

the context of WCF

Slide 24

The Goal of Web Services Supply a standard means for e-

commerce applications to communicate using different hardware and software platforms Supply a way for legacy applications to

communicate Provide a universal way to discover the

available services and the methods supplied by a particular service so that any consumer can call those methods

Slide 25

Logical Web Service Model

Slide 26

Web Service Vendors IBM – WebSphere Studio Application Developer SAP – SAP Web Application Server SUN – Sun ONE Web Services Platform

Developer Edition And of course Microsoft and Visual Studio .NET Others are likely to follow No matter the vendor, Web services will

always work the same way Any consumer should work with any provider

Slide 27

Web Service Protocols Web services provide a hardware and

software agnostic way to call remote functions and return data from those remote functions

Protocols HTTP is the message transfer agent Simple Object Access Protocol (SOAP) Web Service Description Language (WSDL)

Slide 28

SOAP Encapsulates an XML document for the

purpose of serialization SOAP messages are exchanged between providers

and consumers SOAP is a message envelope containing an

XML document Consumers send SOAP requests to providers

Requests are method calls serialized into an XML document

Providers send responses to consumers in the form of another XML document

All of this happens behind the scenes and is not that significant to the developer

Slide 29

WSDL A WSDL document fully describes a Web

service All methods are defined Method signatures are also defined

A WSDL document is a well-formed and valid XML document

A WSDL document is almost always generated automatically

They become very complex very quickly .NET uses the WSDL document along with

Intellisense technology to display member calling conventions (signature prototypes)

Slide 30

Creating A Web Service Create a new Web side using the WCF

Service project type

Slide 31

Web Service (Steps to Create) Design the service contract Implement the service contract

This is done via attributes Configure the service endpoints Host the service

Build client applications

Slide 32

Web Service Implementation (Steps) Declare the members of the interface

that will be implemented in the .svc file Implement those members in the

corresponding class

Slide 33

The Role of App.Config App.Config operates similarly to

Web.Config Here, it’s used to configure a Web Service All of this appears inside of <system.serviceModel>

We could also hardcode this

Slide 34

App.config (Bindings) Bindings define the transport protocol

details needed for a client to communicate with a service

Predefined (provided) bindings <BasicHttpBinding> <NetTcpBinding>

Custom bindings

Slide 35

App.config (Bindings) Here we bind to three different services

Slide 36

App.config (Endpoints) Endpoints allow clients to access a Web

service Consists of

An address (URL that points to the service) Name of a binding (how to communicate

with the endpoint) The contract defining the methods

available

Slide 37

App.config (Endpoints) We communicate with three services

Slide 38

Service Contract A service contract exposes one or more

service operations A ServiceContract defines the types of

messages used in a conversation A ServiceOperation defines the

messages themselves

Slide 39

Service Contract (Example 1)

Slide 40

Service Contract (Example 2) Use a class instead of creating an

interface and implementing that interface

Slide 41

Data Contract Simply put, simple types do not require

a data contract. Complex types do Serializable parameters do not require a

data contract

A DataContract describes a type that will be serialized by the service

A DataMember describe the members of the DataContract type

Slide 42

Data Contract (Example 1)

Slide 43

Configure Service Endpoints (1) Communication occurs through service

endpoints and four properties Address of the endpoint A binding that specifies how a client can

communicate with the endpoint A contract the defines the allowable

operations Local implementation details

Slide 44

Configure Service Endpoints (2) We can configure endpoints via

Code In the config (web.config) file

Slide 45

Configure Service Binding (1) Most bindings are provided with WCF Use BasicHttpBinding for most Web

services

Slide 46

Host the Service IIS must be installed on the server

Slide 47

Compiling the Service The service is compiled the same way

as any other .NET app. If you run it, you see a “special” test

client window The code is generated by .NET itself

Slide 48

Test Service (Illustration 1)

Slide 49

Test Service (Illustration 2)

Slide 50

Creating the Test Client Create a WPF or Windows forms

application Insert the template code created by

Svcutil.exe into this project While the service is running locally, add

a service reference In a production app, you will have this URL

Change the name of the endpoint in app.config

Slide 51

Adding the Service Reference (Example)

Slide 52

Changing the endpoint Rename the end point in the app.config

file

top related