【ITOO】--WCF入门

        做新生入学系统这么长时间了,新加入的伙伴问我关于WCF的事情,自己说的也是云里雾里的,还是回过头来总结一下,要不然永远也不会知道自己到底懂得了多少。

                          

一、概述

1、WCF -- 服务

         WCF(Windows Communication Foundation)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。

       WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

  WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。

  WCF专门用于面向服务开发。

2、Contracts -- 契约

在WCF中,契约分为四种:

(1)服务契约:Service Contract用语定义服务操作

<span style="font-size:18px;">    [ServiceContract]//用于指示WCF此类或者结构能够被远程调用
    public interface IFreshMajorServiceWCF
    {
        #region 查询专业(带学院参数的查询) + QueryMajor()
        [OperationContract] //用于指示WCF该方法可被远程调用。
        List<FreshMajorServiceContracts> QueryMajor(string department);
        #endregion
    }</span>
(2)数据契约:Data Contract  用于定义数据结构

    [DataContract]//用于指示 WCF此类或者结构能够被序列化并传输
    public class FreshMajorServiceContracts
    {
        [DataMember]//用于指示WCF该属性或者字段能够被序列化传输。
        public string id { get; set; }                  //专业ID
        [DataMember]    
        public string name { get; set; }                //专业姓名
    }

(3)异常契约:Fault Contract 用于自定义错误异常的处理方式

          在默认情况下,当服务端抛出异常的时候,客户端能接收到异常信息的描述,但这些描述往往格式统一,有时比较难以从中获取有用的信息,此时,我们可以自定义异常消息的格式,将我们关心的消息放到错误消息中传递给客户端,此时需要在方法上添加自定义一个错误消息的类,然后在要处理异常的函数上加上FaultContract,并将异常信息指示返回为自定义格式。

【ITOO】--WCF入门_第1张图片

(4)消息契约:Message Contract 用于控制消息格式

       可以自定义消息格式,包括消息头、消息体,还能指示是否对消息内容进行加密和签名。

                   

二、项目应用

统一服务接口

        之前我们的开发是需要向外发布多个接口,客户端来访问每一个接口;用了WCF以后我们让这个接口去继承这些所有的接口,最终我们只向外发布了一个接口,就可以访问我们所有的服务。这就是统一服务接口。我们要将我们的WCF服务发布到IIS上。

【ITOO】--WCF入门_第2张图片

向外发布的接口:

    [ServiceContract]
    public interface IFreshService : IFreshFlowService, IFreshStuService, IFreshDepartmentService, IFreshStudentServiceWCF, IFreshStudentInfoWCF, IFreshMajorServiceWCF, IDistributeClassServiceWCF, IFreshDormitoryService, IFreshAdministratorService, IFreshImportStuServiceWCF,IFreshFamilyInfoService ,IFreshEducationExperienceService ,IFreshStudentReportService ,IFreshmenForBase 

                    

三、WCF好处

1、统一性

          我们可以像创建对象一样来创建服务,WCF是对于ASMX,.Net Remoting,Enterprise Service等一些技术的整合。虽然现在体会不到真正的好处,但是确实是非常强大的。

2、互操作性

         WCF最基本的通信机制是简易对象访问协议,保证了系统之间的互操作性。可以跨进程、跨机器甚至与跨平台的通信,只要支持标准的Web Servie。

3、安全域可信赖性

          WS-Security,WS-TrustWS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。

4、兼容性

          WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。


这篇文章只是基本的学习一下WCF的一些相关的知识,接下来一步一步的深入的对WCF在项目中应用的体会。

       

你可能感兴趣的:(【ITOO】--WCF入门)