2010-06-01 8 views
5

대부분의 웹 응용 프로그램과 마찬가지로 로그인 할 때 호출되는 메서드가 있습니다. 로그인하면 시간이 지남에 따라 작업이 완료 될 수 있습니다. 예. 로깅, 환영 이메일, 유지 보수.여러 작업을 처리하는 가장 좋은 방법은 무엇입니까?

이벤트를 사용해야합니까, 아니면 더 좋은 방법이 있을까요 ?? 저는 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

0

나는 실제로 현재의 접근 방식을 선호합니다. 그러나 이벤트와 함께 예제를 본 적이 있지만 나에게는 매우 복잡한 어플리케이션이 없다면 그 가치보다 더 많은 노력이 필요합니다.

당신이 말하는 것은 Domain Events이라고 생각합니다. 또한, 첫 번째 링크를 기반으로 한 Jimmy Bogard의 blog post을 살펴보십시오. 그리고 마지막으로, SO - How to avoid anemic domain models, or when to move methods from the entities into services

내 충고 - 당신이 가능한 한 오랫동안 디자인을 단순하게 유지하려고 노력하는 것이 당신에게 의미있는 방법입니다. 이벤트를 사용하는 현재의 접근 방식을 변경해야하는 매우 강력한 이유가 없다면 계속 사용하십시오.

관련 문제