之前看了很多文章,发现很多人在介绍WCF的过程中使用的都是WinForm程序来做为Sample的,其实做Web开发的人还是占相当大一部分的。随着微软VS2008的发布,更强化了WCF的市场位置。面向服务架构(SOA),而WCF正是基于这一理念而创建成立的。我们平时总是说SOA,大家也都知道SOA这个名字,而真正在开发应用程序时,也未免逃避不了SOA的影子,但什么样的架构才算是真正的采用了SOA呢。这也是我和大家都要共同学习的地方。WCF加快了我们开发基于SOA架构的程序效率。采用了WCF,便在很大程度上实现了SOA化。现在市场上也有很多厂家宣传自己的产品已经完全的实现了SOA化,也不乏这些厂家的根基就是WCF。
好了,废话不多说了,现在开始我们学习的第一步:创建自己的WCF程序。
第一步:准备环境
系统要求:Windows2003 Server/Windows XP
环境要求:VisualStudio2008(WCF是在.NetFramework3.0之后才发布的)
运行效果:采用Javascript调用WCF Service方式
第二步:创建程序
首先我们先创建一个解决方案,名称为WCFSample.sln.
我们在安装完成VS2008后,在创建新项目时会出现如下提示框:
《图片1 WCF_1.1.gif》
创建完解决方案后,我们添加新项目,名称为WCFSample,此时我们创建的不是普通的ASP.NET Web Application,而是WCF Service Application
《图片2 WCF_1.2.gif》
创建完成后,我们的项目文件基本就完成了,这也就是WCF的基本框架。
此时项目会自动产生几个文件,如IService1.cs, Service1.svc, Service1.svc.cs. 这几个文件都是模板文件,里面包含一些Sample的code.我们以后可以仿照这个Sample完成我们自己的service.
<一>.文件介绍:
IService1.cs文件:这个文件是我们用来定义ServiceContract的接口文件。
Service1.svc文件:这个文件是我们用来host WCF service的文件,默认情况下这个文件是和Service1.svc.cs文件绑定到一起的,我们还可以分别创建svc文件和cs文件,然后使用ServiceHost来绑定这两个文件。(后面我会对ServiceHost做个简单介绍)
Service1.svc.cs文件:这个文件中我们会定义DataContract,这是我们在Service中用来交换的数据。
关于Contract的概念,我会在后面做详细介绍,在此先不做过多介绍。
<二>.我们需要增加一个page文件,新增item,增加一个AJAX WebForm. 然后配置页面中scriptmanager的servicepath, code如下
<三>. 我们呢再关注一下Web.Config文件,我们会发现在Web.Config文件中增加了一个字节配置(没有的话可手动修改,默认是有的):
我想在这里大家需要注意的是,第一个EndPoint节点中binding,我们没有采用WsHttpBinding,而是采用了webHttpbinding.是因为我们的要求是采用javascript调用WCF服务,而这样的话,我们就需要在EndPoint的behaviorConfiguration中指定Endpointbehavior, 并且在behavior中enableWebScript,这样的话我们才能通过script调用到WCFService,不然的话,在调用过程中就会出现错误信息,提示:对象未定义。
WebConfig配置完毕后,我们访问URL:http://localhost/wcfsample/js 便可得到客户端代理脚本,里边包含着在客户端如何调用service的脚本。
这些新增的配置节都是为WCF service而增加的,关于每个配置节的作用和意思我都会在后面加以介绍。
<四>. 在page中增加调用Service的客户端脚本
OK, 点击button, 调用成功,如下图:
《图片 WCF_1.3.gif》
示例代码:因目前无法上传文件及图片,现无法提供下载链接,待能上传后,立即更新