我有一個ASP.NET MVC 3 web應用程序,各種部件/層,如:如何處理ASP.NET MVC 3應用程序中的橫切問題?
- 網絡
- 服務(高速緩存,外部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();
}
我說的不是多線程或任何東西在這裏,但單純服用的責任關閉控制器,並將其放在關心這些行爲的組件上。
我想盡量遠離「外部」服務。因爲那麼這個工作是在後臺執行的,並且超出了主請求線程的範圍。 – RPM1984