现在的位置: 首页 > 综合 > 正文

ASMX,Remoting和ES–我们如何选择

2011年07月17日 ⁄ 综合 ⁄ 共 2146字 ⁄ 字号 评论关闭

来自和我和Redmoon评测网的讨论

 

其实对于Remoting和WS的争论在于MS是从来没有停止过,但这里面并没有分歧,答案也非常简单---WebService。这不是Web Services的本身的问题,而是MSSOA的认同。

 

对于MS的问题,是我们目前遇到的一些客户或一些核心开发人员,他们似乎更难忘J2EE的概念,很多时候他们接受.NET,但他们会用以前J2EE的想法来反问身边的MS的人,回答者的意见在很大程度上让他对于自己目前跨越两种平台的感觉是否良好有很大的作用,对于我们来说,所有内部的讨论和争论来自怎样能够平衡用户,而不在于自己不确定选用那个技术。

ASMX是被优先支持的,在之前我贴的Slides中非常明显的说明ASMX被优先,ESModel被发扬光大,Remoting依然存在,不会被遗忘的。所有的专家说了,在目前ASMX是优先的,并且以后的迁移量最小

 

所以这一切取决你对SOA的理解和信赖,如果你也相信它,那么你就和MS一起赌到底吧

 

至于安全,WSE已经领先了,ASMX的不足靠它来弥补,你看它的补丁速度就知道了。WSE是产品的时间问题,对于MS来说,它是一个3-4年的技术,而ESIndigo7-8年的技术,用它的问题主要是技术支持的问题,你想不用等4年之后,Indigo已经出了。WSE3计划阶段已经完毕,这是专门为VS2005FX2.0的。

 

DTO不是SOA考虑的东西,J2EE有,ESP提到它.

Services expose Schema and Contract, not Object and Type :)

 

性能我只能说Web Service足够了,假如你觉得不够让ES+NLB帮你(别笑你也别问怎么不是CLB),把WS想成和Remoting一样的协议就好了。协议层总会消耗一些性能,但它能自己控制的很好

 

有关序列化10M的问题是一个经验值,超过10MDataset在目前的版本是一个拐点,RemotingWS在这个点会有一个差异的曲线,但测试的结果表明,差别并不大。反过来说,如果你要让性能曲线继续的升高,要花很大的代价,而且效果并不明显,也许是这个版本的问题,也许是秘密,我们追过很多EMail,但老外会问我上面的问题--你为什么要这么做?你的哪个项目需要会用到,客户是谁,言下之意,是说这个问题不是能不能做到的问题,而是你准备干什么,你准备付出多大的代价?

 

刚看到的这篇Blog,我觉得非常好,虽然这次没有参加MGB,但我知道SOA已经在MGB上横扫千军,上次的Envision就已经知道其势不可挡了

 

 

When to use ASMX, ES or Remoting

http://blogs.msdn.com/richturner666/archive/2004/07/21/190742.aspx

Rich Turner的建议足够犀利,他提醒了三件事情

1.  SOA

2.  揭示了Remoting的神话

3.  唤起人们对ES的关注

 

Rockford Lhotka 的建议更加清晰了,但你仍然需要仔细考虑是否采纳 :)

我喜欢ES,喜欢W2K3/COM+ 1.5 IIS6的搭配,现在项目组的一些家伙 ,对于使用SWC非常的兴奋,用上了他们觉得很过瘾,没用上又觉得很不过瘾

 

终于回到广州,可以感受一些熟悉的事物和空气。

DuDu 我没有收到你的Mail,有空再发一次或是去评测网PM我一个短信。

ps: Rockford Lhotka :
http://www.lhotka.net/WeBlog/CommentView.aspx?guid=0830a0e4-18bb-4182-99a7-a0c727fb913a

The short answer is to use the right technology for the right thing.

 

  1. If you need to interact between tiers that are inside your application but across the network, then use remoting. Just avoid creating custom sinks or formatters (which most people don't do, so this is typically a non-issue).

  2. If you need to communicate between applications (even .NET apps) then use web services. Note this is not between tiers, but between applications – as in SOA.

  3. If you need ES, then use it. This article may help you decide if you need any ES features in your app. The thing is, if you do use ES, your client still needs to talk to the server-side objects. In most cases remoting is the simplest and fastest technology for this purpose. This article shows how to pull ES and remoting together.

抱歉!评论已关闭.