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과 똑같은 작업 환경을 이용하실수 있을꺼 같다.

수고...

Comments

  • Anonymous
    August 23, 2006
    우선, ^^ 너무 너무 반갑습니다.
    제가 본 blogs.msdn.com 내용 중에서 한국 사람 블로그로는 가장 긴 글을 남긴 분이 아닌가 ^^ 생각됩니다.(기술적인 내용면에서.)

    저희는 언제난 정보에 목마르답니다. ^^ 자주 자주, 시간이 없더라도 꼭 내셔서 많은 글 써주시기를 부탁드리겠습니다. ^^

    그건 그렇고요... WSP 와 WAP 에 대해서 설명해 주셨는데요. 말씀하신 그 project to project 방식을 왜 WAP 에서는 그렇게 어려운 것인지 궁금합니다.

    WSP 의 경우에는 프로젝트 파일 조차 없어서, sln 파일에 그 환경설정을 저장하는 것으로 알고 있습니다. 실제로 솔루션 파일을 열어보면,  Web Site Project 내용 중에서 "ProjectReferences" 요소가 있는 것을 볼 수 있는데, 말씀하신 데로라면 그 부분이 바로 project to project 참조 정보를 보관하는 부분이라고 보입니다.
    제가 궁금한 것은, WAP 는 자신이 직접 프로젝트 파일까지 들고 있음에도 불구하고 "ProjectReferences" 를 보관하는 것이 그리 어려운 문제가 아닐 것 같다는 것입니다. 제 생각이 너무 짧은가요? ^^