WCF概念
WCF 概念
WCF是.NET Framework 上灵活通讯技术。在.NET 3.0推出之前,一个企业解决方案需要几种通讯方式。对于独立于平台的通讯,使用ASP.NET Web服务。对于比较高级的 Web 服务-可靠性、独立于平台的安全性和原子事务等技术-Web Service Enhancements 增加了ASP.NET Web 服务的复杂性。如果要求通讯比较快,客户和服务都是.NET 应用程序,就应使用.NET Remoting 技术。 .NET Enterprise Services 支持自动事务处理,它默认使用DCOM 协议,比用.NET Remoting 快。 DCOM也是允许传递事务的唯一协议。所有这些技术都有不同的编程模型,这些模型都需要开发人员有许多的技巧。
.NET Framework 3.0 引入了一种通讯技术WCF,它包含上述技术的所有功能,把他们合并到一个编程模型中:Window Communication Foundation(WCF)。
本章介绍的明明空间是System.ServiceModel。
WCF合并了ASP.NET Web服务、.NET Remoting 、消息列队和Enterprise Service 的功能,WCF 的功能包括:
存储组件和服务
与联合使用自定义主机、.NET Remoting 和 WSE 一样,也可以将WCF 服务存放在ASP.NET运行库、WINDOW服务、COM+进程 或 WINDOW 窗体应用程序中。
声明行为
不要求派生自基类(.NET Remoting 和 Enterprise Service 有这个要求),也可以使用属性定义服务。这类似于用ASP.NET开发Web服务。
通信信道
在改变通信信道方面,.NET Remoting 非常灵活,WCF 也不错 ,因为它提供了相同的灵活性。WCF提供了用HTTP、TCP和IPC 信道进行通信的多条信道。也可以创建使用不同的传输协议的自定义信道。
安全结构
为了实现独立于平台的Web服务,必须使用标准化的安全环境。所提出的标准用WSE 3.0 S实现,这在WCF中被继承下来。
可扩展性
.NET Remoting 有丰富的扩展功能。他不仅能创建自定义信道、格式化程序和代理,还能将功能注入客户端和服务器上的消息流。WCF提供了类似的可扩展性。但是WCF的扩展性用SOAP标题创建。
支持以前的技术
要使用WCF,根本不需要完全重写分布式解决方案,因为WCF可以与已有的技术集成。WCF提供的信道使用DCOM与服务组件通信。用ASP.NET开发的Web服务也可以与WCF集成。
最终目标是通过进程和不同的系统、通过本地网络和通过Internet 收发客户和服务之间的消息。
如果需要以独立于平台的方式尽快收发消息,就应这么做。在远程试图上,服务提供了一个端点,她用协定、绑定和地址来描述。协定定义了服务提供的操作,绑定给除了协议和编码信息,地址是服务的位置。呵护需要一个兼容的端点来访问服务。
客户调用代理上的一个方法。代理提供了服务定义的方法。但把方法调用转换为一条消息,并把该消息传输倒信道上。信道有一个客户端部分和一个服务器端部分,他们通过一个网络协议来通信。在信道上,吧消息传递给调度程序,调度程序再把消息转换为用服务调用的方法调用。
WCF支持几个通信协议。为了进行独立于平台的通信,需要支持Web服务标注。要在.NET应用程序之间通讯,可以使用较快的通信协议,其系统开销较小。
下面几节介绍独立于平台的通讯所使用的核心服务的功能。
SOAP
为了记性独立于平台的通讯,可以使用SOAP协议,它得到WCF 的直接支持。
WSDL
文档描述了服务的操作和信息。
REST
WCF还提供了使用REST进行通信的功能。REST并不是一个协议,但定义了使用服务访问资源的几条规则。支持REST的Web服务是基于HTTP协议和REST规则的简单服务。
JSON
除了发送SOAP消息之外,从Javascript中访问服务最好使用JSON。.NET包含一个数据协定序列化程序,可以用JSON标记创建对象。
WCF概念的更多相关文章
- WCF开发指南之构建服务
一. 引言 Windows通讯基础(简称为WCF)是一种SDK,用于让你使用典型的CLR编程结构(例如用于发布和消费服务的类和接口等)来构建Windows面向服务的应用程序.WCF的编程模型是声明性的 ...
- WCF消息传递
通过了解了WCF的一些基本概念并创建和编写WCF应用中的相应方法,实现了WCF服务和客户端之间的调用,就能够理解WCF应用是如何进行通信的.了解了一些基本的WCF概念后,还需要深入了解WCF消息的概念 ...
- WCF学习目录
WCF 基本 WCF概念 WCF配置文件详解 多个不同类对象传输思路 WCF 大文件传输配置 Uri ? & = 毫秒数据字符串转换为DateTime POST请求——HttpWebReque ...
- 使用 ServiceStack 构建跨平台 Web 服务
本文主要来自MSDN杂志<Building Cross-Platform Web Services with ServiceStack>,Windows Communication Fou ...
- 使用 ServiceStack 构建跨平台 Web 服务(转)
出处:http://www.cnblogs.com/shanyou/p/3348347.html 本文主要来自MSDN杂志<Building Cross-Platform Web Service ...
- 菜鸟学习WCF笔记-概念
背景 WCF这个词语一直不陌生,以前也使用过多次在实际的项目中,但是一直没有时间来做个系统的学习,最近抽点时间,看看 蒋金楠的<WCF全面解析>学习下,顺带做些笔记,如有错误,欢迎各路大神 ...
- WCF回顾一、基本概念和应用场景
一.WCF描述 wcf是一款基于面向服务的架构的通讯框架平台,在分布式框架中得到了广泛使用. wcf入门非常简单,只要花几分钟就能编写一个完整的wcf程序,而实际上WCF是概念非常多的一门技术,需要花 ...
- WCF分布式服务1-核心概念
参考msdn library for WCF Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架. 借助 WCF,可以将数据作为异步消息从 ...
- WCF分布式开发步步为赢(1):WCF分布式框架基础概念
众所周知,系统间的低耦合一直是大型企业应用系统集成追寻的目标,SOA面向服务架构的出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则.SOA如此炙手可热,各大厂商都推 ...
随机推荐
- Node快速安装
1.安装nvm nvm是一个快速安装和切换nodejs版本的管理器 直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git 目录存放 git 项目: $ cd ~/git ...
- jquery select选中表单特效三级联动
好久没发帖了,今天发一个jquery select的表单三级联动,希望能对有需要的朋友有点帮助. js代码,当然还要加上jquery的包,应该都有的,这里就不发了. <script type=& ...
- smartjs 0.2 OOP讲解 - Klass 类继承
SmartJS2.0加入OOP的功能.OOP包括klass与factory两个对象. Klass 类继承 与其他的类继承相比,smartjs使用了执行指针的概念(后面例子中会介绍),另外提供base基 ...
- (转载)Linux 套接字编程中的 5 个隐患
在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性.事实上,很难找到一种不支持 Sockets API 的现代语言.该 API 相当简单,但新的开 ...
- JavaScript中的数组详解
JavaScript中的数组 一.数组的定义 数组是值的有序集合,或者说数组都是数据的有序列表. 二.创建数组 [字面量形式] 1.空数组 var arr=[]; 2.带有元素的数组 var arr= ...
- [C/C++][文件操作] 对比目录并列出同名较新文件、较旧文件 0.1
主要是模仿robocopy的部分功能 (robocopy /L 参数可以列出本地目录和备份目录中的异同之处,主要是标记出:较新的.较旧的.多出的文件 ) 现在还不会写GUI,打算后面自己做目录树dif ...
- 可编译为 UNICODE 和 ANSI 版本的遍历目录树程序_0.1
路径暂时是写死的 编译两个版本的程序: g++ treeT.cpp -municode -D_UNICODE -o treeT_UNIg++ treeT.cpp -o treeT_ASC 为了观察 ...
- ASP.NET MVC5利用EF,反向自动生成数据库
1.在Model类里面,写好相应的属性. using System; using System.Collections.Generic; using System.Linq; using System ...
- .net中以传引用的方式 向方法中传参数
CLR(CommonLanguageRuntime)公共语言运行时,允许以传引用而非传值的方式传递参数.在C#中,这是用关键字 out 和ref来做到的. 从CLR角度来看,这两个关键字没什么区别,生 ...
- C#操作IIS程序池及站点的创建配置
最近在做一个WEB程序的安装包:对一些操作IIS进行一个简单的总结:主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作:首先要对Microso ...