分享

我的第一个WCF程序

 蜗牛之窝 2011-06-30

一、先说几句

 

  已经好多年没有使用C#进行应用程序的开发,即使在以前,用C#也只是做些简单的应用程序而尔。但现在,公司突然将C#的重任交给我,而且还要负责架构部分。无奈只好从C#基本语法学起。但由于要开发三层架构的应用,使用WCF已经是大势所趋。但找了好多WCF的学习资料,甚至还买了一本国产的WCF书籍,但结果还是一头雾水,不得入门。真不知道是.NET技术太过于先进,还是我已经不是以前那个自学成才的高手。

 

  不过无论有什么困难,问题还是得解决的。昨天晚上终于将一个简单的WCF应用程序建立起来了,当然,这也作为我在博客园建立的第一篇文章。万事起头难,真希望难完这一次就好了。

 

二、建立服务端函数

 

  “服务端函数”这个命名实在不规范,不过文章是给自己看的,就按自己的习惯进行命名吧。总而言之,我要在服务端建立一个服务函数,供客户端进行调用。首先运行VS2010,选择文件 -> 新建 -> 项目。在新建项目窗口左边的目录中,选择“WCF”,再在右边选择“WCF 服务应用程序”。项目名称叫“WCFServer”、解决方案名称为“WCFTest”:

 

  

 

  新建后,默认的接口和实现文件,其文件名默认Service1,不是十分规范,所以我们将文件名和类名改命为CoreService。文件名的更改直接在解决方案资源管理中直接改名就好了。但对类名的更改,应该使用F2重构功能进行更改。

 

  将类名和接口重命名后,现在我们就需要增加自己的服务端函数了。在这个例子里面,我们只是简单地增加一个取服务端时间的函数:GetServerDateTime。首先打开ICoreService.cs接口文件,在最后增加一个服务端函数接口:

 

 

1 [OperationContract]
2 DateTime GetServerDateTime();

 

 

接着,打开CoreService.svc.cs文件,在类的最后面增加如下代码:

 

 

1 public DateTime GetServerDateTime()
2 {
3        return System.DateTime.Now;
4 }

 

 

保存项目,并运行应用程序后,程序会弹出一个“WCF测试客户端”应用程序,在程序窗口的左边,我们可以看到我们刚才增加的接口和对应的函数。这是我们首先要做的,就是将地址复制下来:

 

 

这个时间关闭程序就可以了。

 

三、建立客户端调用程序

 

  通过“解决方案资源管理器”,右键新建一个项目。在新建项目窗口左边目录树,选择“Windows”,在右边列表中选择“Windows窗体应用程序”,而项目名称则为“WCFClient”,最后将WCFClient程序“设为启动项目”。

 

  在WCFClinet的项目中,右键选择“添加服务应用”菜单。

 

在弹出的“添加服务应用”窗口中,将之前复制到地址贴粘上去后再“确定”。确定无误后,直接点“确定”就可以了。

 

 

到目前为止,所有的准备工作都已经可以了。下在我们编写一段代码来实现调用服务端函数的功能。首先我们在窗口上添加一个Label和一个Button控件:

 

 

双击Button编写如下代码:

 

01 using (ServiceReference1.CoreServiceClient Host = new ServiceReference1.CoreServiceClient())            
02 {
03     //记录开始时间
04     int StartTime = System.Environment.TickCount;
05   
06     for (int i = 0; i < 1000; i++)
07     {
08         Host.GetServerDateTime();
09     }
10   
11     //显示执行时间
12     label1.Text = (System.Environment.TickCount - StartTime).ToString() + " ms";
13     Host.Close();

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多