2012-10-12 33 views
4

我有一個ASP.NET MVC 3 web應用程序,各種部件/層,如:如何處理ASP.NET MVC 3應用程序中的橫切問題?

  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(); 
} 

我說的不是多線程或任何東西在這裏,但單純服用的責任關閉控制器,並將其放在關心這些行爲的組件上。

回答

0

如果你還沒有完全放棄PubSub,你可以看看RabbitMQ。 http://www.rabbitmq.com/

我不明白爲什麼它不是爲Web應用程序的'最佳實踐',這些類型的絕對值很少正確無論如何。

+0

我想盡量遠離「外部」服務。因爲那麼這個工作是在後臺執行的,並且超出了主請求線程的範圍。 – RPM1984

1

One good PubSub腳本將是Faye,它建立在Node.js上。它非常好,可以用於你的情況。

是基於所述貝葉協議的發佈 - 訂閱消息傳送系統。它爲Node.jsRuby提供消息服務器,以及用於服務器和所有主要Web瀏覽器的客戶端。

相關問題