【发布时间】:2010-11-21 11:16:31
【问题描述】:
我必须将 VB 6.0 应用程序移植到 VB.Net(框架 3.5)。该应用程序大量使用 MSMQ。我试图弄清楚使用 WCF 优于良好的 ole System.Messaging 有什么优势。使用 System.Messaging 时是否有任何潜在的阻碍?
【问题讨论】:
标签: .net wcf vb6 system.messaging
我必须将 VB 6.0 应用程序移植到 VB.Net(框架 3.5)。该应用程序大量使用 MSMQ。我试图弄清楚使用 WCF 优于良好的 ole System.Messaging 有什么优势。使用 System.Messaging 时是否有任何潜在的阻碍?
【问题讨论】:
标签: .net wcf vb6 system.messaging
使用 WCF 为您提供了一条清晰的前进道路。虽然我怀疑 System.Messaging 会走向任何地方(请参阅 System.Runtime.Remoting),但新的开发将发生在 WCF 中,它使您有机会在其他技术出现时迁移到它们。它使您摆脱了与特定传输实现的束缚。
WCF 编程模型也非常干净和讨人喜欢。
【讨论】:
您应该查看Motley Queue website. System.Messaging 与 WCF 进行了很好的比较。 WCF 将变得更加干净和易于使用。
【讨论】:
我有点不同意 WCF 是否比 System.Messaging 更容易/更干净,让我们面对现实吧,它有一个非常简单的 API(总体而言)并且使用起来相对简单,如果你只关心这些的话。不过,WCF 确实有一些不错的东西,但无论如何也不简单。
至于您是否会发现任何问题,嗯...这很大程度上取决于您的 VB 应用程序当前如何使用 MSMQ 以及它正在发送什么样的数据。您将使用 MsmqIntegrationBinding 绑定,这在一定程度上有所帮助,但如果您的 VB 应用程序不以 WCF 可以开箱即用的格式发送消息,您可能需要使用一些技巧来成功处理消息反序列化。
【讨论】:
我个人很喜欢 MSMQ,并且愿意。
对我来说,主要的“陷阱”是每条消息限制为 4meg。如果您要序列化一个大型对象图,这是一个问题,但只需先序列化到磁盘并发送文件名即可轻松解决。
MSMQ 可能无法获得“新功能”,正如其他一位发帖人所评论的那样,但恕我直言,它很稳定,非常可扩展,并且拥有我需要的所有功能。
【讨论】:
我认为来自“Motley Queue”网站的这句话(“web”:优秀的链接!)总结得最好:
*WCF 编程模型以您的业务运营为中心。有了它,您可以停止管理您的消息事务、设置消息属性、在队列中搜索消息、检查 NACKS、重试消息等。相反,您可以开始从业务操作的角度思考世界(例如 CreatePurchaseOrder)并专注于关于你的业务逻辑。 把乏味的事情交给 WCF。 *
简而言之,这就是 WCF 试图实现的目标 - 让您摆脱大量管道和复杂的工作,让您专注于想要解决的业务问题。
我投票支持 WCF! :-)
马克
【讨论】: