Wednesday, 8 May 2013

Service Contract | WCF Tutorial pdf

Service contract describes the operation that service provide. A Service can have more than one service contract but it should have at least one Service contract.
Service Contract can be define using [ServiceContract] and [OperationContract] attribute.
[ServiceContract] attribute is similar to the [WebServcie] attribute in the WebService and [OpeartionContract] is similar  to the [WebMethod] in WebService.
=>  It describes the client-callable operations ( functions) exposed by the service 
=> It maps the interface and methods of your service to a platform-independent description 
=>  It describes message exchange patterns that the service can have with another party.
Some service operations might be one-way; others might require a request-reply pattern 
=>  It is analogous to the element in WSDL
To create a service contract you define an interface with related methods representative of a collection of service operations, and then decorate the inter face with the ServiceContract Attribute to indicate it is a service contract. Methods in the interface that should be included in the service contract are decorated with the OperationContract Attribute.
[ServiceContract()]
   public interface ISimpleCalculator
   {
       [OperationContract()]
       int Add(int num1, int num2);
   }

Once we define Service contract in the interface, we can create implement class for this interface.
public  class SimpleCalculator : ISimpleCalculator
   {
           public int Add(int num1, int num2)
       {
           return num1 + num2;
       }
    }

With out creating the interface, we can also directly created the service by placing Contract in the implemented class. But it is not good practice of creating the service
[ServiceContract()]
  public class SimpleCalculator 
  {
      [OperationContract()]
      public int Add(int num1, int num2)
      {
          return num1 + num2;
      }
   }

Now you have some fundamental idea on Service contract. Next we will look into Data Contract.

No comments: