2010-06-01 86 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

我的建议 - 尽量让你的设计尽可能简单和易于管理是一种对你有意义的方式。除非有一个非常有说服力的理由来改变你目前使用事件的方法,否则坚持下去。

相关问题