我有一个 ASP.NET MVC 3 Web 应用程序,其中包含各种组件/层,例如:
- 网络
- 服务(缓存、外部 API、云服务等)
- 核心(领域逻辑、POCO 等)
- 存储库(实体框架)
现在,当我在我的网站上做某事时(例如提交表单,也就是 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();
}
我不是在这里谈论多线程或任何东西,而只是将责任从控制器上移开,并将其放在关心这些操作的组件上。