学习 WCF (1)--基础篇

简介:

Windows Communication Foundation(WCF)是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service Model Layer),使用户用最少的时间和经历建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。我将通过几篇文章和大家一起学习WCF,希望能对新手学习WCF有些帮助。

从功能的角度来看,WCF 完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ 等技术的并集:

WCF Service

  软件设计的一个重要原则:软件组件必须针对特定的任务专门的设计和优化。假如我们要做一个管理软件,想象一下,如果一个软件非常依赖于与外界通信,我们不能把管理软件与外界通信的逻辑考虑在管理系统内部。所以必须把通信任务委托给不同的组件。用WCF术语来说,这个组件称为WCF服务。更通俗的将,WFC服务就是负责与外界通信的软件。

一个WCF Service 由下面三部分构成:

Service Class:一个标记了[ServiceContract]属性的类,在其中可能包含多个方法。除了标记了一些WCF 特有的Attribute 外,这个类与一般的类没有什么区别。
Host(宿主):可以是应用程序,进程如Windows Service 等,它是WCF Service 运行环境。
Endpoints:可以是一个,也可以是一组,它是WCF 实现通信的核心要素。

在后面的实例应用中,我还会提到上面这三个概念。


WCF 端点

个WCF服务必须能为不同的通信场景提供不同的访问点,这些访问点称为WCF端点。也就是上面所提到的EndPoint。每个端点都有一个绑定,一个地址和一个契约:

(1)绑定:指定该端点如何与外界通信,也就是为端点指定通信协议。

 

  • 传输协议:端点和客户端通过传输协议通信。比较常用的是HTTP和TCP。
  • 编码协议:在进入通信链路之前,端点和客户通过编码协议对通信进行编码。比较常见的是XML文件二进制码。
  • 安全协议:端点和用户通过安全协议保证通信的安全。比如一些敏感的信息,要求通过加密的传输信道。比较常见的是HTTPS和WS-Security。

    (2)地址:一个端点地址指定端点的位置,如果通过端点与WCF通信,必须把通信指定到网络地址。

    (3)契约:一个端点上契约指定通过该端点的用户能访问到WCF服务的什么操作。

    在WCF 中,类ServiceEndpoint 代表了一个端点(Endpoint),在类中包含的EndpointAddress,Binding,ContractDescription 类型分别对应端点的地址,绑定和契约。

    WCF服务模型

    最后简单的说下WCF的服务模型。

    WCF是一个层次架构,该架构的顶层称为服务模型,用于WCF服务的建模。

    WCF服务模型提供了3种重要手段对自己的WCF服务进行建模:

    (1)面向属性编程:WCF服务模型带有一套元数据属性,可以通过属性表示相应的实体,如:属性,接口,类等。

    (2)面向配置编程:WCF服务模型带有方便的配置语言,可以通过它在配置文件中进行建模。

    (3)常规命令编程:WCF服务模型带有一组方便的托管类,可以使用这些托管类对服务进行建模。

    简单的基础知识就说这些,下篇将介绍如何开发WCF服务

  • http://www.cnblogs.com/gaoweipeng/archive/2009/04/30/1447226.html


本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2011/08/08/2130991.html,如需转载请自行联系原作者
目录
相关文章
|
9月前
|
网络协议 网络架构 Windows
框架学习——WCF框架
框架学习——WCF框架
230 0
|
安全 C#
WCF技术我们应该如何以正确的方式去学习掌握
一、WCF技术我该如何学习?       阿笨的回答是:作为初学者的我们,那么请跟着阿笨一起玩WCF吧,阿笨将带领大家如何以正确的姿势去掌握WCF技术。由于WCF技术知识点太多了,就纯基础概念性知识都可以单独出一本书来讲解,本次分享课程《C#面向服务编程技术WCF从入门到实战演练》开课之前,阿笨还是希望从没了解过WCF技术的童鞋们提前先了解一下WCF技术,至少要明白WCF技术的ABC三要素分别指的是什么。
1172 0
|
安全 网络协议 消息中间件
|
Web App开发 JavaScript 前端开发
跟着Artech学习WCF扩展(3) 扩展CallContextInitializer
代码下载:点我   作为备份 Artech的代码要在他的博客里面找的 Artech大师级的“总分总”式的风格,的确是和高手过招用,作为一面菜鸟,纠结了老半天才明白,原来写博客也可以前后呼应 于是把这个小节点整理到一起已被以后不时只需     5 、自定义CallContextInitializer (Step 12 & Step 18) 提到CallContextInitializer,我想有一部分人会马上想到System.Runtime.Remoting.Messaging.CallContext。
742 0