WCF

现在每个分布式项目中基本都用WCF。高校云平台从V1.0,V2.0,V3.0 的   应用中体会很深。

理解

      Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。看到百度这样的解释,   对于一些对WCF不太了解的人来说,也挺抽象的。我的理解主要在“通讯”两个字。一个应用程序能跟另一个应用程序之间有数据和服务的交换沟通全靠的是WCF。

      拿最近做的例子来讲,我负责基础系统-学生模块,其中必然有对学生信息的管理。现在    又有一个考试系统。这是一个单独开发的系统。但是它需要我负责模块的学生信息,这时候我们用上WCF 就能实现这样的功能。

 

怎么用?

提供服务端

 1打标签

     在实现中我会把考试系统需要的接口都打上   [ServiceContract]标签,其中每个法都会打上[OperationContract]标签。只有了这样的标签,才能通过WCF被另一个系统调用。

    还需要在所传输的实体类前打标签[DataContract] ,实体属性前打标签[DataMember]。

 2在该层的配置文件中设置好要用的协议。协议有两种,wsHttpBinding和basicHttpBinding 两者的大致看起来很相似,但也有很多不同,  有兴趣的可以多了解一下。再用的时候,我们当时是,因为basichttpbinding协议不支持分布式事务,所以改用的wshttpbinding。

  3再有就是我通过IIS 或其他方式将我的程序发布好。


应用服务端:

   接下来就是考试系统调用我的模块需要在调用端做的一些配置。在这之前我们先看一下WCF的中的Endpoint结构,一个Endpoint就类似于xml web service中的一个asmx文件,它包括三个组成部分1)Address 2) Binding 3) Contract,此三者被称为组成Endpoint的"ABC"

ABC分别解决了Endpoint的如下问题:

A解决了Endpoint在哪的问题,也就是"Where is the endpoint?"A即Address。

B 解决的是如何与Endpoint通讯的问题,也就是"How to communicate with endpoint?" B即Binding。

C解决了Endpoint提供什么功能的问题,也就是"What functionalities do the endpoint provide?"C即Contract。


具体的代码如下

 
<span style="font-family:KaiTi_GB2312;font-size:18px;"> <endpoint address="http://192.168.24.247:7004/BasicStudentService.svc?wsdl" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding_default" contract="ITOO.BasicStudent.Contracts.IBasicStudentService" name="wsHttpBinding_services" /></span>


     WCF的各种好处,统一性,互操作性,安全与可信赖,兼容性。但我体会最深的还是在项目中的分布式。各个模块互不影响,也可以发布在多台服务器上。减少了单个服务器的压力。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值