现在每个分布式项目中基本都用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>
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u010176014/article/details/46682455