在.NET Framework中使用旧的"通信"类

Rob*_*vey 2 .net wcf remoting

我有一个Web应用程序,它使用.NET Remoting将长时间运行的请求传递到另一台计算机上的Windows服务.我被告知.NET Remoting是一种过时的技术,它应该不再使用.

我应该使用WCF重写服务,还是保持原样?如果我重写它,当微软用其他东西取代WCF时,我是否还得重写它?

注意:这不是一个修辞问题.微软已经至少改变了三次远程故事.(DCOM,.NET Remoting,WCF,?...)

Jou*_*emi 9

鉴于WCF和.NET Remoting不是很容易互换(.NET Remoting基于远程对象而WCF更多是关于面向文档的消息传递),我不会因为.NET而将代码重写为WCF. Remoting不再被认为是热门.当然,您的实际情况可能会有很大差异.

如果.NET Remoting适合您并且不需要任何更改,请保留它.在某些时候,您可能不得不考虑切换到基于WCF的技术来支持更多样化的客户 - 这些过渡似乎很常见 - 但直到那一天到来,保持简单.但是,我会从一开始就在WCF上编写新的应用程序,主要是为了鼓励自己保持在具有SOA意识的文档通信模型中.


Joh*_*ers 5

我认为我们应该清楚Remoting的状态.它很可能永远不会得到改善.它很可能会大大减少错误数量.它可能会达到只有业务关键错误或安全关键错误才能得到修复的程度.

您可能还想考虑微软显然不认为有必要使用"远程处理"解决方案.也就是说,服务器中有对象,完成状态和远程机器的解决方案可以通过代理实现通过网络实际转到该特定对象的方法调用.

请注意,远程处理的大量技术是WCF的一部分.通道和消息堆栈的可扩展性; 可配置性的程度; 所有这些都是WCF的一部分.

坦率地说,我认为你没有理由改变你现有的代码.但是,我建议您花时间到达组织中的某个点,如果您已经使用远程处理启动了一个新项目,那么您可以轻松使用WCF.

最后,您觉得WCF无法容纳Remoting的任何部分吗?我的意思是,除了在WCF中分离行为和数据这一事实.


PS在我看来:

  • WSE已经过时了.除非你别无选择,否则不要使用它.尽快更换它.
  • ASMX现在被公认为"遗留技术".请参阅ASMX Web服务是一种"遗留技术",如果您愿意,可以发表评论.
  • 在我看来,Remoting与ASMX几乎处于相同的位置,因为它已经被WCF取代了大部分或全部功能.