WCF tutorial - Learn WCF quickly

WCF stands for Windows Communication Foundation and used for developing distributed system.
WCF services can communicate with .Net applications and Non-Microsoft technology as well.


ABC of WCF
  • (A)   Address – Where to bind, which is also called as EndPoint
  • (B)   Binding – How to bind
  • (C)   Contract – What to bind

ASMX service sends and receives data over HTTP protocol; however WCF is able to exchange messages over any transport protocol.

Contract in WCF:
There are multiple contracts available in WCF. Generally,  a standard way to describe what exactly a service will do.
Service Contract – Defines the operation that a service will perform.
Data Contract – Defines the classes
Fault Contract – Defines the errors raised in service
Message Contract - Defines what data need to exchange    
        
Protocol that WCF uses:
HTTP – eg http://localhost:80
TCP – net.tcp//localhost:90
MSMQ – net.msmpq://localhost:91

Hosting in WCF:
There are 3 types of hosting options available in WCF
IIS-
Self Hosting-
WAS-

System.ServiceModel is the namespace which is used to access WCF Service.
Types of Binding in WCF – Binding defines how an endpoint communicates to the world. It also defines the transport protocol i.e. http, tcp
BasicHttpBinding -
NetTcpBinding
WSHttpBinding
NetMsmqBinding

What is Data Contract Serialization?

What is Proxy and How to generate it?
Proxy is a class that expose the service contract.
Proxy can be generated using Visual Studio by adding service reference; another way to generate proxy is by using Svcutil.exe command. Need to provide the service address and proxy file name (optional). Default proxy name is output.cs
Syntax :
Svcutil http://serviceurl/myservice.svc  /out:MyProxy.cs

WCF client Configuration:
<system.servicemodel>
<client>
<endpoint name = “EndPoint1” address=”endpointurl”  binding =”wsHttpBinding” contract =”IContract”/>
</client>
</system.servicemodel>

Operation Overloading in WCF Service:
By default operation overloading is not allowed. But using Name property with operation contract can resolve this issue.
Ex:
[ServiceContract]
    public interface IService1
    {
        [OperationContract(Name="Int Parameter")]
        string GetData(int value);

        [OperationContract(Name="String parameter")]
        string GetData(string value);

         
    }

Main components of WCF :
Service Class
Hosting
Endpoint

Isolation level in WCF:
Read Uncommitted – An uncommitted transaction can be read. This transaction can be rolled back later.
Read Committed – Will not read data of a transaction that has not been committed yet.
Repeatable Read – Locks placed on all data.
Serializable – Does not allow other transactions to insert or update data until the transaction is complete.


Comments

Popular posts from this blog

CAML Query in SharePoint 2010

Calling REST APi from server side code - C#

All about SharePoint 2010 Content Type Hub

SharePoint Interview Questions and Answers

Calling ASP.Net WebMethod using jQuery AJAX