2008. 6. 7. 22:18

.NET 3.5 SP1에는 새로운 URL기반의 라우팅 기법이 들어 있다. 이와 관련한 내용은 System.Web.Routing에서 찾아 볼 수 있는데 흥미로운 것은 이 역시 ASP.NET MVC와 관련이 깊다는 것입니다.
(아마 조만간 ASP.NET MVC에 관한 내용도 한번 정리해야 할 것 같다. )

말로하는 것 보다는 실제 화면을 보여드리면 싶게 이해를 하실 수 있을 것 같아서 아래 그림을 보여드리도록 하겠습니다.

사용자 삽입 이미지
<그림1>샘플 프로그램의 실행결과

<
사용자 삽입 이미지
그림1>에서 웹 브라우저의 URL을 자세히 보시면 기본주소 하위에 cafegory/123/3cats/42라는 경로가 붙어 있는 것을 볼 수 있습니다. 그냥 보신다면 저 경로 자체는 별다른 의미가 없을 수도 있지만 사실 저런 물리적인 경로가 사실은 실제로 존재하지 않는 주소라는 것입니다.

<그림2>의 프로젝트 구조를 보면 아무리 봐도 그런 경로를 찾아 볼 수 없습니다. 물리적인 경로가 아니라면 어떻게 해서 이런 경로가 나오게 된 것일까요?
사실 이 경로는 소프트웨어적으로 생성된 경로 입니다. 그리고 이런 소프트웨어적인 경로를 사용할 수 있게 해주는 기능이 System.Web.Routing에서 제공되는 기능입니다.

흥미를 가지고 조금만 살펴보시면 생각보다 쓸모 있는 기능이라는 생각을 가질 수 있는데 이 기능은 WebForm기반의 기존의 ASP.NET에서도 활용할 수 있지만 이 기능은 ASP.NET MVC를 위해서 추가된 기능입니다.









<그림2> 프로젝트 구조

사용자 삽입 이미지
<그림3> Search.aspx
그럼 이와 관련한 기능은 어디에 들어가야 하는 것일까요?
함께 첨부해 드리는 샘플파일에서는 이런 기능은 global.asax에서 찾을 수 있습니다.


사용자 삽입 이미지
<그림4> Global.asax
Global.asax에서 routes.Add() 메소드가 사용된 것을 볼 수 있는데 이 메소드를 통해서 필요한 경로가 추가된 것을 볼 수 있습니다.
ASP.NET이 발전하면서 여러가지 새로운 개념들이 많이 추가되는데 잘 익혀두시면 필요할 때 큰 힘이 될것 같습니다. 본 아티클에서 설명해 드린 내용의 샘플 파일은 아래에 있습니다.


감사합니다.