2010-06-01 134 views
5

與大多數Web應用程序一樣,您有一種在登錄時被調用的方法。 登錄後可能需要完成一些操作,並且隨着時間的推移可能會增加。例如。日誌記錄,歡迎電子郵件,維護。處理多個操作的最佳方式是什麼?

應該使用事件來做到這一點還是有更好的方法?我使用C#和ASP.net MVC。

更新
這已經在它的服務層類。例如。

public void Login(User user) 
     { 
      SetAuthCookie(user); 
      LogLogin(user, true); 
      SendEmails(); 
     } 

回答

0

方面可能是一個很好的方法來做到這一點。如果他們擔心交叉問題,那麼AOP就是要走的路。

2

提取應用程序邏輯以分離類。如果讓控制器儘可能薄,應用程序將更易於使用。

Post,Redirect,Get模式對MVC有效。從我的書籤收集關於此的一個好帖子是: http://www.eworldui.net/blog/post/2008/05/ASPNET-MVC---Using-Post2c-Redirect2c-Get-Pattern.aspx

我也建議查看動作過濾器。 Robert Conery在他的博客http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/上介紹瞭如何使用動作過濾器。該帖子是特定於身份驗證的,但可以將這些概念外推到您要實現的任何類型的功能。

+0

是的......我知道這一點,但也許我錯誤的問題,因爲這不會回答它 – Schotime 2010-06-01 02:59:15

0

我其實更喜歡你目前的做法。不過,我已經看到事件的例子,但對我來說,除非你有一個'非常'複雜的應用程序,否則它似乎比它的價值更多的努力。

我認爲你所指的是Domain Events。另外,請看Jimmy Bogard的blog post,它基於第一個鏈接。最後,從SO - How to avoid anemic domain models, or when to move methods from the entities into services

我的建議 - 儘量讓你的設計儘可能簡單和易於管理是一種對你有意義的方式。除非有一個非常有說服力的理由來改變你目前使用事件的方法,否則堅持下去。

相關問題