In implementation of WCF involve the creation of method, types, services which are used by the client.
Endpoint
All possible communication with a Windows Communication Foundation (WCF) service occurs through the endpoints of the service. Each Endpoint provides clients access to the functionality offered by a WCF service.
WCF Service is a program that exposes a collection of Endpoints. Each Endpoint is a portal for communicating with the world.
All the WCF communications are take place through end point. End point consists of three components.
Ø Address
Basically this are URLs, that specifies where this WCF service is hosted (on which server iis, self etc) that will use by the client. To access the service use this url to connect to the service. e.g. http://localhost:8090/MyFirstService/MyCalculator.svc
Ø Binding
Binding will describes how client will communicate with service. There are number of different protocols available for the WCF to communicate to the Client. You can mention the protocol type based on your requirements.
The binding process has following characteristics as:
- Transport – this defines what protocol is being used like HTTP, Named Pipes, TCP, and MSMQ are some type of protocols.
- Encoding (This is Optional) – There are basically three types of encoding are available- namely: Text, Binary, or Message Transmission Optimization Mechanism (MTOM). MTOM is an interoperable message format that allows the effective transmission of attachments or large messages (greater than 64K).
- Protocol (This is also Optional) - It defines what information to be used in the binding such as Security, transaction or reliable messaging capability etc.
The following table gives some list of protocols supported by WCF binding.
Binding | Description |
BasicHttpBinding | Basic Web service communication. No security by default |
WSHttpBinding | Web services with WS-* support. Supports transactions |
WSDualHttpBinding | Web services with duplex contract and transaction support |
WSFederationHttpBinding | Web services with federated security. Supports transactions |
MsmqIntegrationBinding | Communication directly with MSMQ applications. Supports transactions |
NetMsmqBinding | Communication between WCF applications by using queuing. Supports transactions |
NetNamedPipeBinding | Communication between WCF applications on same computer. Supports duplex contracts and transactions |
NetPeerTcpBinding | Communication between computers across peer-to-peer services. Supports duplex contracts |
NetTcpBinding | Communication between WCF applications across computers. Supports duplex contracts and transactions |
Ø Contract
Contract is the specification of what operation will endpoint communicates with particular communication request. In other word Contract collection of operation that specifies what the endpoint will communicate with outside world. Usually name of the Interface will be mentioned in the Contract, so the client application will be aware of the operations which are exposed to the client. Each operation is a simple exchange pattern such as one-way, duplex and request/reply.
Basically process of Contract is acronyms as ABC‘s process. This is depicted as follows:
A is stand for: What is the Address of service
B is stand for: what type of binding is being used (e.g http, tcp , MSQUE etc.)
C is stand for: what methods are contracted for use by the client.
Example:
Endpoints will be mentioned in the web.config file on the created service.
<system.serviceModel>
<services>
<service name="MathService"
behaviorConfiguration="MathServiceBehavior">
<endpoint
address="http://localhost:8090/MyCalculator/Calculator.svc" contract="ICalculator"
binding="wsHttpBinding"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MathServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Types of Contracts:
There are basically four types of Contract signed by the WCF for providing Service to its clients are given below:
Service Contract
Service contracts describe the operation that service can provide. For E.g., a Service provide to know the temperature of the city based on the zip code, this service is called as Service contract. It will be created using Service and Operational Contract attribute.
Attribute that implement these contracts are:
[ServiceContract]
And [OperationContract]
Data Contract
Data contract describes the custom data type which is exposed to the client. This defines the data types, which are passed to and from service. Data types like int, string are identified by the client because it is already mention in XML schema definition language document, but custom created class or data types cannot be identified by the client e.g. Employee data type. By using DataContract we can make client to be aware of Employee data type that are returning or passing parameter to the method.
Attribute that implement this contract is:
[DataContract]
And [DataMember]
Message Contract
Default SOAP message format is provided by the WCF runtime for communication between Client and service. If it is not meeting your requirements then we can create our own message format. This can be achieved by using Message Contract attribute.
[MessageContract]
[MessageHeader]
[MessageBodyMember]
Fault Contract
Suppose the service I consumed is not working in the client application. I want to know the real cause of the problem. How I can know the error? For this we are having Fault Contract. Fault Contract provides documented view for error occurred in the service to client. This helps us to easy identity, what error has occurred.
Example:
Ex1: create simple “Hello WCF World!”this SAMPLE ILLUSTRATES THE BASIC concept of WCF programming.
Ex2: Create a simple calculator in WCF and consume it in Windows and WEB application. This example evolve a bit of arithmetic programming in WCF but this example may be helpful for understanding basic concept of creation and using of it.
No comments:
Post a Comment