4

我有一个 ASP.NET MVC 3 Web 应用程序,其中包含各种组件/层,例如:

  1. 网络
  2. 服务(缓存、外部 API、云服务等)
  3. 核心(领域逻辑、POCO 等)
  4. 存储库(实体框架)

现在,当我在我的网站上做某事时(例如提交表单,也就是 POST)——在最坏的情况下,可能需要通知所有层。

现在,我可以将所有这些逻辑构建到我的控制器 HTTP POST 操作中,但它在逻辑上变得非常肥胖和沉重。

我曾尝试过使用发布者-订阅者模式 (AOP),但到目前为止我还没有找到一个非常好的 .NET 实现,而且我也有人告诉我这对于 Web 应用程序来说不是一个好的做法。

任何人都可以在这里给我任何建议,还是我坚持这样的代码:

[HttpPost]
public ActionResult Do(Something model)
{
    _repository.Save(model); // this should be the only line IMO
    _service.DoSomething();
    _repository.DoSomethingElse();
    _domain.DoSomethingMore();
}

我不是在这里谈论多线程或任何东西,而只是将责任从控制器上移开,并将其放在关心这些操作的组件上。

4

2 回答 2

1

Faye是一个不错的PubSub脚本,它基于 Node.js 构建。它非常好,可以用于您的情况。

Faye是一个基于Bayeux协议的发布订阅消息系统。它为Node.jsRuby提供消息服务器,以及在服务器和所有主要 Web 浏览器中使用的客户端。

于 2012-10-12T03:12:04.227 回答
0

如果你还没有完全放弃 PubSub,你可以看看 RabbitMQ。 http://www.rabbitmq.com/

我不明白为什么它不是 Web 应用程序的“最佳实践”,无论如何,这些绝对值很少是正确的。

于 2012-10-12T03:09:27.477 回答