WCF tutorial - Learn WCF quickly

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.

The 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 exposes the service contract.
A 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