我们真的在寻找哪种mvc3 / c#技术/架构--nservicebus,WCF还是其他什么?

时间:2011-10-20 14:58:29

标签: c# asp.net-mvc wcf asp.net-mvc-3 nservicebus

这是我们需要做的。

我们有一个Web应用程序(MVC3),允许管理各种实体。让我们说“学校”,“学生”和“老师”。

当这些实体中的任何一个发生变化(创建,更新或删除)时,我们需要告诉另一个系统这个变化。我们无法控制其他系统,但我们可以访问一个Web服务,让我们可以对其进行实时更新。

我知道我不希望我们的用户在连接到此Web服务并进行更新时等待,因此我们必须需要一种方法来对更新进行排队并将更改作为完全独立过程的一部分进行。

我真的很感激任何解决这个问题的架构指针。我确信现有的框架将管理这个队列,例如,如果通信中断,我们就会重新发送数据 - 但我不知道要查看哪些框架。

干杯!

2 个答案:

答案 0 :(得分:2)

NServicebus将提供您需要的排队。它提供事务支持,以及在需要重新处理失败消息的情况下返回源队列实用程序。我会在这里推荐第三个系统来处理调用Web服务。此消息处理程序将从队列中读取并调用Web服务。

客户 - >发布NServiceBus Msg - > MessageHandler - >网络服务

此消息处理程序将为您提供所需的关注点分离。

答案 1 :(得分:0)

需要数据更新的其他供应商/客户端不依赖于您的应用程序。至少不是你的解释。它们依赖于准确的数据。这意味着您的问题是数据问题,而不是应用程序问题。从这个角度来看,数据解决方案看起来很性感。

如果您使用的是SQL Server,我会考虑在数据库上使用触发器并在那里启动。如果要完全从数据库操作和应用程序卸载工作,那么SQL Server Service Broker可以很好地工作。

如果您在另一个数据库平台上,您可能或许多人没有排队服务。在这些情况下,您可能需要服务总线,但我会看到是否有一个更简单可靠的异步方法,您可以先使用它。