新生入学项目之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,并将异常信息指示返回为自定义格式。

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

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

二、项目应用

统一服务接口

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

向外发布的接口:

    [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在项目中应用的体会。

时间: 2024-12-27 14:15:40

新生入学项目之WCF入门的相关文章

WCF入门教程

无废话WCF入门教程一[什么是WCF] wcf问题有问必答,欢迎加群: 一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NET Framework 3.0 开始引入. WCF的最终目标是通过进程或不同的系统.通过本地网络或是通过Internet收发客户和服务之间的消息. WCF合并了Web服务..net Remoting.消息队列和Enterpris

WCF 入门(25,26,27,28)

前言 项目赶时间,工期紧,熬过这段时间应该就好了吧.希望如此. 今天把自己那部分写的差不多了,回来和小伙伴一起又看了一遍<夏洛特烦恼>,还挺好看的,明天继续加班,do it. 第25-28集 第25集讲的是如何用winform来host 一个WCF service. 第26集讲什么是windows 服务 第27集讲用windows 服务来host 一个WCF service. 第28集讲用windows 服务来host 一个WCF service的优缺点. 用console,winform 或

WCF入门简单教程(图文) VS2010版

在这个例子中我们将使用VS 2010 创建一个WCF服务,其中会了解 [DataContract] [ServiceContract] 等特性.  内置的 WCFSVCHost ,并使用"WCF测试客户端"来测试我们创建的服务. 注意下面的所有类.接口及方法都添加了public 的访问级别. 一,建立一个WCF服务库 创建一个WCF服务库项目 在解决方案中会自动为我们生成两个类文件"IService1.cs"和"Service1.cs". 这两个

WCF入门教程(五)配置文件

WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方式来架设服务. 当然配置文件的方式还是很灵活,应用广泛. 通过此文章具体介绍WCF如果通过配置文件的方式进行配置. 一.配置文件功能 需要配置服务的EndPoint,设置相关绑定协议以及服务协定,并且还可以限定其具体的行为等. 二.配置文件结构 主要配置内容包括service节点.binding和b

WCF入门教程(vs2010)

这几天挺别人提起WCF,鄙人之前只知道WPF,对WCF这个东东不甚了解,经过查阅网上的资料略有所得,和大家交流一下. 首先WCF是什么? Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口.官方的定义就是这些,我们需要知道的就是他是一个通讯接口,直白的说就是用于两者之间联系的工具. 这里有人能想到这和webSerivice不是一样的吗?直接看官方的一些对WCF的描述我想你就明白了. 在 .NET

WCF入门教程(二)从零做起

通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) 定义了协议,具体什么操作,操作的参数和返回值等信息 通过ServiceContract.OperationContract.DataContract.DataMember等属性参数,将服务.操作.数据结构定义清楚. 在这里我们还清晰看到,WCF服务传输数据类型不只是通用数据类型,而且还可以传输自定义的复杂类型.哪些字段要进行传输,都可以通过D

新生入学——3.0总结

之前写了一篇可以说是感受.收获的总结,现在还是要好好的总结一些3.0新生入学的成果和需要完善的地方. 如果你说我是新生入学元老级人物我真的没有意见,从1.0一直到3.0,也是醉了.只听说过谁是骨灰级程序员,哈哈!虽然3.0还没有结束,还是冒险从三个方面来总结一下3.0我们的新生入学系统. 一.时间 在此仅以几张甘特图代表我跌宕起伏的心情.有我们系统的每个人的. 团队两个人: 分析,大约半个月的时间只有小乖和小美在奋斗,两个人就很自由,但也很有效率,开始的阶段也就是搭框架,学习3.0改善的东西,然

【转】WCF入门教程六[一个简单的Demo]

一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来学习的,我们学习WCF也是一样的.从简单来看(不包括安全.优化等相关问题),WCF的增删改查和WebForm相差无几.WCF只是把具体"实现"写在"Service端",而"调用"放在了"Client端".觉得有帮助别忘了点个赞哈,

无废话WCF入门教程六[一个简单的Demo]

wcf技术交流,同学习,同进步. 群号:89718412 一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来学习的,我们学习WCF也是一样的.从简单来看(不包括安全.优化等相关问题),WCF的增删改查和WebForm相差无几.WCF只是把具体“实现”写在“Service端”,而“调用”放在了“Client端”.觉得有帮助别忘了点个赞哈,谢谢哦~ 二