C#2008与.NET 3.5 高级程序设计读书笔记(25) WCF

1.什么是WCF

WCF的全称是:Windows Communication Foundation。从本质上来说,它是一套软件开发包,是微软公司推出的符合SOA(Service Oriented Architecture)思想的技术框架。
WCF为程序员提供了丰富的功能,其中包括:托管、服务实例管理、异步、安全、事务管理、离线队列等。并且WCF对产业中的标准协议进行了封装和定义,它把程序员从繁琐的通信、格式编码中解放出来,使得程序员能够专注于业务逻辑的实现。同时,WCF统一了微软公司之前推出的多种分布式技术,其中包括:
(1). Web服务和WSE。
(2). .Net Remoting。
(3). .Net 企业服务。
(4). 微软消息队列(MSMQ)。
WCF对这些技术的集成包括两个方面:
(1). WCF的架构本身吸取了这些技术的精华。
(2). WCF开发的服务/客户端可以和现有的Web服务、MSMQ程序进行交互。

2.WCF核心程序集

WCF的功能由安装在全局程序集缓存(GAC)里面的一组.NET程序集表示.

3.WCF应用程序的基本构成

WCF服务程序集:这个*.dll包含了希望向外部用户公开的整体功能的类和接口

WCF服务宿主:这个软件模块是承载WCF服务程序集的实体

服务寄宿的目的就是开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或多个终结点,使之暴露给潜给的服务消费者。服务消费者最终通过相匹配的终结点对该服务进行调用。

WCF客户端:这是通过中间代理访问服务功能的的应用程序

4.WCF的ABC

地址(A,address):服务的位置,在代码中,用System.Uri类型表示,然而,值一般保存在*.config中.

地址决定了服务的位置,解决了服务寻址的问题.

在WCF框架中,每个服务都具有唯一的地址。在SOA系统中,其它服务和客户端通过服务的地址来对服务进行访问。一个服务的地址由一个统一资源标示符(URI)来表示。下面是几个地址示例:

http://localhost:80/Service

net.tcp://dc3web1:9023/MyService

net.msmq://localhost/MyMsMqService

绑定(B,binding):WCF附带了许多不同的绑定来指定网络协议,编码机制和传输层.

绑定实现了通信的所有细节,包括网络传输、消息编码,以及其他为实现某种功能(比如安全、可靠传输、事务等)对消息进行的相应处理。WCF中具有一系列的系统定义绑定,比如BasicHttpBinding、WsHttpBinding、NetTcpBinding等

契约(C,contract):从WCF公开的每一个方法的描述

WCF服务契约标记了各种特性,如果服务契约的成员只包含简单的数据类型,可以只使用[ServiceContract]和[OperationContract]特性来构建完整的WCF服务,如果有自定义类型成员,需要使用System.Runtime.Serialization命名空间的[DataMember]和[DataContract]类型

配置文件设置绑定例子:

代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<services>
<service name="WcfServiceLibrary1.Service1" behaviorConfiguration="WcfServiceLibrary1.Service1Behavior">
<!-- 地址,绑定,契约-->
<endpoint address ="HelloWord "
binding
="wsHttpBinding "
contract
="WcfServiceLibrary1.IService1 ">
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
原文地址:https://www.cnblogs.com/engine1984/p/1803629.html