我需要将一个VB 6.0应用程序迁移到VB.Net(Framework 3.5)。该应用程序大量使用MSMQ。我正在尝试弄清楚使用WCF相比于System.Messaging有什么优势。使用System.Messaging是否存在任何潜在问题?
我需要将一个VB 6.0应用程序迁移到VB.Net(Framework 3.5)。该应用程序大量使用MSMQ。我正在尝试弄清楚使用WCF相比于System.Messaging有什么优势。使用System.Messaging是否存在任何潜在问题?
*WCF编程模型以您的业务操作为中心。有了它,您可以停止管理消息事务、设置消息属性、在队列中搜索消息、检查NACKS、重试消息等。相反,您可以开始从业务操作(例如CreatePurchaseOrder)的角度思考世界,并专注于业务逻辑。 让WCF处理繁琐的细节。 *
这就是WCF试图实现的 - 为您减轻大量的管道和复杂性,让您集中精力解决想要解决的业务问题。
我的投票是给WCF的! :-)
Marc
我有点不同意WCF比System.Messaging更容易/更干净,因为System.Messaging有一个相当简单的API(整体而言),如果您只关心它,那么使用起来相对简单。但是,WCF确实有一些好东西,但它绝不简单。
至于您是否会遇到任何问题,这取决于您的VB应用程序当前如何使用MSMQ以及发送哪种类型的数据。您将使用MsmqIntegrationBinding绑定,这有所帮助,但如果您的VB应用程序不以WCF可以直接处理的格式发送消息,则可能需要使用一些技巧来成功处理消息反序列化。
我个人非常喜欢MSMQ,会选择它。
对我来说,主要的问题是每条消息的限制为4兆字节。如果你要序列化一个大的对象图,则会出现问题,但只需先将其序列化到磁盘上,然后发送文件名即可轻松解决。
正如其他帖子中的评论所述,MSMQ可能不会获得“新功能”,但在我看来,它很稳定,非常可扩展,并且已经具备了我需要的所有功能。
选择使用 WCF,将为您提供一个明确的前进路径。虽然我怀疑 System.Messaging 并不会消失(请参见 System.Runtime.Remoting),但是新的开发将会在 WCF 上进行,这也使得您可以迁移到其他技术上。它使您摆脱了被绑定到特定传输实现的限制。
WCF 编程模型也非常干净和令人愉悦。