none
我该使用 WCF 还是 webservice? RRS feed

  • 问题

  •    日前项目需求,需要把现有的网络购票系统改成C/S结构,查了点资料,WCF单纯从功能上来说,是webservice他们的集合,但是我看了WCF的介绍以后,心里有了担忧,因为WCF 增强了通讯的安全性、可靠性,保证数据传输过程中不会被窃密和丢包。等,这些操作可能会大大的降低我的程序效率,因为公司主服务器在美国加州,原理使用.net remoting开发出来的,效率差得可怜,经常是整个客户端界面卡住,等待获取服务器返回信息,理论上来说,我的这种方式应该比使用浏览器要快很多啊!因为我不必下载页面的其他元素,图片之类的!只要传递请求,接受返回数据就行了,可是实际应用中,.net remoting局域网速度还可以,但是放到美国服务器上,客户端访问的速度和IE远远无法相比,程序已经尽可能优化了。但是传输效率还是远远不如人意。现在我在webservice和WCF间徘徊,不知道该选择哪种方式,因为我两种都没用过,希望大大们给点意见。对于我这种要求高效传输数据的需求,到底该使用哪种方式?或者说 WCF 和 webservice两者在传输数据量方面,谁才能更好的达到我的需求!
    2009年11月29日 2:30

答案

  • 看你的项目实际需求 和认识技术水平 ,时间
    如果你的项目简单需求 选择web service  如果复杂需求 考虑用wcf 提示学习wcf是一种漫长的过程 了解属性和类型是简单的 可是认证和证书了解起来相当混乱
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月29日 6:02
  • 看你的服务器有多大带宽了 通过多少路由达到目 不能光看web服务单方面
     wcf应该比webservice技术上更先进一些 wcf能满足你需求
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月29日 14:27
  • WCF 本来就包含了WebServices的所有内容,还整合了.NET Remoting等相关技术
    WCF在性能、加密解密等方面都有扩展

    你这种情况我个人比较倾向直接采用Web Service 当然如果你在安全性等很多方面有特定要求可能只有WCF能满足了
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 2:37
    版主
  • 你好!

    如果可以的话建议使用 WCF 技术总是在不断发展,新的技术总会解决老技术中的存在的一些问题。对于效率问题,我觉得最重要的还是软件的设计与运行环境。我们一直采用 remoting 做为网络传输协议,数据在传输过程中进行了压缩,其效率也不差,不同的是我们的服务器和客户都在国内,网络条件方面可能会好一些。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 7:51
    版主
  •    日前项目需求,需要把现有的网络购票系统改成C/S结构,查了点资料,WCF单纯从功能上来说,是webservice他们的集合,但是我看了WCF的介绍以后,心里有了担忧,因为WCF 增强了通讯的安全性、可靠性,保证数据传输过程中不会被窃密和丢包。等,这些操作可能会大大的降低我的程序效率,因为公司主服务器在美国加州,原理使用.net remoting开发出来的,效率差得可怜,经常是整个客户端界面卡住,等待获取服务器返回信息,理论上来说,我的这种方式应该比使用浏览器要快很多啊!因为我不必下载页面的其他元素,图片之类的!只要传递请求,接受返回数据就行了,可是实际应用中,.net remoting局域网速度还可以,但是放到美国服务器上,客户端访问的速度和IE远远无法相比,程序已经尽可能优化了。但是传输效率还是远远不如人意。现在我在webservice和WCF间徘徊,不知道该选择哪种方式,因为我两种都没用过,希望大大们给点意见。对于我这种要求高效传输数据的需求,到底该使用哪种方式?或者说 WCF 和 webservice两者在传输数据量方面,谁才能更好的达到我的需求!

    卡ui是没有用异步造成的   嘿嘿
    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 8:48
    版主
  • 当然是WCF,WCF是更好的支持webservice的选择.

    就传输速度而言,它只跟传输的数据大小相关.

    "WCF 增强了通讯的安全性、可靠性,保证数据传输过程中不会被窃密和丢包"
    这些都是WCF的可选项,并不是必须的.

    你可以通过使用自定义的tcp绑定,自定义的消息序列化,自定义的消息编码来改善最终在
    公网上传输的数据的大小.
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 9:30

全部回复

  • 看你的项目实际需求 和认识技术水平 ,时间
    如果你的项目简单需求 选择web service  如果复杂需求 考虑用wcf 提示学习wcf是一种漫长的过程 了解属性和类型是简单的 可是认证和证书了解起来相当混乱
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月29日 6:02
  • 我的意思是说,我想知道在普通购票系统中,服务器在国外,对传输效率要求很高的时候,WCF快一点还是webservice快一点。。。。。

    2009年11月29日 7:40
  • 看你的服务器有多大带宽了 通过多少路由达到目 不能光看web服务单方面
     wcf应该比webservice技术上更先进一些 wcf能满足你需求
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月29日 14:27
  • 。。。。。。。。。。。。。楼上的,我问的是这两种技术,性能传输效率方面的对比,哪种更好。如果说带宽能解决一切,那还用.NET做什么?
    2009年11月30日 2:08
  • WCF 本来就包含了WebServices的所有内容,还整合了.NET Remoting等相关技术
    WCF在性能、加密解密等方面都有扩展

    你这种情况我个人比较倾向直接采用Web Service 当然如果你在安全性等很多方面有特定要求可能只有WCF能满足了
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 2:37
    版主
  • 。。。。。。。。。。。。。楼上的,我问的是这两种技术,性能传输效率方面的对比,哪种更好。如果说带宽能解决一切,那还用.NET做什么?

    这个不好说  没有实际测试的话 都是空谈 算是最好的技术 如果问题是程序员设计结构很劣势 还达到不了你的需求
    2009年11月30日 7:24
  • 你好!

    如果可以的话建议使用 WCF 技术总是在不断发展,新的技术总会解决老技术中的存在的一些问题。对于效率问题,我觉得最重要的还是软件的设计与运行环境。我们一直采用 remoting 做为网络传输协议,数据在传输过程中进行了压缩,其效率也不差,不同的是我们的服务器和客户都在国内,网络条件方面可能会好一些。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 7:51
    版主
  •    日前项目需求,需要把现有的网络购票系统改成C/S结构,查了点资料,WCF单纯从功能上来说,是webservice他们的集合,但是我看了WCF的介绍以后,心里有了担忧,因为WCF 增强了通讯的安全性、可靠性,保证数据传输过程中不会被窃密和丢包。等,这些操作可能会大大的降低我的程序效率,因为公司主服务器在美国加州,原理使用.net remoting开发出来的,效率差得可怜,经常是整个客户端界面卡住,等待获取服务器返回信息,理论上来说,我的这种方式应该比使用浏览器要快很多啊!因为我不必下载页面的其他元素,图片之类的!只要传递请求,接受返回数据就行了,可是实际应用中,.net remoting局域网速度还可以,但是放到美国服务器上,客户端访问的速度和IE远远无法相比,程序已经尽可能优化了。但是传输效率还是远远不如人意。现在我在webservice和WCF间徘徊,不知道该选择哪种方式,因为我两种都没用过,希望大大们给点意见。对于我这种要求高效传输数据的需求,到底该使用哪种方式?或者说 WCF 和 webservice两者在传输数据量方面,谁才能更好的达到我的需求!

    卡ui是没有用异步造成的   嘿嘿
    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 8:48
    版主
  • 当然是WCF,WCF是更好的支持webservice的选择.

    就传输速度而言,它只跟传输的数据大小相关.

    "WCF 增强了通讯的安全性、可靠性,保证数据传输过程中不会被窃密和丢包"
    这些都是WCF的可选项,并不是必须的.

    你可以通过使用自定义的tcp绑定,自定义的消息序列化,自定义的消息编码来改善最终在
    公网上传输的数据的大小.
    • 已标记为答案 YiChun Chen 2009年11月30日 11:14
    2009年11月30日 9:30
  • WCF本来就是为了降低Webservice 和 .net Remoting 开发门槛而出来的新技术。

    效率上来说,应该不会低于webserivce.

    至于你的.net remoting 为啥导致客户端卡住是因为你没有采用异步模式。
    2009年12月2日 2:51
  • Hi,
    我来晚了,为什么问题结束了。应该贴到WCF论坛啊~
    我来补充一下。你看看有价值没。呵呵
    1.观点:使用WCF,或者WSE。考虑到性能问题:两种都支持MTOM。也就是针对大数据量的忧患传输机制。但是WSE是微软的一个在Web服务和WCF之间过度技术,已经停止开发和升级。但是WCF属于新的.NET 平台的通信技术或者框架。WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载 .
    2.安全:WCF有多种安全模型,但是你可以不启用,Web Wervice的安全机制最简单,WSE3.0做的相对完善,并提供了对MTOM的支持。WCF几乎支持WS-Security 的安全机制,这个是行业标准,可以与其它平台进行消息加密通信。当然也支持微软自己的安全框架,比如域服务器。Windows验证等等。
    3.性能:..net remoting适合做企业局域网之间的应用程序通信。Web适合internet.而WCF因为支持诸多特性,两种都可以。更加灵活性能你可以使用MTOM编码。或者更加紧密的XML编码。效率肯定不比Web服务差。
    4.协议:从你的需求来看,服务器和客户端不在局域网内,适合http相关的协议,WCF和Web服务都支持。。因为它的绑定,简单来说就是通信协议,支持的多大10种,而且你还可以自己定义。你可以使用http相关的多种binding协议。
    即使最差的话,你也可以使用basicHttpBinding,这个支持SOAP1.1,也久是Web服务,ASMX支持的通信协议。
    5.学习WCF:
     既然我推荐你WCF,就给点WCF学习的建议:[置顶]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
     
    6.其它参考资料:
     1)Web服务:WCF分布式开发必备知识(4):Web Service 
     2).NET Remoting:WCF分布式开发必备知识(2):.Net Remoting

    欢迎你到WCF中文论坛,也可以阅读我的博客。我整理的有系统的学习WCF的资料。如果开发,可以很快上手,但是你可以边开发边学。深入学习需要花点时间。安全难,主要是涉及的算法多,概念也多。但是找到方法以后,就不难了,最难的是入门阶段。
    希望对你有帮助~


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年12月2日 8:40
    版主