WCF--初识

WCFwindows  communication fundation 对于这个名词也许你很陌生,也许你很熟悉,但是我想告诉你它一直在我们身边。

还记得我们敲机房系统的时候创建项目吗?还记的学习设计模式的时候创建的项目吗?甚至说为某项功能敲的小Dome那你有没有发现WCF呢,也许你发现了,也许你没有发现,而我就是未发现者。看看下面这张图片,你能不能找到它?

相信聪明的你这次很容易的就在这个窗口中发现了WCF的踪影。

我一直在想一个问题,它就在那里我却不自知。记得师哥面试的时候,面试官曾经问过他,关于WCF的知识,那个时候哪里知道WCF听都没有听说过。其实它就在我们的身边,只是我们缺乏发现美的眼睛而已。

今天呢,颖杰就将WCF这项技术介绍给大家,说技术也许说框架更合理一些。

一 什么是WCF?

WCF是基于windows平台下开发和部署服务的软件开发包。它为服务提供了运行时的环境。它是.net framework 的一个重要组成部分。它集成了.net remoting、web 服务、wse以及MSMQ的所有的特性使开发者能够以统一的方式开发面向服务的应用程序。它微软准对企业级的应用的重要产品。WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。它使得开发者能够建立一个跨平台、可信赖、事务性的解决方案。且能与已有系统兼容协作。

看了上面的解释也许你要点乱乱的,什么remoting 、什么MSMQ,这些也许你都没有听说过, 没关系今天这篇文章将介绍WCF,后面的文章我们将陆续介绍他们之间的不同。

相信大家都有网上购物的经历,打开淘宝、京东、天猫,选择自己需要的object。鞋子要37码的,衣服要均码的,白色的等等。只要点击了付款,交钱之后只要等着快递叔叔的电话或短信就可以了。这个时候其实就是我们享受了网上购物的服务。它让我们足不出户,体味世间万物。我想说其实WCF就是为服务提供了运行时的环境,就像现在的网上购物的环境一样。客户端只要配置,就可以享受服务。

二 托管

WCF服务类不能凭空存在,每个WCF服务类都必须托管在windows进程中,该进程被称为宿主进程。宿主可以有IIS提供,也可以由Windows Vista的Windows激活服务(WAS)提供,或者开发者直接将它作为应用程序一部分,说白了就是WCF服务交给谁管理。交给IIS,还是WAS,或者是自己管理。就如同现在你是卖家,你想在网上开一家小店,你是在淘宝注册呢?还是在京东,或是在窝窝团?当然了不同的购物网站有各自不同的特点,你根据自己的实际情况选择需要注册的网站,WCF服务也是这样。

下面介绍一下WCF的各种不同的托管。

1 IIS托管

主要优势是宿主进程可以在客户端提交第一次请求的时候自动启动,在IIS环境中运行的WCF服务充分利用了IIS功能,例如进程回收、空间关闭、进程运行状况监视和基于消息的激活。此宿主选项要求正确配置IIS,但不需要编写任何承载代码作为应用程序的一部分。

具体的实践代码参见:《无废话WCF入门教程

2 WAS托管

它是windows激活服务,是一个系统服务,是IIS 7 的一部分。也可以独立的安装与配置,它与IIS 6的区别在于was不只局限于http协议,它支持wcf可以的所有协议、端口和队列,比如http、TCP、MSMQ、IPC协议。was提供了大量基于自托管的功能,包括:应用程序池、回收机制、空闲时间管理、身份管理以及隔离。宿主进程可以根据情况选择使用这些进程。

特别指出:WAS是IIS 7 的一部分,它是IIS的新增功能,IIS 6 是不具备的,也正是因为IIS 7 有了它,才使得以前的iis(iis 6)只能支持HTTP协议,发展为同时支持非http的协议。

3 自托管

自托管就是开发者提供和管理宿主进程的生命周期。它适用于以下场景:需要确定客户端与服务端的进程边界时;服务与客户端处理相同的进程中时。自托管进程可以是控制台应用程序、windows应用程序、windows服务等,进程必须在客户端服务之前运行。它支持的协议与WAS托管相同。

三 绑定

服务之间的通信方式是多种多样的,有多种可能的通信模式。包括:同步请求/应答消息、双向消息、即时消息、持久队列。消息的传递协议也有很多种:http、tcp、P2P、IPC、MSMQ。消息的编码格式包括:保证互操作性的纯文本编码格式、优化性能的二进制编码格式、提供有效负载的MTOM编码格式。对于消息的安全保障也有多种 策略。对于服务之间的通信还需要一些其他的很多纷繁复杂的属性需要设置。

为了简化操作,易于管理,WCF引入了绑定技术将这些通信特征组合在一起。一个绑定封装了诸如传输协议、消息编码、通信模式、可靠性、安全性、事务传播以及互操作性能等相关选项的集合。理想状态下,我们希望从设置繁杂服务代码中解放出来,而把主要工作集中在业务逻辑的实现方面。

WCF为我们提供了各种绑定,当然我们也可以自行调整绑定的属性,也可以不采用提供的绑定,自己定制。WCF为我们提供了9中标准绑定:基本、TCP、对等网、IPC、web服务、WS联邦绑定、WS双向绑定、MSMQ绑定、MSMQ集中绑定。关于具体的这些绑定呢,以后的文章将具体介绍。

WCF中为什么要有绑定呢?

个人觉得它是为了在客户端与服务端进行消息的传递。就像我们从一个地方到另一个目的地。我们有多种可选择的交通工具。根据我们自己的需要,选择适合自己的交通工具。WCF的绑定其实就是为通信选择设置交通工具。

四 契约

WCF的所有服务都会公开为契约。契约与平台无关,是描述服务功能的标准方式。WCF定义了四种类型的契约:服务、数据、错误、消息契约。服务契约描述了客户端能够执行的服务操作。数据契约地应了服务交互的数据类型。错误契约定义饿了服务抛出的错误,以及服务处理错误和传递错误到客户端的方式。消息契约允许服务直接与消息交互。消息契约可以是类型化,也可以是非类型化的。

总结:

WCF的出现是微软专门为分布式而开发的,虽然说以前也有很多的技术可以实现,但是相对比较麻烦。WCF综合以往的各项技术,取其精华,去其糟粕。

PS: 看到一句话觉得很有霸气,和大家分享:

以WCF为基础框架搭建面向服务的企业级应用程序,以WF工作流引擎支撑企业应用中业务流程的传递与控制,以Cardspace和WCF固有的安全策略保证企业信息的安全,最后以asp.net
AJAX、wpf和silverlight技术丰富界面的绚丽表现,从而改善企业客户对应用程序的体验,这就是微软实现企业级用用的霸业宏图。WCF在其中的地位举足轻重。

微软在用它的技术有条不紊的实现着它即定的宏伟蓝图,而我却对上面的很多技术都不熟悉,可见消息之闭塞,我在想:那通过什么途径才能让我们了解更多的现在技术的发展趋势呢,也许看博客、实时关注行业最新动态是最快最有效的途径吧。

这些都是自己对WCF暂时见解,欢迎各位指正。

时间: 2024-11-08 16:52:12

WCF--初识的相关文章

WCF初识3

WCF的三种消息交换模式 1.One-Way Calls 2.Request/Reply 3.Duplex 第一种是肉包子打狗,有去无回的类型.存在如下特征: ⑴没有返回值,返回值只能为void. ⑵不能包含ref或者out类型的参数. ⑶只有客户端发起请求,服务端并不会对请求进行回复. 第二种是有去有回类型,存在如下特征: ⑴调用服务方法后需要等待服务的消息返回,即便该方法返回void类型 ⑵相比Duplex来讲,这种模式强调的是客户端的被动接受,也就是说客户端接受到响应后,消息交换就结束了.

WCF初识

WCF能干什么? 在win32中,应用程序是运行在进程的线程中的,.NET出现之后,出现了AppDomain,其实就相当于在进程和线程之间又又了一层包装层,类似于子进程的概念,在一个进程或者应用程序域中的对象能进行直接的访问和控制,但超出这个范围,便不能进行直接的访问和控制了,所以说进程或这应用程序域有一定的隔离作用,如果是分布在不同的网路,不同操作系统上的不同进程,他们进行通信的难度就更大,而分布式应用程序要求的就是将原本隔离的作用域通过一定的契约联系起来.从而达成多个系统的沟通协作.当然能实

WCF 初识(一)

WCF的前世今生 在.NETFramework 2.0以及前版本中,微软发展了Web Service(SOAP with HTTP communication),.NET Remoting(TCP/HTTP/Pipeline communication)以及基础的Winsock等通信支持. 由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如.NET Remoting可以开发SOAP, HTTP通信),对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人

我们一起学习WCF 第一篇初识WCF(附源码供对照学习)

前言:去年由于工作需要我学习了wcf的相关知识,初期对wcf的作用以及为何用怎么样都是一知半解,也许现在也不是非常的清晰.但是通过项目对wcf的运用在脑海里面也算有了初步的模型.今天我就把我从开始wcf所遇到的困难以及解决方案一点点记下来,可能还有很多不足之处那我们一起共同学习.在学习之前我们有必要初步的看下百度百科对wcf的解释,让我们心中有这一个概念,然后建立项目,然后再次看概念,然后在去更深层的建立项目,然后再去理解这样反复的去做我相信可以做好wcf.那么下面我就会从初识wcf,wcf消息

初识WCF

WCF是对现有分布式通信技术的整合,其中包括Com/DCom..Net Remoting.Web服务及其WSE(web服务的升级版本).MSMQ..Net Remoting 远程调用,可以实现分布式开发,但是不能跨平台或者说是只能是在.Net和.Net之间进行调用.不能实现真正意义上的面向服务Web 服务 WSE 可以说是真正意义上的面向服务的设计,可以实现跨平台的调用,但是web服务只能通过http的方式传输,并且安全性.可靠性得不到有效的控制,所以不能完成企业级应用的要求.MSMQ 是基于W

WCF 之 初识WCF

在编程中服务的作用越来越大了,.net从2.0的 webservice,到3.5之后的WCF,服务的功能越来越强了.现在先从简单的看起,先看看WCF服务的发布. 现在来看看一步一步发布 WCF 服务. 环境: 系统:windows 7 开发工具:visual studio 2010 .net 版本:4.0 一.新建一个WCF服务 1.“ 文件 → 新建 → 项目 → WCF 服务应用程序 ”: 2.建好后,手动增加几个类,如图: 3.实现服务接口,创建序列化的数据类. 本项目中: [1] 服务接

wcf学习笔记--初识wcf

WCF,长久以来一直是只闻其名,未见其真身. 这家伙可以说是.net跨平台的利器,简单说来,wcf可以寄宿在多种类型的程序之中,比如IIS,exe,com+等等,看官方介绍是很NB的一个东西,奈何我是一窍不通... 根据WCF的使用场景,可以简单的概括为两方面: 1.服务器寄宿wcf服务: 2.客户端调用服务: 先说wcf的寄宿,wcf的寄宿方式有多种,常用的有IIS,winform,console控制台: IIS寄宿: 1,创建wcf服务应用程序,注意两个地方:应用于接口的[ServiceCo

初识WCF之使用配置文件部署WCF应用程序

二月份的开头,小编依旧继续着项目开发之路,开始接触全新的知识,EF,WCF,MVC等,今天小编来简单的总结一下有关于WCF的基础知识,学习之前,小编自己给自己提了两个问题,WCF是什么?WCF能用来做什么?WCF具有哪些优点?带着这样的问题,小编开始进行了一番搜索,一下是小编整理的结果. WCF是什么? WCF(Windows Communication Foundation)是用于构建面向服务的应用程序的框架 ,是由微软发展的一组数据通信的应用程序开发接口.根据MSDN上的定义:WCF为.Ne

(转载)WCF Demo

WCF编程系列(一)初识WCF Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程模型.WCF的基本概念:  地址:定义服务的地址  绑定:定义服务的通讯方式(传输协议.编码方案)  契约:定义服务的具体实现  终结点:由地址.绑定和契约共同构成一个终结点,服务器通过终结点向客户端公开服务,客户端通过终结点调用服务. 下面通过一个简单的服务示例来认识WCF(只需让本例顺利运行即可,关于代码中的各种类型及WCF的相关概念我们将在

初识自动化测试理论

自动化测试的分类 Web UI 的自动化测试(一类:模拟真实用户操作[鼠标键盘],二类:模拟HTTP请求) Windows 窗体的UI自动化测试 API测试(Web API,WCF Service) 数据库测试(存储过程) 接口测试 单元测试 性能测试 自动化应具备的知识点: 了解Javascript, CSS的知识. 熟练掌握DOM和HTML知识, (用来解析Web界面) 熟练掌握XML技术,(需要用XML保存测试数据,用XML展现测试报告) 熟练使用C# P/inoke技术调用Windows