WCF 和web wcf调用webservicee 有什么区别! 或者说wcf相对于web wcf调用webservicee 有什么突出点

1271人阅读
项目开发(14)
& & 在进行Web Service 和 WCF 之间的区别前,先介绍下WCF。
& & 对于初学WCF的门徒来说,最想弄清楚的是WCF到底是个什么东西,它能实现什么样的功能,这是最迫切的需要。
本例结合京东的物流特色来讲一讲什么是WCF。相信大家都知道的京东吧,互联网业内盛传一句话,叫“行业看阿
里、用户属腾讯、物流靠京东”,前两者不管,但京东的物流不得不说确实是属于超一流的。这是因为京东几乎在所
有的大型城市或者重要中转站设立了仓储中心,可以用最快的速度将用户需要的产品送到手中。WCF与此类似,它将
服务发布出去,就像一个仓储中心,不管在什么地方,只要属于它的“用户“,契约服务和数据匹配就可以在这个仓
储中心提取货物。
二:Web Service 与 WCF 区别
& &其实如果细心的话可以发现:唉?怎么感觉上面WCF的口语解释和上篇博客中的WebService差不多啊?那WCF与传
统的Web Service开发不同之处在什么地方呢?简单分析一下就知道了大家都知道小贩卖摊和大型连锁超市的区别:
小摊属于个人承包,自运自销,几乎一个人就完成了产品从生产商到用户之间的所有销售环节。但是这个前提是小摊
的业务量很小,小到一个人就可以解决所有问题,但是如果加大业务量呢?从原来的1吨增加到100W 吨呢?明显再个
人独立就不好了。而大型连锁超市建立了大型的存储中转站,一个仓储点可以供应周围几十上百的店铺所需。虽然每
个店铺所需货物是不同的,但是只要分类好,在需要时就可以随时向仓储中心发出特定的申请,获得相应的服务。
& &这就把服务与客户分离了开来,只要一套服务就可以满足许多不同客户的需求。而WCF把这种模式(web
&Service)向深度扩展了,将“服务契约的获取“和“数据绑定的匹配“进一步划分和精确了。所以说:WCF大于等
于升级版的web Service。如下画的简易版的工作原理图:& &
1.WCF基本工作原理
& A :地址 &B:通信绑定方式 &C:服务契约(功能)
& & & & &&
2.WebService 基本工作原理 & & &&
& A:URL (类似WCF地址) & & &&
& & & & & & & & & &
& & 此外,WebService更多的是一种分布式的运用模式,它使用XML来存储数据,继而被调用。但是它的弊端是它将
方法和实现完成爆露在了外面,所以很少会有人用。而WCF 则是采用元数据、终结点的方法很好的避免了这个问题。
不知道这样讲,大家能不能清楚。下面再次理解下WCF的官方定义。
& & WCF 全称Windows Communication Foundation,它是基于Windows 平台下开发和部署服务的软件开发包。WCF是
微软对产业标准定义的实现,包括服务交互、类型转换、封送以及协议管理。
& & WCF是一种分布式的数据通信运用。WCF的服务分客户端和服务端,开发者可以将封装好的服务在IIS 发布部署
好,定义好服务接口和契约协议,只要客户端能提供对应的要求,就可以调用发布的服务。
& & & & && & &&
三:总结&&
& & 简单总结,Web Service 是分布服务的雏形,它更多的是一种面向服务编程地分布式模式,当让此外它也承担着
一部分技术的角色。而WCF是对它的升级和细化,将它的一些漏洞(易泄漏URL地址,保密程度低)用A+B+C 配置终结
点的方式进一步精确化、细致化了。
& & 对WCF 和 Web Service 的学习还比较单纯,有认识不足的请斧正!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:165374次
积分:10561
积分:10561
排名:第1596名
原创:184篇
评论:4033条
文章:15篇
阅读:30264
文章:11篇
阅读:17552
(16)(5)(6)(5)(7)(4)(5)(7)(5)(7)(4)(4)(6)(4)(4)(7)(5)(8)(12)(9)(13)(3)(5)(4)(1)(7)(3)(1)(2)(7)(2)(3)(5)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'【图文】WebService与SOA、WCF之间的关系与各自的概念(包含实践的实例)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
WebService与SOA、WCF之间的关系与各自的概念(包含实践的实例)
&&介绍:SOA
SOA、web服务、WCF三者间的关系
实例:Demo:WCF实现web服务
是老师上课的课件,个人觉得很不错,有助于大家一起学习。在这里感谢老师辛勤的备课。
大小:749.96KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢21808人阅读
.Net(27)
微软论坛的斑竹回答如下:
脑内:果然是高大上啊
&&& 1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微
软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。
WSDL来实现服务接口相关的描述。此外Web services 可以注册到UDDI中心.供其客户查找使用。
&&& 后来微软做了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过
度产品,最高到WSE3.0.后来就是WCF时代。
&&& 2.WCF:其实一定程度上就是ASP.NET Web Service,因为它支持Web Service的行业标准和核心协议,因此ASP.NET Web Service
和WSE能做的事情,它几乎都能胜任,跨平台和语言更不是问题(数据也支持XML格式化,而且提供了自己的格式化器)。
&&& 但是WCF作为微软主推一个通讯组件或者平台,它的目标不仅仅是在支持和集成Web Service,因为它还兼容和具备了微软
早期很多技术的特性。
&&& 根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程
序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF
是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices
(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器
、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿
主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,
自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术
要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。
当时胖胖的模样
&& 2年前在一个全国性的企业IT部门开发SmartClient,在那企业工作超过10年经理问我说,WebService的原理是什么?就是FTP!。。。。。。。我当场语塞,其实是我不知道FTP和WebService有什么区别啦,没法回经理。经理继续说,要先打个包再一次传数据这样效率才高,要不全国各地传数据来怎么受得了。FTP跟WebService协议不同,至于要怎么做才好其实也不好说。
&& 刚毕业在全国第二大的印刷厂IT部门做开发,来了个牛B经理,公司要把通信都转成WebService,那时连WebService是什么都不知道,做了个效能测试(测试不是我做的),发现通信一次怎么都要6秒多?后来没推,再后来我就走啦。WebService第一次建立通信是要花点时间,再加上公司网络监控比较多,可能是这个原因通信要去到6秒,每次都要6秒的原因是“事务做的太好了“,每次通信完都释放,哈哈。
&& 其实WebService和WCF有什么不同,自己用用就知道啦,不过千万不要像下面这个大哥,标题特搞笑,既没有深入也没有浅出,照抄个HELLOWORLD程序有什么用捏?就像刚毕业的我,要成长是要不断磨练D
下面基本可以无视:
当时就惊呆了,尼玛
GOOGLE到的,标题就是,深入学习WCF之比较WCF与Asp.net webservice的区别
《-------------------------------------------------------------------------------------------------》
&首先简单介绍一下 WCF 是什么,然后再对 WCF 和 Asp.net Web service 做个比较。
&&& Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架。借助 WCF,可以将数据作为异步消息从
一个服务终结点发送至另一个服务终结点。服务终结点可以是由 IIS 承载的持续可用的服务的一部分,也可以是应用程序中
承载的服务。终结点可以是从服务终结点请求数据的服务客户端。消息可以是从以 XML 格式发送的单个字符或单词,到复
杂的二进制数据流。虽然在WCF 出现之前也可以开发应用,但是 WCF 的出现使此类应用的开发变得更加简单。
&&& Asp.net Web service 通常依赖于 XmlSerializer 将 .NET Framework 的数据类型转换为 XML 格式在服务中传送,或将从服务中接
收的 XML 格式的数据转换为 .NET Framework 中的对象。
使用 XmlSerializer 序列化或反序列化 .NET Framework 的数据类型时的缺点:
1、只有标记为 public 的字段和属性能够被序列化。
2、只有实现了 IEnumerable 和 ICollection 接口的类的集合才能被序列化。
3、实现 IDictionary 接口的类不能被序列化,如Hashtable。
&&& WCF 使用 DataContractAttribute 和 DataMemberAttribute 来标记可以被序列化的 .NET Framework 类型。
[DataContract]
public class Item
&&& [DataMember]
&&& public string ID;
&&& [DataMember]
&&& public decimal Q
&&& [DataMember]
&&& public decimal P
DataContractAttribute 可以应用于类或结构体上,DataMemberAttribute可以应用于标记为 public 或 private 的字段和属性上。
DataContractSerializer 和 XmlSerializer的区别:
1、DataContractSerializer 不对 .NET Framework 中的数据类型在 XML 中的表示方式作控制,因此性能要比 XmlSerializer 高。
2、XmlSerializer 不能确定要序列化的字段或属性,而 DataContractSerializer 使用 DataMemberAttribute 可以明确的确定要序列化
的字段或属性。
3、DataContractSerializer 可以序列化实现了 IDictionary 接口的类。
4、由于 DataContractSerializer 可以访问对象的非 public 成员,因此在反序列化时需要运行在完全信任模式下,而
XmlSerializer 不需要。
服务的开发
在开发 Asp.net Web service 时需要在类上面添加 WebService 属性(attribute),在类的方法上添加 WebMethodAttribute 。
[WebService]
public class WebService1 : System.Web.Services.WebService
&&& [WebMethod]
&&& public string HelloWorld()
&&&&&&& return &Hello World&;
}一个 WCF 服务提供一个或多个 WCF 终结点(Endpoint),每个终结点包含地址(Address)、绑定(Binding)、契约
(Contract)。开发 WCF 服务时,通常先在接口上添加 ServiceContractAttribute 和 OperationContractAttribute 来定义服务的契约(
contract):
[ServiceContract]
public interface IService1
&&& [OperationContract]
&&& void DoWork();
ServiceContractAttribute 指定接口定义了一个 WCF 服务契约,OperationContractAttribute 表示接口中的哪个方法定义为服务契约
中的操作。定义好服务契约后需要一个类来实现它:
public class Service1 : IService1
&&& public void DoWork()
&&&&&&& // do some works
实现了服务契约的类即是 WCF 中的一个服务。接下来在配置文件中配置服务地址和绑定类型
&?xml version=&1.0& encoding=&utf-8& ?&
&configuration&
&&&& &system.serviceModel&
&&&&& &services&
&&&&& &service name=&Service1&&
&&&&&& &endpoint
&&&&&&& address=&Service1&
&&&&&&& binding=&basicHttpBinding&
&&&&&&& contract=&IService1&/&
&&&&& &/service&
&&&&& &/services&
&&&& &/system.serviceModel&
&/configuration&
绑定指定了如何与终结点进行通信。WCF 支持的绑定有
BasicHttpBinding、WSHttpBinding、WSDualHttpBinding、WSFederationBinding、NetTcpBinding、NetNamedPipeBinding、
NetMsmqBinding、MsmqIntegrationBinding、NetPeerTcpBinding。其中 BasicHttpBinding 包含了 Asp.net Web services 支持的协议。
服务的承载
Asp.net Web service 编译后生成一个程序集和一个扩展名为 .asmx 的服务文件,该文件中包含了服务类的代码和其所在的程
序集的信息。将服务文件复制到由 IIS 承载的 Asp.net 程序的根目录下,将程序集复制到程序根目录下的 /bin 目录下。服务
就可以通过服务文件的 URL来访问了。
WCF 服务可以由 IIS、Windows Process Activation Service(WAS)或 .NET 应用程序承载。在IIS或WAS中承载的步骤:
1、编译服务。
2、将扩展名为 .svc 的服务文件复制到一个虚拟目录下,将程序集复制到虚拟目录下的 /bin 文件夹下。
3、将web.config配置文件复制到虚拟目录下。
客户端开发
Asp.net Web service 客户端通过命令行工具 WSDL.EXE 生成客户端代码。
WCF 使用ServiceModel Metadata Utility Tool(svcutil.exe)生成客户端代码。
Asp.net Web service 中的 SOAP 消息的消息头是可以自定义的。
WCF 通过 MessageContractAttribute、MessageHeaderAttribute和MessageBodyMemberAttribute 来描述服务中的 SOAP 消息的结构。
客户端通过 HTTP GET 向 Asp.net Web service 请求元数据时,ASP.NET 将生成 WSDL 并发送到客户端。生成的 WSDL 可以通过
创建一个继承自 ServiceDescriptionFormatExtension 的类来自定义。
客户端可以向 WCF 发送由 WS-MetadataExchange 标准定义的请求信息,接收返回的 WSDL。WCF 生成的 WSDL 也可以自定义
。WCF 还可以配置为不生成 WSDL,并提供一个固定的 WSDL 文件的URL。
在 Asp.net Web service 中未处理的异常会作为 SOAP 错误返回客户端。
在 WCF 服务中未处理的异常不会作为 SOAP 错误返回客户端。在调试时可以通过配置设置让未处理的异常返回客户端。
Asp.net Web services 安全设置和其他IIS 应用的安全设置相同。
WCF 可以承载于 IIS 之外的其他应用程序中,因此 WCF 的安全设置是独立的。但是可应用于Asp.net Web service 的安全设置
也可应用于 WCF。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:422159次
积分:7254
积分:7254
排名:第3141名
原创:262篇
转载:57篇
评论:83条
阅读:39805
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'中国领先的IT技术网站
51CTO旗下网站
挖掘WCF和Web Service异同点
这里就WCF和Web Service进行了比较,文章有详细的图片关于WCF服务应用项目和Web服务应用项目结构比较,希望大家看了会有帮助。
作者:佚名来源:博客| 10:11
我们大家都知道WCF服务,有些人说会了WCF就不需要学会别的东西了,那我们今天就来分析比较一下WCF和Web Service。WCF其中一个重要特性就是支持Web Service的核心协议。无论是服务应用程序还是实际项目中客户端服务的引用的代码都能看出很多相似之处。这里先来看看服务程序WCF和Web Service的代码结构(IIS托管为例)。
两者除了包括自己的扩展文件外还有与其对应的服务代码文件。
WCF服务元数据是WCF服务的核心部分服务地址(Address)、绑定(通信协议Binding)、契约(服务、操作、数据Contract)的原始描述信息。服务所公开的元数据包括 XSD(文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值)和 WSDL 文档(用于描述服务的方法、参数、参数个数、顺序、返回值、返回值的类型等方法的相关信息)。.Disco文档(描述服务的协议、地址、命名空间等信息)。
再来看看客户端WCF和Web Service引用服务后本地的代码结构。首先是Web Service客户端的服务引用的本地文件:
其次是WCF客户端服务引用的文件结构:
两者都包括服务的本地代码文件(反序列化生成的本地服务相关代码),WSDL服务描述文件、XSD服务结构文件。WCF框架模型一定程度上参考了以前的ASP.NET Web Service,并对此进行了扩。【责任编辑: TEL:(010)】
大家都在看猜你喜欢
调查热点头条原创原创
24H热文一周话题本月最赞
讲师:90429人学习过
讲师:41630人学习过
讲师:132080人学习过
精选博文论坛热帖下载排行
本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I...
订阅51CTO邮刊

我要回帖

更多关于 wcf webservice 的文章

 

随机推荐