码迷,mamicode.com
首页 > 其他好文 > 详细

WCF总结——宏观认识和简单实践

时间:2015-03-07 14:11:27      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:wcf

1.WCF是什么


WCF常和分布式系统以及面向服务(SOA)联系在一起,它可以使分布在不同服务器上的服务之间互相调用,访问。它提供了通信的模型和技术。


2.WCF基本概念


契约:

         服务契约:可以看做是接口

         数据契约:定义了在通信过程中用到的数据类型

服务:服务契约的实现类

宿主(托管):只有上面的东西,“服务”是不能运行和启动的。上述的契约和服务必须借助一个可执行的程序(Windows窗体应用程序,控制台应用程序等),才能启动服务,供外界调用

客户端:调用服务的一端。


3.WCF基本原理

技术分享

Service Host在上图中,左边是客户端,右边是服务端,我们看到在服务端中,服务寄宿在一个一个服务端程序中,当程序执行的时候便是一个进程,来运行服务。


EndPoint:终结点EndPoint包括三部分:ABC。A是服务发布的地址,B规定了通信的方式,是HTTP还是TCP等。C是契约,代表你要用的是哪个服务。


代理服务:客户端程序通过代理服务来访问服务。这里代理服务就是一个中介,实际过程中,客户端先和代理服务创建连接,再由代理服务于服务端创建连接。而不是客户端和服务端直接产生联系。这样,代理服务可以控制不同的客户端对服务端的访问,保证服务端的安全。


4.WCF实践


(1)建立契约和服务


契约和服务的建立很简单(可以简单看做接口,实现类和数据类型的建立)。

a.我们可以借助一定的“帮助”来建立,如在VS中,新建项目选择WCF服务库

b.如果不需要帮助,我们可以自己新建类库,契约是一个类库,服务是一个类库。

c.还有一种高级的帮助,就是VS中的新建项目下的WCF服务应用程序。它其中有一个.svc文件,并把它设置成起始页,只要F5运行程序。服务就可以执行了。所以,顾名思义WCF服务应用程序不同于WCF服务库,它是可以执行的。通过WCF的客户端测试工具可以直接调用该服务。

这里也注意在建立数据契约和服务契约时用到的两个引用:

using System.Runtime.Serialization; 【DataContract】【DataMember】

using System.ServiceModel;【ServiceContract】【OperationContract】


(2)选择宿主,配置终结点,发布服务


a.IIS

把上述的svc文件发布到IIS上,打开,获得终结点中的地址A,对于IIS这种方式,B只能是HTTP绑定类型。

b.Windows应用程序

(i)在应用程序中引用契约类库和服务类库.

(ii)建立宿主

(iii)配置终结点和元数据(通过代码或配置文件)

如果只配置了终结点,那么客户端发现不了服务,客户端必须引用服务端的契约类库,只有配置了元数据和服务行为,告诉客户端可以发现,怎么发现服务,那么客户端可以不用引用服务端的契约类库。

(iv)运行宿主程序,启动服务


(3)客户端调用


是否需要引用契约类库,根据你的服务端是否配置了元数据和服务行为,如果没有,就得引用。

a.添加服务引用,会自动生成代理类来调用

b.使用svcutil生成文件。

c.通过通道工厂。


5.WCF好处



技术分享

6.参考资料


《WCF初接触实作 - Higel - 博客园》
《通过SvcUtil.exe生成客户端代码和配置 - cjfwu - 博客园 》
《WCF初接触实作之服务发布和使用》

  上述几篇文章的里面有具体的代码,我已经实践过了,如果有什么问题我们可以交流啊。
  有了上面的宏观认识和知识储备,接下来就是试着搭建一下我们项目中的WCF,ING……



WCF总结——宏观认识和简单实践

标签:wcf

原文地址:http://blog.csdn.net/u010924834/article/details/44115545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!