*Microsoft ASP.NET MVC 발표 PPT 에서 발췌했습니다.

이 다이어 그램은 url routing 엔진 실행 이후부터를 도식화한 것입니다.

ControllerBuilder는  Request 받은 객체가 Controller Factory type 인지 instance 인지를 판별하여 ControllerFactory instance로 리턴을 하게 되는데 타입이 명확하지 않다면 DefaultControllerFactory Class 로 리턴을 하게된다.
Controller Factory 는 Controller 를 생성하고 생성된 Controller 는 호출된 Method를 실행하게 되는데 Action invoker 를 호출하게 되는데 이때 Action Filter 는 Action invoker 가 실행되면서 action method 실행전, 실행후에 실행할 Logic 을 선언할 수 있다.
따라서 invoker 실행전에 Action Filter 의 pre-actions 가 실행되고 invoker 실행후 Action Filter 의 post-actions 가 실행되게 된다.

invoker 는 Action Method 로 부터 ActionResult instance 를 리턴받게 되고 ActionResult 의 ExcuteResult Method를 실행한다.


이때 Action Method로 부터 리턴 받은 Action Result Type(RenderViewResult 가 가장 일반적인 action result type) 에 따라 View Engine 을 통해 View 가 결정되어지므로 이후의 보여지는 것이 결정된다.

이후 Controller 와 연결된 View Engine 의 RenderView Method 가 호출되는데, View Engine(View Engine  은 IViewEngine interface를 구현하며 IViewEngine interface 에는 단순히 RenderView method 만 있을뿐이다.) 은 요청된 View의 Path 를 알아내기 위해서 View Locator 를 사용하고 리턴받은 View 의 Path를 가지고 해당경로의 view의 instance 를 초기화하며 해당 View 의 Renderview 를 호출한다. 그러면 View 가 Rendering 되고 사용자의 브라우저에 뿌려지게 된다.

행복한 고수되셔요...


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\

반응형

+ Recent posts