비쥬얼 스튜디오 필수 유틸 목록

Program/Info Etc 2008. 2. 3. 15:50
원데지 님의 홈피 글입니다.

http://cafe.naver.com/projecteam.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=415



이 번역은 번역과정에서 오류가 있을 수 있고 그 내용을 잘 못 전달하거나 할 수 있으므로 100% 신뢰할 수 없으나 50% 이상은 의미 전달이 될 것이라고 개인적으로만 생각합니다. --;

후반으로 갈수록 성의가 떨어집니다. 번역이 어색하고 어이없더라도 널리 이해해주시기 바랍니다.

번역자 : 유신

메일주소 : jswiz@naver.com

원문 : http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/default.aspx

 

10가지 필수 도구

모든 개발자가 지금 다운로드해야하는 비주얼스튜디오 추가기능

이 기사는 다음과 내용을 다룹니다.

l  단위 테스트를 위한 도구

l  코드 관리와 생성 문서화 관리와 생성을 위한 도구

l  개발 환경 변경을 위한 도구

l  데이터 작업을 위한 도구

 

1.      TestDriven.NET

2.      GhostDoc

3.      Smart Paster

4.      CodeKeep

5.      PInvoke.NET

6.      VSWindowManager PowerToy

7.      WSContractFirst

8.      VSMouseBindings

9.      CopySourceAsHTML

10.   Cache Visualizer

11.   Wrapping It Up

 

지난해 저는 지금 모든 개발자가 다운로드 받아야 할 10가지 툴이라는 주제로 기사를 작성했습니다. 이 툴들은 무료로 이용할 수 있는 닷넷프레인웍을 위한 10가지 툴로 주목 받을만합니다.

올해 저는 가지고 있어야 하는 툴 목록을 다시 작성합니다. 그러나 올해 저는 단독으로 실행되는 툴에 대조되는 비주얼스튜디오 애드인(역주 : 한글 비주얼스튜디오 버전에서 추가기능이라고 표기하였으나 영어발음으로 애드인으로 표기, 간단히 얘기해서 비주얼스튜디오 에 포함되어 실행되어 개발에 도움을 주는 프로그램 임)에 초점을 맞춰보겠습니다. 비주얼스튜디오는 풍부한 확장 모델을 제공합니다. 이는 마이크로소프트와 커뮤니티 개발자들에게 애드인을 통해 풍부한 장점을 제공합니다. 어떤 애드인은 이 기능이 없다면 어찌 살수 있을까 할 정도로 중요한 역할을 합니다. 어떤 것들은 여러분들이 계속적으로 수행하는 자잘하면서도 많은 작업을 자동화 해줍니다.

 

저는 무료로 다운로드해서 사용할 수 있는 아주 좋은 비주얼스튜디오 애드인을 몇 개 소개하려 합니다. 애드인의 기본기능만 여러분에게 소개하기에도 좁은 지면이므로 애드인 각각을 대략적으로만 살펴보겠습니다.

애드인 각각은 2003에서 작동하고 이미 대부분은 2005에서 사용 가능합니다.(역주: 안 되는것도 꽤 됨, 2005에서 포함된 기능도 있음) 2005버전은 이 글을 쓰는 시점에 이용할 수 없었습니다.(역주: 번역시점에 이용 가능했음 2005 11월말), 조만간 사용할 수 있게 될 것입니다.

 

TestDriven.NET

(역주: NUnit부터 사용해볼 것)

테스트 주도 개발은 코드를 작성하기 전에 단위(Unit) 테스트의 실행하는 것입니다. 그런 테스트를 통과하기 위해 코드를 작성하는 것입니다.

코드를 작성하기 전에 테스트를 작성함으로써 여러분의 코드가 보여줘야 하는 똑같은 동작을 증명하는 것입니다. 보너스로 결국 광범위한 리팩토링이 가능하게 해주는100% 테스트를 적용할 수 있습니다.

 

여러분이 비주얼 스튜디오 팀 시스템을 사용하고 있다면 비쥬얼 스튜디오안에 이미 내장된 단위 테스트 기능이 있습니다. 팀 시스템 전에  비주얼 스튜디오 통합개발환경에 NUnit를 바로 통합해 사용할 수 있는 TestDriven.NET 애드인이 있었습니다. 제 생각에 팀 시스템 버전이 아닌 2005를 사용하거나 2003을 사용한다면 여전히 좋은 해결책일 것입니다.

 

TestDriven.NET은 통합 개발환경에 바로 단위 테스트 기능을 추가합니다. 단위 테스트를 작성하는 대신에 NUnit GUI 도구로 전환하여 테스트를 실행하고 통합개발환경의 코드로 전환하게 해주는 등 모든 작업을 바로 할 수 있게 해줍니다.

그림 1 TestDriven.NET의 새로운 테스트 옵션

TestDriven.NET 설치 후에 그림1에서 보여주듯이 오른쪽 클릭 메뉴에서 새로운 메뉴 항목을 몇 개 볼 수 있습니다. 유닛 테스트를 오른쪽 클릭으로 바로 실행 할 수 있습니다. 결과는 그림 2에 보여주는 결과 창에서 처럼 보여질 것입니다.

그림 2 단위 테스트 결과

 

통합개발환경에서 단위 테스트를 수행하는 것은 중요한 한편, 아마도 가장 뛰어난 기능은 Test With | Debugger를 선택하여 오른쪽 클릭으로 디버거를 바로 실행할 수 있는 것입니다. 그러면 디버거를 실행하고 단위 테스트를 실행합니다. 그리고 이 테스트에서 중단점을 찍을 수 있습니다.

사실상 테스트를 수행하기 위해 TestDriven.NET을 위한 단위 테스트여야 할 필요는 없습니다. 단지 public이면서 반환값이 void형인 어떤 메서드이면 됩니다. 이것은 여러분이 과거 응용프로그램을 테스트 하고 몇몇 코드를 조사해 볼 필요가 있다면 바로 TestDriven.NET을 실행해 빨리 신속하게 테스트 해볼 수 있다는 것을 의미합니다.

TestDriven.NET은 단위 테스트 또는 테스트 주도 개발을 한다면 필수적 애드인입니다. 여러분이 아직 단위 테스트를 하지 않는다면 심각하게 이를 고려해 보기바랍니다. TestDriven.NET Jamie Cansdale에 의해 작성되었고 www.testdriven.net에서 다운로드 받을 수 있습니다.

 

GhostDoc

XML 주석은 여러분의 응용프로그램을 문서화할 때 필수적입니다. XML 주석을 사용하여 여러분의 코드에 표시를 할 수 있고 nDoc과 같은 툴을 이용해 이 주석에 기반한 웹 문서와 같은 MSDN 또는 도움말 파일을 만들 수 있습니다. XML 문서가 가지는 유일한 문제점은 그것을 작성하는데 시간이 걸리고 결국 비슷한 문장을 반복해서 작성하게 되는 점이다. GhostDoc의 목표는 여러분이 작성한 클래스 또는 메서드의 이름뿐만 아니라 인자까지 보고서 XML주석을 작성하는 지루한 작업을 자동화하는 것입니다. 그리고 추천되는 명명 규칙에 기초해 문서가 어떻게 보여져야 하는지 경험 있는 추측을 할 수 있게 합니다.

이것은 여러분의 업무 규칙과 제공되는 예제의 문서화를 통해서 글쓰기를 위해 대체하는 것이 아닙니다.

그러나 신경 쓰지 않아도 되는 부분의 문서 생성을 자동화해 줄 것입니다.

예를 들어 여기에서 보여주고 있는 메서드를 생각봅시다.

private void SavePerson(Person person)

{

 

}

GhostDoc 설치 후에 메서드 선언 위에서 마우스 오른쪽 버튼을 클릭해서 Document this를 선택합니다.

그러면 다음의 주석이 추가될것입니다.

/// <summary>

/// Saves the person.

/// </summary>

/// <param name="person">Person.</param>

private void SavePerson(Person person)

{

 

}

 

보시다시피 GhostDoc은 자동으로 메서드가 어떻게 이름이 지어졌는지에 기초로 하여 요약문을 생성합니다. 또한 인자에 대한 주석도 생성합니다. 여러분은 여기서 멈추지 말고 생성된 예제에서 구조할 사람을 명확하게 지칭해서 추가적이 주석을 추가해보세요. 아래는 제가 직접 추가적인 주석을 추가한 주석입니다.

/// <summary>

/// Saves a person using the configured persistence provider.

/// </summary>

/// <param name="person">The Person to be saved</param>

private void SavePerson(Person person)

{

 

}

별도의 주석을 추가하는 일은 GhostDoc 이 자동으로 생성하는 많은 부분에 비하면 훨씬 쉽습니다. GhostDoc은 또한 기존 규칙을 수정할 수 있게 하거나 어떤 종류의 주석이 생성되어야 하는 결정하는 부가적인 규칙을 추가할 수 옵션을 포함하고 있습니다.

GhostDoc Roland Weigelt에 의해 작성됐고 www.roland-weigelt.de/ghostdoc에서 다운받을 수 있다.

 

Smart Paster

문자열은 대부분의 응용프로그램에서 중요한 역할을 합니다. 사용자에게 보내지는 메시지로 사용될 수도 있고, 시스템의 동작을 묘사하는 데 사용되는 주석이 될 수 있고, SQL 문장으로 실행될 수도 있습니다. 문자열을 가지고 작업을 할 때 개발자를 좌절시키는 부분 중 하나는 통합개발환경(역주 : 비주얼스튜디오)에 결코 제대로 붙여 넣어지지 않는다는 점입니다.

주석을 붙여 넣을 때 문자열이 너무 길거나 잘 정렬되지 않아서 줄 바꿈 문자, 주석, 탭을 삽입하는데 시간을 보내야 합니다.

실제 연결되어야 하는 문자열을 가지고 작업을 할 때 여러분은 심지어 더 많은 작업을 해야 하는데 대체로 문자열을 분리하고 문자열 연결 심볼을 삽입하거나 스트링 빌더를 이용해야 합니다.

Smart Paster 애드인은 어떤 포맷을 사용해 비주얼 스튜디오로 클립보드로부터 문자열을 붙여넣을때 오른쪽 마우스 버튼 메뉴에서 많은 명령을 제공합니다.

설치 후에 오른쪽 버튼 메뉴에서 이용할 수 있는 새로운 붙여 넣기 옵션을 볼 수 있을것입니다.(그림 3 보기)

그림 3 Smart Paster로 붙여넣기

예를 들어 여러분은 업무 로직을 설명하기 다음의 문자열을 작성할 수 있습니다.

To update a person record, a user must be a member of the customer

service group or the manager group. After the person has been updated, a

letter needs to be generated to notify the customer of the information

change. (역주: 영어 주석이므로 굳이 해석 안 함)

 

Paste As | Comment option를 이용해 비주얼스튜디오에 복사하고 붙여 넣기를 할 수 있고 다음과 같은 결과를 얻을 수 있습니다.

//To update a person record a user must be a member of the customer

//service group or the manager group. After the person has been updated

//a letter needs to be generated to notify the customer of the

//information change.

 

자동으로 주석문자와 캐리지 리턴이 삽입됩니다. (어떤 길이에 리턴문자를 넣을지 설정할 수 있습니다.) Smart Paster 도움없이 이 문자를 삽입했다면 긴 문자열을 붙여 넣고 강제로 수동으로 줄 바꿈 문자를 추가하고 주석 문자를 추가해야 했을 겁니다. 또 다른 예로 실행 시간에 값을 삽입할 필요가 있는 아래와 같은 메시지가 있다고 봅시다.

 

You do not have the correct permissions to perform <insert action>.

You must be a member of the <insert group> to perform this action.

 

Paste StringBuilder command를 이용해 비주얼 스튜디오에 StringBuilder로 문자열을 추가할 수 있습니다. 결과는 이와 같습니다.

StringBuilder into Visual Studio. The results would look like this:

StringBuilder stringBuilder = new StringBuilder(134);

stringBuilder.AppendFormat(

    @"You do not have the correct permissions to ");

stringBuilder.AppendFormat(

    @"perform <insert action>. You must be a member of ");

stringBuilder.AppendFormat(

    @"the <insert group> to perform this action.");

 

문자열중에 변수 섹션은 대체하는 코드를 간단히 수정할 필요가 있을 것입니다.

StringBuilder stringBuilder = new StringBuilder(134);

stringBuilder.AppendFormat(

    @"You do not have the correct permissions to ");

stringBuilder.AppendFormat(

    @"perform {0}. You must be a member of ", action);

stringBuilder.AppendFormat(

    @"the {0} to perform this action.", group);

 

Smart Pasters는 비주얼 스튜디오에서 문자열을 작업 관련된 많은 바쁜 작업을 없애줄 수 있을 것입니다. 이 프로그램은 Alex Papadimoulis에 의해 작성되었고

weblogs.asp.net/alex_papadimoulis/category/5341.aspx에서 이용 가능합니다.

 

CodeKeep

소프트웨어 개발 과정을 통해 작은 코드 일부분을 재사용하는 것은 일반적입니다. 아마도 여러분은 문자열로부터 열거값을 어떻게 얻어내는 예제나 여러분이 선택한 언어에 어떤 패턴을 구현하는 방법에 대해 시작 정도는 재사용할 것입니다.

비주얼 스튜디오는 코드 스니핏(코드 조각(일부분))으로 작업하기 위한 기존 다소간의 기능을 제공합니다만 그것은 소수입니다. 첫째 자신의 컴퓨터에 여러분의 스니핏 모두가 저장되는 것을 가정합니다. 여러분이 컴퓨터를 바꾼다든지 직장을 이동한다면 여러분의 코드 스니핏을 챙겨야 하는 것을 기억해야 하고 그것들을 챙겨야 합니다. 둘째 이 스니핏은 여러분만 볼 수 있습니다. 사용자, 그룹 일반 대중 사이에 스니핏을 공유를 위한 메커니즘이 없습니다.

재사용이 필요한 곳에 CodeKeep이 필요합니다.

CodeKeep은 웹 응용프로그램입니다. 어떤 언어로 작성된 코드의 스니핏이라도 공유하고 만들려는 사람들을 위한 장소를 제공합니다.

CodeKeep의 진정한 유용함은 CodeKeep데이터베이스를 통해 자신이 등록한 스닛핏 뿐만 아니라 빠른 검색을 제공하는 비주얼스튜디오 애드인이라는 것입니다.

CodeKeep 설치 후에 도구 | CodeKeep | 검색 메뉴를 선택하여 기존의 코드 스니핏을 검색할 수 있고 그림 4에서 보여지는 검색 화면을 이용합니다.

이 화면에서 여러분 자신의 스니핏을 볼 수 있고 CodeKeep에 등록된 스니핏 모두를 검색할 수 있습니다. 스니핏을 검색할 때 다른 사용자가 등록하고 공개로 표시한 스니핏 모두를 볼 수 있습니다. 여러분이 검색한 스니핏을 찾는다면 여러분은 그것을 자세한 내용을 볼 수 있고 코드에 삽입하기 위하여 클립보드에 바로 복사할 수 있습니다.

여러분은 또한 저장하기를 원하는 코드를 오른쪽 클릭으로 선택하여 CodeKeep에 보내기를 선택하여 빠르고 쉽게 CodeKeep에 여러분의 코드를 추가할 수 있습니다. 이것은 새로운 화면 열 것입니다. 여러분의 스니핏 주위에 약간의 메타데이터를 추가해 줄 것입니다. 주석을 포함해서 어떤 언어로 작성되었는지 모두에게 보여질 것인지 개인적으로 보여질 것인지를 결정합니다.

코드 일부분을 작성하거나 미래에 그것을 사용할 필요가 있다고 생각될 때마다 단순히 그것을 잠깐 시간을 내서 등록하세요. 이 방법으로 여러분은 여러분의 스니핏을 관리하거나 미래에 그것을 다시 재 작성하는 문제에 대해 걱정할 필요가 없을 것입니다.

CodeKeep은 여러분의 스니핏을 서버에 저장되어 스니핏은 중앙으로 모아 관리하기 때문에 여러분의 코드를 시스템에서 시스템으로 또는 직장에 직장으로 옮기는 것에 대해 걱정할 필요가 없습니다.

CodeKeep Arcware's Dave Donaldson에 의해 작성되었고 www.codekeep.net에서 이용 가능합니다.

 

PInvoke.NET

P/Invoke는 닷넷프레임웍안에서 본래의 Win32 API 호출에 접근할 때 사용되는 방법입니다. P/Invoke를 사용할 때 어려운 부분중의 하나는 여러분이 사용할 필요가 있는 메서드의 용법을 결정하는 것입니다. 이 것은 종종 시행 착오가 될 수 있습니다. 올바르지 않은 데이터 형식이나 값을 비관리 API에 보내는 것은 메모리 누수나 다른 얘기치 않은 결과를 초래할 수 있습니다.

PInvoke.NET 정확한 비관리 Win32 API함수를 호출할 때 사용되는 P/Invoke 용법을 문서화할 수 있는 위키입니다. 위키는 누구나 편집할 수 있는 협력 웹사이트 입니다. 또한 거기에서 정보를 이용할 뿐만 아니라 정보를 제공할 수도 있습니다.

거기에 저장되어 있는 위키와 정보는 매우 가치있고 PInvoke.NET Visual Studio 애드인을 더 가치있게 만듭니다.

PInvoke.NET add-in을 한번 다운로드해 설치했다면 새로운 내용을 등록할 뿐만 아니라 용법을 검색할 수 있을것입니다. 간단히 코드 파일 오른쪽 마우스 클릭을 하면 두개의 새로운 상태 메뉴를 볼 수 있을것입니다. PInvoke 용법을 삽입하거나 PInvoke 용법과 타입을 등록해보세요

그림 5 PInvoke.NET 사용

Insert PInvoke Signatures를 선택하면 그림 5에서 보여지는 대화상자를 볼 수 있을것입니다. 이 간단한 대화 상자를 이용해 호출하기 원하는 함수를 검색할 수 있습니다. 선택적으로 여러분은 이 함수의 부분이 되는 모쥴을 포함시킬 수 있습니다. 이제는 대부분 주요 응용프로그램에서 중요한 부분이 컴퓨터에 삐 소리가 나게 하는 기능입니다. 그래서 저는 Beep함수를 검색할 것이고 무엇이 나타나는지 보겠습니다. 결과는 그림 6과 같습니다.

그림 6 PInvoke.NET에서 Beep함수 검색

결과는 메서드의 개요를 보여줍니다. 여기서는 스피커에 간단한 톤을 생성한다라고 보여주고 있습니다. 또한 여러분은 C# Visual Basic .NET에 대해 둘 다 코드 용법을 볼 수 있다. 위키는 또한 관리 API에 대해서도 닷넷프레임웍 2.0에서 새로운 System.Console.Beep 메서드가 있다고 제안을 합니다.

또한 대화 상자 하단에는 Beep 메서드에 위키에서 해당하는 페이지로 연결할 수 있는 링크가 있습니다.

해당 페이지는 어떻게 이용하는 지 예제 코드뿐만 아니라 이 메서드와 함께 이용될 수 다양한 인수에 대한 문서를 포함하고 있습니다.

여러분이 삽입하기 원하는 용법을 선택한 후에 삽입 버튼을 클릭하세요. 그러면 여러분의 코드 문서에 삽입될 것입니다. 다음 코드는 여러분을 위해 자동으로 생성될 것입니다.

[DllImport("kernel32.dll", SetLastError=true)]

[return: MarshalAs(UnmanagedType.Bool)]

static extern bool Beep(

    uint dwFreq, uint dwDuration);

그리고 나면 여러분은 단순히 이 메서드를 호출하기 위해 코드만 작성할 필요가 있습니다. 그러면 여러분의 컴퓨터는 즉시 삐 소리를 낼 것입니다.

PInvoke.NET 위키와 애드인은 때로 관리코드에서 Win32 API와 함께 작업해야 할 때 겪는 많은 고통과 조사시간을 없애줍니다.

위키는 www.pinvoke.net 주소에서 이용할 수 있고 애드인은 사이트 왼쪽 하단 구석에 유용한 도구들 링크에서 다운받을 수 있습니다.

 

VSWindowManager PowerToy

비주얼스튜디오는 각기 다른 많은 창을 포함합니다. 이들 모두는 다른 때에 유용하지요.(역주: 작업성격에 맞게 적절한 윈도우에 정보를 얻고 설정할 수 있어 편하다는 뜻). 여러분이 저와 같다면 여러분이 개발 작업에서 다양한 점(기능)을 사용하기 좋아하는 각기 다른 윈도우 배치구조를 가지고 있을 것입니다. 제가 HTML을 작성하고 있을 때 저는 도구상자와 작업 목록 창을 감추는 것을 좋아합니다. 폼을 디자인 할 때 저는 도구 상자와 작업 목록 창을 보여주기를 원합니다. 코드를 작성할 때는 작업 목록 창을 제외한 모든 창을 감추는 것을 좋아합니다.

제가 무슨 일을 하느냐에 따라 반복적으로 창을 열고 닫고 이동하는 것은 정말 한심스럽고 시간을 소비하는 일입니다.

비주얼스튜디오는 윈도우 레이아웃 개념을 포함하였습니다. 디버깅을 시작할 때 눈치채셨을 지 모릅니다. 창이 자동으로 마지막으로 디버깅 했을 때 레이아웃으로 원상태로 되돌아갈 것입니다. 이것은 비주얼스튜디오가 일반 창과 디버그 창 레이아웃을 포함하고 있기 때문입니다.

코딩할때와 디자인할 때 대조적으로 다른 레이아웃을 사용할 수 있다면 훌륭하지 않겠습니까? VSWindowManager PowerToy가 바로 해답입니다.

VSWindowManager PowerToy 설치 후에 그림 7에서 보여지는 것처럼 윈도우 메뉴에 몇 가지 새로운 옵션을 볼 수 있을 것입니다.

그림 7 VSWindowManager 레이아웃 명령

Save Window Layout As menu(메뉴로 창 배치 저장하기)는 현재 여러분의 창 배치를 저장할 수 있게 해줍니다. power toy를 사용을 시작하기 위해서 여러분의 Windows | Save Window Layout As | My Design Layout command 메뉴를 찾아들어가 디자인을 위해 여러분이 좋아하는 방식대로 설정하십시요. 이는 현재 레이아웃을 저장할 것입니다. 저처럼 코딩 레이아웃을 선택하여 좋아하는 코딩 레이아웃과 같게 하고 세가지 자기 자신취향에 맞게 해보세요.

VSWindowManager는 현재 디자이너 또는 코드를 보고 있는지에 따라 디자인와 코딩 레이아웃 사이에서 자동으로 레이아웃을 바꿔줄 것입니다. 또한 현재 저장한 레이아웃을 선택하기 위해 Apply Window Layout menu 명령을 사용할 수 있습니다. VSWindowManager은 창을 자동으로 감추고 보여주고 재배치하여 전과 똑같은 레이아웃을 유지할 수 있도록 해줍니다.

 

WSContractFirst

비주얼스튜디오는 언뜻 보기에는 쉽지만 .asmx 파일을 만들고, 코드를 추가하고, 웹서비스를 운용할 수 있게 준비하여 웹서비스를 만들어냅니다.

ASP.NET은 웹서비스를 위한 동작과 메시지 패턴을 표현하는데 이용 되는 Web Services Description Language(웹 서비스 기술 언어, WSDL) 파일을 만들 수 있습니다.

ASP.NET을 이용해 이 파일을 생성하게 하는 데는 2가지 문제점이 있습니다. 주된 문제는 여러분이 웹서비스를 위해 만든 Contract를 제어하지 못한다는 점입니다. 이를 해결하기 위해 contract-first 개발이 필요합니다.

Contract-first(선 계약) 개발은 또한 contact-driven development(계약 주도 개발)이라 불리고 웹서비스 자체를 여러분이 실제로 작성하기 전에 웹서비스를 위한 contract를 작성하는 것입니다.

WSDL파일은 여러분이 직접 작성함으로써 웹서비스가 외부로 노출시키는 구조와 인터페이스를 포함하여 웹서비스가 어떻게 보내지고 사용될 지 대해 완벽하게 제어합니다.

WSDL문서를 작성하는 것은 재미있는 일이 아닙니다. 그것은 일종의 법률 계약서를 작성하는 것과 같습니다. 그러나 많은 양의 XML을 사용합니다.

이럴 때 적용할 수 있는 게 WSContractFirst 애드인입니다. WSContractFirst WSDL파일 작성하는 것을 쉽게 해줍니다. 서버와 클라이언트측 코드를 생성해줍니다. 두 가지 좋은 점을 얻을 수 있는데 비주얼스튜디오 스타일의 서비스 개발에서 이용되던 신속 개발이 가능하고 contract를 직접 제어할 수 있습니다.

첫단계로 WSContractFirst을 이용해 XML 스키마 파일을 만드는 일입니다. 이 파일은 메시지 또는 웹서비스에서 사용될 메시지로 정의될 것입니다. 비주얼스튜디오는 여러분의 스키마를 정의하기 위한 사용하기 쉬운 GUI 인터페이스를 제공하는데 이는 특별히 도움이 됩니다. 이것은 웹서비스 개발 과정의 중요 과정 중에 하나입니다. 정의한 여러분의 스키마가 있다면 그들 중에 하나에 오른쪽 마우스 버튼 클릭을 해서 Create WSDL Interface Description을 선택합니다. 그림 8과 보여지는 첫 단계의 Generate WSDL Wizard가 실행될 것입니다.

그림 8 WSContractFirst으로 WSDL작성

단계 1 서비스의 이름 네임스페이스, 문서화에 대한 기본정보를 수집합니다.

단계 2 서비스에 포함하기 원하는 .xsd파일을 명기합니다. 이 마법사를 실행하기 선택한 스키마가 기본적으로 포함됩니다.

단계 3 서비스의 동작을 명기합니다. 단 방향의 동작이나 요청과 응답 동작을 할지 명기할 뿐만 아니라 동작에 이름을 지정할 수 있습니다.

단계 4 동작과 메시지에 대한 상세정보를 입력합니다.

단계 5 <service>요소가 생성되어야 하는 지와 이 마법사 완료되면 코드 생성 대화상자가 자동으로 실행될지 안될지 명기

단계 6 선택적인 .xsd 경로 명기 마법사가 완료되면 여러분의 WSDL파일은 프로젝트에 추가됩니다.

 

이제 WSDL파일을 가지게 되었고 몇 가지 할 수 있는 일이 생겼습니다. WSContractFirst의 코드 생성을 실행하기 위해서 WSDL파일에서 마우스 오른쪽 버튼을 클릭해서 Generate Web Service Code를 선택합니다. 이것은 그림 9에 보여지는 코드 생성 대화상자가 실행될 것입니다.

그림 9 WSContractFirst 코드 생성 옵션

여러분은 코드에 대한 다른 옵션을 설정하고 어떤 기능을 포함되게 할지 설정할 수 있을 뿐만 아니라 클라이언트 쪽의 프록시와 서버 쪽 스텁을 생성하기 위해서 선택할 수 있습니다. 이 코드 생성 기능을 사용하여 정말 빠르게 개발할 수 있을 것입니다. 만약 여러분이 비주얼 스튜디오를 사용하여 웹서비스를 개발하고 있다면 WSContractFirst와 선 계약 개발에 대해 확실히 살펴봐야 합니다.

WSContractFirst Thinktecture's Christian Weyer에 의해 작성되었고

www.thinktecture.com/Resources/Software/WSContractFirst/default.html

에서 다운받을 수 있습니다.

 

VSMouseBindings

여러분의 마우스는 아마도 다섯개의 버튼을 가지고 있습니다. 그런데 3개만 사용하고 있지 않습니까

VSMouseBindings power toy는 사용하기 쉬운 인터페이스를 제공하고 마우스 버튼에 비주얼스튜디오 명령을 지정할 수 있게 해줍니다.

VSMouseBindings는 다양한 명령 패턴 사용을 가능하게 해줍니다. 파일을 연다든지 선택한 텍스트를 클립보드에 복사한다든지 비주얼스튜디오에서 할 수 있는 어떤 것에 대해서도 마우스 버튼에 다양한 명령을 지정할 수 있습니다.

VSMouseBindings을 설치한 후에는 VSMouseBindings이라 불리는 대화 상자 옵션에서 새로운 영역을 확인할 수 있습니다. 인터페이스는 그림 10에서 확인할 수 있습니다.

그림 10 VSMouseBindings의 비주얼스튜디오에 대한 옵션

보시다시피 주요 버튼의 각각에 명령을 선택할 수 있습니다.

아마도 여러분은 왼쪽 오른쪽 마우스 버튼이 통상적인 기능이 유용하므로 쓸데없이 기능을 지정해 혼란을 야기하지 않는 것이 나을 겁니다.

그러나 뒤로가기 버튼과 앞으로가기 버튼은 다른 기능을 할당할 것입니다. 웹브라우져의 뒤로 와 앞으로 버튼의 기능과 유한 기능을 가지길 원한다면 비주얼 스튜디오에서 뒤로 이동과 앞으로 이동 명령을 지정할 수 있을 것입니다.

이것은 여러분이 소스 에디터에서 작업할 때와 달리 HTML 디자이너에서 작업할 때 다른 설정을 적용할 수 있다는 것을 의미합니다.

 

CopySourceAsHTML

다른 색의 텍스트를 이용해 나머지 코드와 구별되면서 코드는 점점 더 읽기 쉬워지고 있습니다. 비주얼스튜디오에서 코드를 읽을 때는 노트패드와 같은 에디터에서 읽으려고 할 때보다 일반적으로 훨씬 더 쉽습니다.

이제는 여러분의 블로그에서 읽을 기회가 있거나 적어도 코드를 읽을 기회를 더 가지게 되었습니다. 일반적으로 여러분의 블로그에 괜찮은 코드 스니핏을 포스트하려고 시도할 때 예전의 평범한 텍스트로 등록하게 됩니다. 그러면 그것은 읽기 쉽지 않습니다. CopySourceAsHTML 애드인은 이와 같은 곳에서 역할을 하기 위해 나오게 되었습니다. 이 애드인은 HTML로 코드를 복사할 수 있게 합니다. 비주얼 스튜디오를 통해 적용된 색을 유지하여 블로그나 웹사이트에 쉽게 포스팅할 수 있다는 것을 의미합니다.

CopySourceAsHTML 애드인을 설치한 후에 복사하기 원하는 코드를 오른쪽 마우스 클릭 메뉴에서 Copy Source as HTML command 메뉴를 선택해서 복사하기를 선택하십시요. 이 옵션을 선택한 후 그림 11에서 보여지는 대화상자를 볼 수 있을 것입니다.

그림 11 CopySourceAsHTML 옵션

어떤 종류의 HTML 뷰를 만들지 이 대화상자에서 선택할 수 있습니다. 줄번호를 포함 할 수 있고 탭 크기를 지정할 수 있고 그밖의 많은 다른 설정을 할 수 있습니다. OK를 클릭한 후에는 클립보드에 HTML이 저장됩니다. 예를 들어 아래와 같이 시작하는 코드 스니핏이 있다 가정하지요.

private long Add(int d, int d2)

{

    return (long) d + d2;

}

HTML로 복사 선택한 후에 줄번호를 포함하는 HTML을 선택한 후에는 코드는 그림 12에서 처럼 코드가 브라우져에 보여질것입니다.

그림 12

코드를 더 쉽게 공유하거나 우리 모두가 코드의 이점들을 이해하기 더 쉬워지게 되고 더 많은 사람들이 서로 지식을 공유하고 배우려고 애쓸 것이라는 것을 의미합니다.

CopySourceAsHTML Colin Coller에 의해 작성되었고

www.jtleigh.com/CopySourceAsHtml에서 다운 받을 수 있습니다.

 

Cache Visualizer

Visual Studio 2005는 비주얼라이져라 불리는 새로운 디버그 기능을 포함합니다. 디버깅 과정중에 사람이 읽을 수 있는 데이터 뷰를 만들 수 있죠.

Visual Studio 2005 기본적으로 많은 디버거 비주얼라이저를 포함합니다. 가장 탁월한 데이터셋 비주얼라이저는 데이터셋안에 데이터를 보고 편집하는 표형식의 인터페이스를 제공하죠. 기본 비주얼라이저가 매우 유익하지만 이 새로운 인터페이스의 가장 중요한 점 중 하나는 모든 점에서 확장 가능하다는 점입니다. 단지 약간의 작업만으로 디버깅을 더 훨씬 쉽게 만들 수 있는 여러분 자신만의 비주얼라이져를 작성할 수 있습니다.

많은 사용자들이 자신들의 복잡한 커스텀 타입에 대한 비주얼라이져를 작성할 것이지만 어떤 개발자들은 이미 프레임웍의 일부를 위해 이미 비주얼라이져를 제출하고 있습니다. 커뮤니티에서 만들어진 비주얼라이져중 하나를 살펴볼 텐데 이 것은 훨씬 디버깅을 쉽게 해줍니다.

ASP.NET 캐쉬는 나중에 이를 사용하기 위해 개체의 집합입니다. 각 개체는 그 주변에 포장된(wrapped 역주: 다른정보가 덧 데어져 지는 것을 말함) 어떤 설정정보를 가지는데 이는 얼마나 오랫동안 캐쉬가 유지될지 어느 캐쉬가 의존관계에 있는지에 대한 것입니다.

디버깅 하는 동안 캐쉬안에 무엇이 있는지 얼마나 오랫동안 유지될지 또는 어떤 것이 캐쉬를 이용하는지에 대한 정보를 얻는 것은 쉬운 방법이 없습니다.

Brett Johnson은 그 부족함을 확인하고 ASP.NET 캐쉬를 조사하기 위해 캐쉬 비주얼라이져를 작성했습니다.

이미 여러분들이 다운로드해서 비주얼라이져를 설치했다면 그림 13에서 보여지는 것처럼 디버그 창에서 캐쉬 개체 옆에 새로운 아이콘을 확인할 수 있을 것입니다.

그림 13 디버깅 할 Cache Visualizer 선택

캐쉬 비주얼라이져 대화상자를 이용하기 위해 돋보기를 클릭하면 그림 14에서 볼 수 있는 것처럼 나타나고 ASP.NET 캐쉬에 현재 저장된 모든 개체에 대한 정보를 포함하고 있습니다..

그림 14 Cache Visualizer ASP.NET 캐쉬안에 개체를 보여준다.

공개 캐쉬 엔트리아래 제가 캐쉬에 추가한 엔트리를 볼 수 있습니다. 비공개 캐쉬 엔트리 아래 엔트리는 ASP.NET에 의해 추가된 것입니다.

캐쉬 엔트리에 대한 파일 의존관계 뿐만 아니라 만료 정보를 볼 수 있다는 것을 주목해주세요.

캐쉬 비주얼라이져는 여러분들이 ASP.NET으로 작업할 때 훌륭한 도구입니다. 또한 훌륭한 커뮤니티에서 개발한 미래에서 볼 수 있는 비주얼라이져의 대표가 될만한 프로그램입니다. 여러분 Brett의 블로그인 blog.bretts.net에서 캐쉬 브라우져를 얻을 수 있습니다.

 

최종 요약

이 기사는 무료로 이용할 수 있는 애드인에 대해 소개하고 있지만 합리적인 가격에 구매할 수 있는 또다른 애드인이 있습니다.

저는 여러분이 다른 선택도 확인해보길 권장하고 어떤 경우에는 통합개발환경에 굉장히 뛰어난 기능을 추가시켜줄 수 있습니다.

이기사로 비주얼스튜디오를 위한 가장 괜찮은 무료로 이용할 수 있는 애드인에 간단한 여행이 되었을 것입니다. 이 애드인 각각은 단 작은 역할이 될 수 있지만 함께 잘 활용하면 여러분이 더 나은 코드를 작성할 수 있도록 여러분의 생산성을 향상시킬 수 있도록 도와줄 것입니다.

 

번역 끝 --;

 

이밖에 닷넷 애드인

시간이 없어 자세한 설명을 못하고 (지금 이 시간 지하철 끊기게 생겼음)

CodeSmart

음 좋기는 한데 코드 분석 기능 때문에 시스템 성능을 저하합니다. 비싸기도 하고요. 40만원 크랙도 현재는 없고 나올 가능성도 적습니다. 처음 보는 분은 화려한 기능에 입이 벌어지실 것입니다.

http://www.axtools.com/

 

MZ-Tools

http://www.mztools.com/

코드 스마트보다 화려하지는 않는 코드 스마트에 없는 편리한 기능이 있어 좋습니다. 뭘까 직접 써보고 느끼시기 바랍니다. 저도 정품 없으니 메일로 달라고 요청하지 마세요.

 

Refactor Pro

http://www.devexpress.com/Products/NET/Refactor/

그 현란한 리펙토링 기능에 놀라움을 금치 못하지만 99달러

 

CodeRush

http://www.devexpress.com/Products/NET/Coderush/

코드 달려. 그치만 느려지는 속도는 어쩌라구 249달러 좀 비싸네

 

csUnit

www.csunit.org/

또다른 공짜 TestDriven.NET의 경쟁자

 

Visual Assist X

말안해도 알 듯, 이제는 닷넷도 지원하네

 

그밖의 닷넷 관련 툴

FxCop, NUnit, C# Refactory, CVS, Subversion, ClearCase, Vault, CodeSmith, NAnt, Fianal Buider

 

번역 후기

번역하고 나서 타이핑을 오래하다 보니 관절이 상당히 아프군요 거의 8시간 이상 자료 찾고 번역하고 시간이 부족해 프로그램도 다 테스트를 못했습니다. 준비 못한 데모까지 시연하려니 걱정이 앞서는 군요. 하릴없이 노는 사람이 아닌 이상 여유 시간 내서 하기 쉽지 않군요. 다음에는 작은 것만 노려서 먼저 선점하지 않는 이상 번역에는 참여하지 못할 것 같습니다.

인터넷에서 번역된 글을 읽을 때는 참 편하게 읽었습니다만 이렇게 번역하고 보니 국어실력도 부족하다는 것을 느꼈고 번역하시는 분들에게 새삼 고마움을 느끼게 됩니다.

 

여담입니다만 여러분들은 개발을 하면서 똑 같은 반복적인 작업을 반복하고 있는 자신의 모습을 발견한 적이 없습니까? 어떤 일을 할 때마다 예전에 작업했지만 기억이 나지 않아 예전의 코드를 찾는데 오래 걸리지는 않습니까? 아니면 알고자 하는 정보를 찾는데 오래 걸리지 않습니까? 새로운 정보를 얻었을 때 체계적으로 보관 관리하고 있습니까? 정해진 원칙에 맞게 프로젝트 산출물을 표준화해 문서화하고 이를 나중에 잘 활용할 수 있게 정리하고 있습니까? 아닌 분들도 있겠지만 어느 정도 공감이 가는 부분이 있을 것입니다.

개발 툴을 사용하다 보면 이런 기능이 있으면 이런 생각이 들 때가 있습니다. 예를 들어 기존 코드를 분석해주는 도구가 있었으면 하는 생각이 듭니다. 품질 좋은 코드를 만들어내기 위해 룰을 정해주는 툴이 있었으면 좋겠습니다. 각 코드요소에 설명을 쉽게 추가하고 상호참조 관계를 얻고 싶습니다. 물론 코드요소와 관련된 또 다른 요소(DB개체, 문서)를 쉽게 참고 할 수 있었으면 좋겠습니다. 코드 안에 DB개체에 대한 정보를 키 하나로 바로 접근하고 싶고, DB개체나 쿼리를 통해 이미 설계된 업무 패턴에 따른 폼을 생성하고 사용할 컨트롤을 결정하고 레이아웃을 결정하고 관련 코드를 생산해내고 싶습니다. 물론 각 언어별 또는 개발 플랫폼별(VB, Delphi, Java, C#(ASP.NET), C++(MFC), C(SDK))로 생산하고 싶습니다. 엔터티를 통해 데이터베이스 개체(저장 프로시져, 사용자 정의 함수, 커서)를 쉽게 만들어내고 싶습니다. 언어의 코드요소를 자동완성 기능을 통해 쉽게 이동하고 싶습니다. 희망사항만은 아닐 것입니다. 이미 이런 개발을 하고 계신 분들도 있고 이를 지원해주는 툴들도 나오고 있습니다. 요즘 최근 개발환경들이 이런 추세로 가고 있지만 어느 특정 개인에 맞춰줄 수 없기 때문에 개발환경을 확장해서 자신만의 도구를 만들어 신속한 개발을 할 수 있도록 각각의 개발환경은 이에 대한 확장모델을 제공하고 있습니다. 델파이에서는 이를 활용한 유명한 GExpert가 있고 자바 개발에 많이 쓰이는 이클립스는 참 많은 플러그인들이 많습니다. Visual Basic에서도 상용인 CodeSmart나 무료인 MZ-Tools 3.0이 유명합니다. Visual C++에서는 C++에서 Visual Assist WindTab 등 의 기타 추가기능 툴이 애용됩니다. 이런 툴들은 도움이 되기도 하지만 개발환경을 느리게 하는 원인이 되기도 하기 때문에 맹목적으로 많이 설치해서 얻는 이점은 없습니다. 오히려 개발환경이 느려져 개발을 더 느리게 하기 때문에 자신에 필요한 툴을 잘 판단하여 이용하는 것이 바람직합니다

'Program > Info Etc' 카테고리의 다른 글

.Net 자동 문서화 SandCastle, GhostDoc  (2) 2008.02.12
SVN 설치/ 사용법  (0) 2008.01.22
싱글턴 패턴  (0) 2008.01.16
: