Visual Studio 2005 SP1 에 새로 추가 되는 기능 Web Application Project

Visual Studio 2005 가 릴리지 된지 어언.... 어언... 하여간 좀 됐다. VS 2005 가 릴리즈 된후에 가장 많이 받은 feedback 중 하나가 VS 2005에서 새로 바뀐 웹 프로젝트 방식이 기존 2003 방식과 너무 달라 2003에서 2005로 Migrate 하기가 힘들다는 거였다

소위 Web Site Project 라 불리는 이 새로운 방식은 일반적인 VS project system을 사용하지 않고 php나 asp 처럼 on-demand로 각 페이지를 컴파일 하고 서비스 하는 방법인데, 그 나름의 사용상의 편의점이나 이점이 있다.

문제는 WSP가 WAP 보다 낫다 나쁘다가 아니라, 이 새로운 WSP를 채용하면서 기존의 WAP - Web Application Project의 지원을 아예 안 함으로써 기존 WAP 형태로 많은 코드를 이미 보유 하고 있는 기업/사람들로 하여금 VS 2005를 사용하기 위해선 기존 WAP을 WSP로 무조건 바꾸게 하는것이 문제 였다.

하여간 많은 분들이 이 점을 지적하자 VS 2005가 발표된 이후 Venus team 에서 Add-in 형식으로 VS 2005에서 2003과 같은 WAP 형태의 웹 프로젝트를 사용 가능 하게 하는 AddIn을 발표 하였다.

이번 VS 2005 SP1에서 이 Add-in 형식으로 발표된 기능을 SP1에 집어 넣기로 했다. 다시 말해 SP1 부터 WAP 을 지원하기로 한거다

여기 까지는 우리 팀이 아닌 Venus 팀의 일이라 나도 자세히 모른다 더 자세한 정보는 Venus team의 blog를 읽어 보기 바란다.

하여간, 이렇게 SP1에 부터 web application project 형태의 웹 프로젝트를 지원하기로 함으로써 우리 C# IDE 팀도 WAP 형태의 프로젝트에 맞게 몇가지 수정을 해야 하는데. 현재 아직 어떻게 할지 결정이 안난 상태다.

일단 문제가 무엇이냐면. 이 새로운 WAP 에서는 aspx 파일에 <script></script> 불록 안에 들어 있는 코드에 대해 몇가지 지원 되지 않는 기능이 있다.

첫째는 aspx 파일 안에는 Find All reference가 작동 하지 않게 된다, 두번째는 rename refactoring 기능이 작동하지 않게 된다. 세번째는 Go to Definition이 소스 파일로 가는게 아니라 메타 데이타로 가게 된다.

이유는 WAP 시스템이 내부적으로 작동하는 방식 때문인데 알다 시피 WAP은 VS 2003 버젼에서 쓰던 시스템이고 그때 까지는 모든 reference가 metadata reference 였다. 다시 말해 솔루션 안에 2개의 C# 프로젝트 간에 reference를 추가 하더라도 이건 project to project의 reference가 아닌, project to metadata reference 였다.

이번 2005에 들어가면서 새로 도입된 기능이 project to project 기능인데, 이 기능이 들어 가면서 사용자가 다른 project에서 정의 된 타입에 대해 go to definition을 하게 되면 자동으로 그 소스 파일을 열어 IDE에 보여줄수 있게 된거다.

하지만 이 WAP은 여전히 VS 2003 형태의 시스템을 사용하게 됨으로써, code behind 파일이 metadata reference로 aspx 파일에 전달 되게 되고, 이렇게 됨으로써 위에 말한 여러 기능들을 사용할수 없게 되는거다.

VS 2003과 비교해서 더 나뻐지는건 없지만 VS 2005에 새로 들어간 여러 가지 기능들을 쓸수 없게 된다.

어떻게 결론 날진 모르겠지만, 하여간 몇가지 안되는 기능들이 있더라도,  WAP 형태로 웹을 쓰시고 싶으신 분들은 SP1 을 이용하시면 2003과 똑같은 작업 환경을 이용하실수 있을꺼 같다.

수고...