you can locate o website: http://blogs.msdn.com/madhuponduru/archive/2006/02/22/537622.aspx
(it 's supported only by windowsxp,2000,server2003,vista)
2 What is WCF(Window Communication Foundation)
it's a programming platform and runtime system for creating network distributed services
currently we have many separate technologies that meet specific need (Enterprise Servies, Remoting, ASMX WebServies) requiring developers to make technology choices. WCF supports all the features of these technoligies so that choice is no longer necessary.
3 Basic Concepts
4 standart bindings
BasicHttpBinding
WsHttpBinding
WsDualHttpBinding
NetTcpBinding
NetNamedPipesBinding
NetMsmqBinding
NetPeerTcpBinding
MsmqIntegrationBinding
5 WCF Hosting
i. IIS
ii. Self Host(can be any wcf client application)
iii.windows Activation Services(WAS) hosting evvironment
iv.NT Services.
v. IIS hosting only supports HTTP proctocol
vi.WAS supports all protocols.
6 Why we have to recommed customer to hst WCF apps in IIS
i. since asp.net supports health monitoring support, it's better ot host in IIS
ii.since IIS is designed for large scale apps, performance is lot better when u host WCF apps in IIS
7 WCF key words
[servicecontract]
[operationcontract]
[servicebehaviour]
[operationbehavious]
8. How to use WCF tools
i.svcutil.exe
ii.svcconfigeditor.exe
iii.svctraceviewer.exe
9.How to write simple WCF client/server app
i.server side
>create a class library project called HelloSvc, and add the reference with system.ServiceModel;
using ...*
using system.ServiceModel;
name space HelloSvc
{
[ServiceContract]
public interface IHello
{
[ServiceOperation]
string SayHello();
}
public class HelloSvc:IHello
{
public string SayHello()
{
return "Hello World";
}
//to selft-host WCF service
public static void main()
{
uri baseAddress=new uri(http://localhost:8081/testsvc);
ServiceHost sh=new ServiceHost(typeof[HelloSvc],baseAddress);
sh.Open();
Console.WriteLine("service is ready for calls");
Console.ReadLine();
}
}
}
>then we create a configuration xml file named app.config to configurate the WCF
the following
<?xml version="1.0" encoding="utf-8">
<configuration>
<system.serviceModel>
<services>
<service name="HelloSvc.HelloSvc" behaviorConfiguration="ManualWCF.MyServiceType">
<endpoint address=http://localhost:8081/testsvc binding ="wsHttpBinding" contract="HelloSvc.IHello">
</endpint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ManualWCF.MyServiceType">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
>re-configurate the project property of output type as application console. and then press Debug to run this application.
In everything goes well, we can see the following screen:
Congratulations! you have host a WCF services on Server side. then what u need to do It's to let the client side to invoke your service. ok, next we will create another project on client side to call the services which is supplied through the address :http://localhost:8080/testsvc.
>client side
we create a another console/ windows/web application(either is ok) to call the services
i.we must search the service through UDDI. because we know each service is deployed by WSDL. having found the service , we need to add as reference. and the it will populate client codes exposing it's contract/Interface to client side for client program to call. There are 2 methods to populate this client codes
Method 1: use svcutil.exe to generate the client code automatically (ServerClient.cs & output.config)
the grammar is just like the following, in console model, we can keyin
svcutil http://localhost:8080/testsvc
then ServerClient.cs and output .config will be populated.
and then we add this two fill to our client project. that's ok.
Method 2:through UDDI to find the service, and then add as an reference
in this case, the VS.Net tool will make a new fodler under the project fodler named services reference and generate code aotomatically named references.cs and other configuration files in which. and In the file of references.cs, there is a class named [Server%]Client from which you can invoked all the operations from
the following is the repective codes:
using System.ServiceModel;
name space clientUsingWCF
{
ServerClient sc=new ServerClient();
string result=sc.SayHello();
Console.WriteLine(result);
Console.Readline();
}
and if every works well, then at client side you will see such result:
congratulations!