与大多数Web应用程序一样,您有一个在登录时调用的方法。 登录时可能需要完成一些操作,随着时间的推移,这可能会增加。例如。记录,欢迎电子邮件,维护。
应该使用事件来执行此操作还是有更好的方法?我正在使用C#和ASP.net MVC。
更新
这已经在其服务层类中。例如
public void Login(User user)
{
SetAuthCookie(user);
LogLogin(user, true);
SendEmails();
}
答案 0 :(得分: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/的博客上对使用动作过滤器进行了很好的介绍。该帖子是特定于身份验证的,但概念可以推断为您想要实现的任何类型的功能。
答案 1 :(得分:0)
方面可能是一个很好的方法。如果他们是跨领域的问题,AOP是可行的方式。
答案 2 :(得分:0)
我实际上更喜欢你现在的做法。但是,我已经看到了事件的例子,但对我而言,除非你有一个“非常”复杂的应用程序,否则它似乎比它的价值更多。
我认为你指的是Domain Events。另外,请看Jimmy Bogard的这个基于第一个链接的blog post。最后,从SO - How to avoid anemic domain models, or when to move methods from the entities into services
我的建议 - 尽量让你的设计尽可能简单易用,是一种对你有意义的方式。除非有一个非常令人信服的理由改变你当前的使用事件的方法,坚持下去。