मुख्य सामग्रीवर वगळा

WCF Windows communication foundation



WCF:Why WCF



Actually, WCF is going to unify all in one
: web services
: enterprise service
: Remoting
What is WCF?
WCF stands for Windows Communication Foundation and is part of .NET 3.0. WCF is Microsoft platform for building distributed and interoperable applications.



What is a distributed application?
In simple terms a distributed application, is an application where parts of it run on 2 or more computers. Distributed applications are also called as connected systems.

Examples:
A web application running on one machine and a web service that this application is consuming is running on another machine. 
Distributed System 

An enterprise web application may have the following tiers, and each tier may be running on a different machine
1. Presentation tier
2. Business tier 
3. Data Access tier 
Connected System 

Why build distributed applications?
There are several reasons for this
1. An enterprise application may need to use the services provided by other enterprises. For example an ecommerce application may be using Paypal service for payments.
2. For better scalability. An enterprise web application may have Presentation tier, Business tier, and Data Access tier, and each tier may be running on a different machine.

What is an interoperable application?
An application that can communicate with any other application that is built on any platform and using any programming language is called as an interoperable application. Web services are interoperable, where as .NET remoting services are not.

Web services can 
communicate with any application built on any platform, where as a .NET remoting service can be consumed only by a .net application.

What technology choices did we have before WCF to build distributed applications?
Enterprise Services
Dot Net Remoting
Web Services

Why should we use WCF?
Let's take this scenario
We have 2 clients and we need to implement a service a for them. 
1. The first client is using a Java application to interact with our service, so for interoperability this client wants messages to be in XML format and the protocol to be HTTP.
2. The second client uses .NET, so for better performance this client wants messages formatted in binary over TCP protocol.

Without WCF
1. To satisfy the first client requirement we end up implementing an ASMX web service, and 
asp.net web service example

2. To satisfy the second client requirement we end up implementing a remoting service 
Dot Net Remoting Example 

These are 2 different technologies, and have complete different programming models. So the developers have to learn different technologies. 

So to unify and bring all these technologies under one roof Microsoft has come up with a single programming model that is called as WCF - Windows Communication Foundation.

With WCF,
You implement one service and we can configure as many end points as want to support all the client needs. To support the above 2 client requirements, we would configure 2 end points. In the endpoint configuration we can specify the protocols and message formats that we want to use. 
WCF Example 

In Part 2, we will discuss implementing 
1. A web service to exchange messages in XML format using HTTP protocol for interoperability.
2. A remoting service to exchange messages in binary format using TCP protocol for performance.
Along the way, we will get a feel of how different these technologies are.

In Part 3, we will discuss implementing a single WCF Service and configuring different end points to support different transport protocols and message formats. 

टिप्पण्या

या ब्लॉगवरील लोकप्रिय पोस्ट

Enacpsulation in C# Encapsulation is defined as the wrapping up of data under a single unit. It is the mechanism that binds together code and the data it manipulates. In a different way, encapsulation is a protective shield that prevents the data from being accessed by the code outside this shield. Technically in encapsulation, the variables or data of a class are hidden from any other class and can be accessed only through any member function of own class in which they are declared. As in encapsulation, the data in a class is hidden from other classes, so it is also known as  data-hiding . Encapsulation can be achieved by:  Declaring all the variables in the class as private and using  C# Properties  in the class to set and get the values of variables. // C# program to illustrate encapsulation using System; public class DemoEncap {  // private variables declared  // these can only be accessed by  // public methods of class  ...

Create WCf service using 2 end points

1.  Creating a WCF service 2.  Hosting the WCF service using a console application 3.  Exposing 2 service endpoints.  4.  Creating a windows and a web Client applications.   Let's take the scenario that we discussed in  Part 2 .  We have 2 clients and we need to implement a service a for them.  1.  The first client is using a Java application to interact with our service, so for interoperability this client wants meesages to be in XML format and the protocl to be HTTP. 2.  The second client uses .NET, so for better performance this client wants messages formmated in binary over TCP protocol. In  Part 2 , To meet the requirement of the first client, we implemented a  web service  and to meet the requirement of the second client we implemented a  remoting service. In this video, we will create a single  WCF service,  and  configure 2 endpoints  to meet the requirements of both the clients. Crea...