【问题标题】:NServiceBus Visual Studio Solution ArchitectureNServiceBus Visual Studio 解决方案架构
【发布时间】:2012-08-12 22:32:40
【问题描述】:

刚开始使用 NServiceBus,我正在尝试了解总线如何适合我的 VS 解决方案。

让我们假设一个现有的应用程序,它有一个 ASP.Net 前端和一个 BLL。我将 Windsor 用于 DI,而我的 BLL 对容器一无所知。我将容器连接到一个名为“MyNamespace.IOC”的单独项目中,并且只有这个项目和我的 Web 项目了解 Windsor。

我需要访问我的 BLL 中的总线(因为我将在那里发送/发布/处理消息)。我需要使用 Windsor 配置 NSB,并且(我认为)在应用启动时将我的容器实例传递给 Configure.With().CastleWindorBuilder() 方法。

让所有三个项目都引用 NSB DLL 似乎很奇怪。通常如何将它们连接在一起?

【问题讨论】:

  • NSB 通常用作基础架构,并且与项目中的许多其他内容正交。你用 NSB 做什么?您认为您将从 NSB 获得哪些好处?按照@rarous 的建议,您可以抽象接口后面的总线。也许看看洋葱架构的概念。

标签: castle-windsor nservicebus esb


【解决方案1】:

如果您不想在 BLL / 域层中引用 NSB,您可以查看“域事件”。域事件处理程序可以位于它们自己的实现层中,使您的域对事件的处理一无所知,因此不需要了解服务总线。从那里您可以发布您的 esb 消息。可能看起来差别不大,但域事件处理层与域更加隔离。

顺便说一句:由于您是从服务总线开始的,因此您还可以在http://shuttle.codeplex.com/ 上查看我的 FOSS 项目 --- 任何反馈都将不胜感激 :)

【讨论】:

    【解决方案2】:

    您可以在某些接口后面抽象总线,并仅在 IoC 和 Web 项目中提供实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多