Globalasax는 asp.net classic 에서 사용했던 기능을 모두 사용할수 있다. 또한 MVC만의 추가적인 기능을 사용할 수 있는데 , 이번 시간에는 그 기능에 대해 살펴보도록 하겠다.

MVC의 Global.asax 는 모든 MVC의 기능들을 등록하는 기능도 포함하고 있다. 이것은 Application_Start() 에서 이루어지게 되는데 이것이 기존 ASP.NET 과 구분되는 가장 큰 차이점일것이다. 이 외에도 기존 ASP.NET 의 이벤트 들을 자유롭게 등록해서 사용할수 있다.

백문이 불여 일타라고 하니, global asax에서 가장 빈도 높게 사용하는 이벤트인 Application_BeginRequest를 등록해 보도록 하겠다.


public class MvcApplication : System.Web.HttpApplication

{

    protected void Application_BeginRequest(object sender, EventArgs e)

    {

        HttpContext.Current.Response.Write("begin request");

    }

[코드 : Application_BeginRequest]


global1.png
[그림 : 코드 실행 결과]

기존 ASP.NET 에서 사용하는 그대로 사용하면 되는데 , 문제는 이런 이벤트 들은 인텔리센스의 도움을 받지 못한다는 것이다.결국 기억을 더듬거나 검색해서 써야 한단 이야기인데.. 그래서 준비했습니다. Global.asax 링크!




GlobalFilter

조금 전의 글에서 필자는 Application_Start 부분에 모든 MVC 기능의 초기화가 이루어진다고 하였다. 여기에는 Area 나 , RoutingTable 을 등록하는것도 포함되는데 , 이번 MVC3에서는 GlobalFilter 라는 기능이 새로 소개가 되었다. ActionFilter 를 사용하다 보면 , 모든 페이지에 적용해야 하는 ActionFilter 가 있을수 있다. 주로 캐싱이나 , 인증 혹은 로깅등이 그런 예가 될수 있는데 이것은 GlobalFilter라는 기능을 사용해서 모든 Action에 등록할수 있다. 이번 장에서는 초간단 예제를 통해 GlobalFilter를 사용하는 법을 살펴보도록 하겠다.


public static void RegisterGlobalFilters(GlobalFilterCollection filters)

{

    filters.Add(new HandleErrorAttribute());

}

[코드 : GlobalFilter]


이곳에 우리가 지난번 장에서 만든 필터를 삽입해보도록 하겠다.

 


public static void RegisterGlobalFilters(GlobalFilterCollection filters)

{

filters.Add(new PipelineFilterAttribute());

           

}


[코드 : PipelineFilter 를 global.asax에 추가하는 코드]

이것으로 모든 MVC페이지에 해당 Attribute가 추가되어 구동됨을 알수 있다.

11_1.png
[그림 : GlobalFilter]




Summary

이 외에도 앞으로 언급할 MEF in MVC등에서 이 global.asax 이 폭넓게 언급될 것이다. MVC에서 어떤 추가 기능을 사용한다고 하면 , 모두 이곳에 등록된다고 보면 될것 같다.
다음장에서는 MVC의 직접적인 기능과는 관계가 없지만 많은 예제에서 폭넓게 다뤄지는 Repository 패턴에 대해 살펴보도록 하겠다.




ASP.NET MVC3 시리즈 강좌 리스트
[ASP.NET MVC3강좌] 1. MVC(Model- View – Controller) 란 무엇인가.
[ASP.NET MVC3강좌] 2. MVC 환경 세팅
[ASP.NET MVC3강좌] 3. HelloWorld MVC
[ASP.NET MVC3강좌] 4. Layout , Partial Page
[ASP.NET MVC3강좌] 5. Model 을 View에서 표현하기
[ASP.NET MVC3강좌] 6. MVC의 매력적인 기능 스캐폴딩!(With EF)
[ASP.NET MVC3강좌] 7. 유효성 검사
[ASP.NET MVC3강좌] 8. ModelBinder
[ASP.NET MVC3강좌] 9. MVC ActionResult 종류 살펴보기
[ASP.NET MVC3강좌] 10. MVC 처리 프로세스 & ActionFilter
[ASP.NET MVC3강좌] 11. Global.asax
[ASP.NET MVC3강좌] 12. (번외편) Repository Pattern
[ASP.NET MVC3강좌] 13. MEF(Managed Extensibility Framework) in MVC
[ASP.NET MVC3강좌] 14. Javascript in MVC
[ASP.NET MVC3강좌] 15. Javascript Intellicense in Visual Studio
[ASP.NET MVC3강좌] 16. JSON in MVC - 1
[ASP.NET MVC3강좌] 17. JSON in MVC - 2
[ASP.NET MVC3강좌] 18. HTML5 in MVC
[ASP.NET MVC3강좌] 19. MVC Tips 1 - HandleUnknownAction
[ASP.NET MVC3강좌] 20. MVC Tips 2 - Cache ActionFilter







profile

ASP.NET MVP 2009~2011