Visual Studio 에는 프로젝트를 만드는 위저드가 있다는 것은 모두 알고 계시리라 믿습니다.
위저드를 이용해 프로젝트를 추가 하거나 파일을 추가 할 경우 미리 정의된 모양에 따라 파일과 설정 들이 추가됩니다. 그럼 이 파일들에서 필요 없는 부분을 빼고 싶거나 다른 파일 들을 추가 하고 싶다면? 나만의 템플릿을 만들고 싶다면 어떻게 해야 할까요?
웹폼을 생성 했을 때 Form1.aspx 라는 이름 대신 Default.aspx 라는 파일로 생성 하고 싶거나.. 모든 파일을 생성 할 때 내가 설정 한 것들을 추가 해서 생성 하고 싶을 때를 위해서 이렇게 포스트를 작성하기로 했습니다.
예전에 Brew를 이용해 프로그램을 만들 때 찾았던 방법인데. Visual Studio(이하 VS)를 사용한다면 적용 가능 하다.
*여기에서는 VS .NET 2003을 사용했습니다.
위 그림과 같이 기존 프로젝트에 웹폼(윈폼, class 등등..)을 추가 할 경우 생성되는 웹폼의 모양을 수정하는 방법을 설명 하겠습니다. (우선 백업을 해놓으시길 바랍니다. 이상이 생겨도 위즈에게 책임이 없습니다.^^ㅋ)
그림 1과 같이 솔루션 탐색기에서 마우스 오른쪽 버튼을 눌러 항목추가를 많이 사용하게 됩니다.
이번에는 여기에서 추가되는 템플릿을 수정하는 방법을 설명하겠습니다.
"새 항목 추가"를 누르게 되면 그림 2 와 같은 추가 파일 형식을 선택하는 창이 열립니다.
먼저 여기에서 추가 되는 기본 내용은 어떻게 추가 되는지를 보겠습니다.
항목 추가를 하게 되면 VS는 해당 항목 관련 내용을 추가하기 위해 스크립트를 로드 합니다. 스크립트는 미리 정의된 템플릿을 불러들여 프로젝트 파일에 내용을 추가하고, VS가 프로젝트를 다시 읽어서 해당 내용이 추가 되게 됩니다.
그렇다면 미리 정의된 스크립트와 템플릿은 어디에 숨어 있을까..?? 아래 그림에 답이 있습니다.
VS 가 설치된 디렉터리를 열어~ 봅시다. (대부분 C:\Program Files\Microsoft Visual Studio .NET 2003\ 일 것이라 예상.)
여러가지 디렉터리가 있지만, C#을 사용하고 있기때문에.. VC# 디렉터리를 열겠습니다. (물론 VB를 사용한다면 VB7 디렉터리를 열면 됩니다.)
VC#Wizards 라는 디렉터리가 보일 것입니다. 이 디렉터리를 열어 보면 여러 폴더들이 있는 것이 보일 것입니다. 그 중에 우리가 고치고자 하는 웹폼에 대한 설정이 들어 있는 CSharpAddWebFormWiz 디렉터리를 열면 Script, Template 이라는 두 디렉터리가 있습니다.
Script 디렉터리에는 웹폼을 추가할 때 실행되는 스크립트가 들어 있고, Templates 에는 script를 이용해 추가할 항목들이 들어 있습니다. 위에서 이야기 했죠.
위저드를 실행할 경우 VS에서는 해당 Script을 실행해서 설정을 하고, 파일 추가를 실행 하는 과정을 거치게 됩니다. 여기에서는 스크립트 작성에 대해 설명 하지는 않도록 하겠습니다. (하지만 스크립트를 열어 보시면 간단히 수정 할 수 있을 정도로 쉽습니다. 백업을 해놓으셨다면 수정에도 도전해 보세요.^^)
Script 디렉터리 안에 보면 1042라는 디렉터리가 있고, 그 안에 default.js 라는 파일이 있습니다. 이 파일을 텍스트 에디터를 이용해 열어 보면 복잡한(?) 자바 스크립트가 나옵니다. 스크립트를 살펴보면 파일 추가 부분에서 WebForm.aspx 라는 파일을 추가 하도록 되어있습니다.
그 파일이 바로 Templates 디렉터리에 있는 WebForm.aspx 파일입니다.
이 WebForm.aspx 파일을 열어서 내용을 수정하면 웹폼을 추가 할 경우에 추가 되는 WebForm.asp 파일이 수정되는 것입니다.
Templates 디렉터리에 있는 WebForm.aspx 파일에 내용을 수정하고 저장 한 후 VS 에서 웹폼 추가(그림1과 같이)를 하면 수정한 WebForm.aspx 파일이 프로젝트에 추가 되어 있는 것을 확인 할 수 있습니다.
WebForm.aspx 을 Default.aspx 로 바꾸기 위해서는 스크립트에서 파일이 추가되는 부분의 추가 파일명을 변경하고, Template 디렉터리의 WebForm.aspx 파일 이름을 Default.aspx로 변경해주면 되겠지요.^^ (물론 .cs 파일도 변경을 해주어야 합니다. 코드비하인드와 링크를 위해 Default.aspx 파일의 @page 부분도 변경을 해주어야 합니다. 아래에서 설명 하겠습니다.)
윈폼 이나 클래스 등 위저드로 생성 할 수 있는 내용이 이와 같이 스크립트와 템플릿 파일로 구성되어있습니다.
해당 프로젝트나 추가 항목들에 대해 수정해서 사용할 경우에 대해 스크립트를 수정하거나 템플릿을 수정해 원하는 형태로 위저드를 사용할 수 있습니다.
물론 VS에서 제공되는 기능으로 새로운 위저드 항목을 만들 수도 있습니다.
하지만 개발자들은 언제나 바쁘기 때문에. (스타도 하고, 웹서핑에 유머도 읽어야하고, 문서 작업도 해야하고..)
그래서 필요한 내용을 포함하기 위한 이런 편법(?)을 이용해 조금의 시간이라도 단축이 가능하다고 생각합니다.
새로운 위저드 항목을 만들기 위해서는 적지 않은 노력이 필요합니다. (세밀하게 제어하기 위해서는)
다음에 기회가 된다면 정리 해서 올리겠지만 아마도 그런 일은 없을 가능성이 더 큽니다. ^^
(다른 분이 정리 하셨다면, 트랙백 걸어 주세요..^^)
[.NET&C#] 속성 vs 메서드 (0) | 2005.07.16 |
---|---|
[.NET&C#] .NET Whidbey 새로운 기능과 예제 (0) | 2005.06.24 |
[ASP.NET] ASP.NET 성능 향상을 위한 체크 리스트 (0) | 2005.06.24 |
[HTML] 폼값 영문만 입력 받기 (4) | 2005.06.22 |
[ASP.NET] SQL을 이용한 ASP.NET 세션관리 설정 방법 (0) | 2005.06.21 |
[.NET&C#] ADO.NET 2.0 Feature Matrix (0) | 2005.06.18 |
[ASP.NET] ASP.NET에서 UTF-8 지원시 주의사항 (2) | 2005.06.16 |
[.NET&C#] 구조체를 세션에 저장 할 경우 주의사항 (0) | 2005.06.16 |