写关于WCF的前一篇文章只是简单的介绍了一下WCF的相关概念,四种服务契约和它的一些好处。http://blog.csdn.net/xdd19910505/article/details/42881893。那么我们如何来创建一个WCF服务呢?今天就来详细的总结一下关于创建服务的问题。
首先,之前我们学过用webservice来发布服务,现在来比较一下WCF和WebService的区别。
其实个人认为它们是一种包含与被包含的关系,知识在WCF中又多了很多先进的技术,使得WCF技术更强大和被人们所用。网上的一些资料是这样说的:
(1)WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是跨语言和平台的关键)。
(2)其实一定程度上就是ASP.NET Web Service,因为它支持Web Service的行业标准和核心协议,因此ASP.NET Web Service能做的事情,它几乎都能胜任。WCF不仅支持和集成WebService,它还兼容和具备了微软早期很多技术的特性。
那么我们先来看一下Web Service发布服务的情况。一个某人说你好的例子。
一、Web Service服务
在Web Service中服务的写法:
[WebMethod] //同样是一个特性,作用是把当前的方法放在一个Web服务里 public string Hello(string Name) { return Name + "说:你好"; }
这样一个WebService的服务就写好了。
二、WCF创建服务
下面是一个WCF的例子。关于WCF服务契约的一些特性上一篇博客已经说了,这里就不再重复。同样是一个说:你好的例子。
WCF的一个完整的服务就是一个服务契约和它的实现组成的,一个服务契约就是我们常用的接口加上WCF特性就可以。和WebService不同的就是通过接口和实现共同组成服务。
服务契约:
[ServiceContract]//服务契约 public interface IHelloService { //服务操作 [OperationContract]//只有方法前加了操作契约特性之后才会被放到服务当中去,这个操才会被实现 string SayHello(string name); //[OperationContract] //void Method2(); }
它的实现类,实现了IHelloService接口。
public class HelloService:IHelloService { /// 打招呼 public string SayHello(string name) { return name + "说:你好!"; } }
这样一个完整的WCF服务就写好了。
三、总结
两者的异同点是一目了然的。WCF同时使得面向服务编程更加简单统一了。它既支持具有互操作性的Web服务,还能够实现.NET客户端与服务端的通信,提供了分布式事务。同时,WCF引入了独有的Endpoint元素,集成了地址、绑定和契约之间的“三位一体”,以最简单的方式定义和发布服务。