해외에서 더 호평을 받던 VSGesture 를 Visual Studio 2010 버전으로 다시 만들어 공개하였습니다.

VSGesture 는 VS2010 에서 마우스로 창을 닫거나, 빌드, 디버깅 명령을 내릴 수 있는 추가 기능이랍니다.
아래의 Visual Studio Gallery 사이트에 가시면 별점 많이 주세요^^


VSGesture v2.0 for VS2010 is now available for download.
http://blog.powerumc.kr/305

http://visualstudiogallery.msdn.microsoft.com/en-us/e03c91ff-e20d-4dcc-822b-172a68c40f5b


VSGesture can execute command via mouse gestures within Visual Studio2010.
If you have any feedback, please send me an email to powerumc at gmail.com.

Visual Studio 2005, 2008 version : Here

   

   

저작자 표시 비영리 동일 조건 변경 허락
신고

이전에 MousePresentationTracker 를 예제로 만들어서 공개한 적이 있습니다. 몇 번 사용해 보면서 Visual Studio 2010 의 새로운 확장 모델인 VSIX 에서는 좀 사소한 버그가 있었습니다. 이 문제 때문에 심히 불편했습니다만, 정식 버전에서는 반드시 고쳐지길 바랄 뿐입니다. ^_^;

문제는 VSIX 의 어셈블리명(DLL) 이 Umc.Core.Tools.MousePresentationTracker.dll 처럼 '.' 이 들어가면 Visual Studio 2010 이 제대로 로드하지 못합니다. 그렇기 때문에 아래와 같이 Assembly Name 은 반드시 "파일명.확장자" 와 같은 이름을 주어야 합니다.

 

기타 확장 기능 참고 

 
저작자 표시 비영리 동일 조건 변경 허락
신고

Visual Studio Extensibility 이야기

VSX(Visual Studio Extensibility) 는 Visual Studio 의 기능을 확장할 수 있는 SDK(Software Development Kit) 를 통해 툴의 기능을 확장할 수 있는 소프트웨어 개발 키트입니다. 잘 설계된 Visual Studio 의 확장 가능한 모델은 Visual Studio 2005 부터 비약적으로 발전했습니다. 그리하여 현재 Visual Studio 2010 은 MEF(Managed Extensibility Framework) 를 기반으로 하여 개발, 패키징, 배포에 이르러 훨씬 단순화된 새로운 확장 모델인 VSIX 를 내놓게 되었습니다.

Visual Studio 2003 부터 Visual Studio SDK 를 제공해 주었지만, Visual Studio 2003 버전에서는 확장 기능을 개발할 수 있는 그리 좋은 여건은 아니었습니다. 왜냐하면 Visual Studio 2003 의 Customizing Point 는 대부분 자동화 개체 모델인 DTE 에 굉장히 의존적이었습니다.

Visual Studio 2005 는 이전의 IDE 기반을 갈아엎었다고 할 수 있을 정도로 상당히 파격적인 모습으로 다가왔습니다. 사실 이때만해도 Visual Studio 2003 에 비해 너무 느려지지 않았냐는 불만을 상당히 많이 들었습니다. 하지만 개발자들의 하드웨어 스팩이 좋아지고, Visual Studio 2005 가 제공하는 다양한 기능은 안쓸래야 안쓸수 없었답니다. 그리고 Visual Studio 2005 SDK 는 2008 버전까지 고스란히 답습하고 있었습니다.

Visual Studio 2008 은 이제 .NET 개발의 국민 IDE 로 자리매김 하였습니다. 그리고 빠르게 많은 기업에서 Visual Studio 2008 과 .NET Framework 3.5 기반으로 마이그레이션을 하고 있습니다. (적어도 제 주변 대부분이..) 그리고 이 시점부터 Software Factories 개념을 도입한 Guidance Automation 과 Blueprints 등 Visual Studio 확장 기능들이 대거 모습을 드러내기 시작했습니다. (GA 는 2005 버전부터 등장했지만 실제 활성화된 시점은 개인적으로 2008 부터가 아닐까 생각합니다)

그렇다면 Visual Studio 2010… 이제는 IDE 환경의 지존을 논한다고 생각합니다. 광고성 멘트라고 생각하시면 그냥 스킵 하셔도 좋습니다. .NET Framework 는 더없이 탄탄해지고, 딱딱했던 IDE 환경은 UX 친화적인 면을 보여주기 위해 노력한 흔적이 엿보입니다. 그리고 Oslo, Velocity, Pex, T4 Templates, 미려해진 DSL Tools, 진정한 통합을 꿈꾸는 Team System, 그리고 이번 주제였던 정말 편한 개발 환경 확장을 제공해주는 VSX...

   

.NET 의 과거와 현재, 그리고 미래
http://blog.powerumc.kr/172

[T4] - 1. Code Generation 과 GA(Guidance AUtomation)
[.NET/Visual Studio] - [T4] - 1. Code Generation 과 GA(Guidance Automation)


[Blueprints] S+S Blueprints
[Software Development/Software Factory] - [Blueprints] S+S Blueprints

   

Visual Studio Extensibility 종류

그럼 기존의 VSX 는 어떻게 IDE 도구를 확장하였을까요?

  • Visual Studio Macro
    VB 스크립트 언어를 이용하여 Visual Studio 의 자동화 개체 모델의 DTE 객체를 제어할 수 있습니다. 아무래도 스크립트 언어이다보니 개발의 편의성은 좋지만 배포와 코드 보안에 좀 떨뜨름합니다.

       

  • Visual Studio Addin
    기능적인 면에서 Visual Studio Macro 와 큰 차이는 없습니다만, 스크립트 언어가 아닌 C# 과 같은 Managed 언어로 개발이 가능합니다. 태생적으로 Visual Studio Macro 와 동일선상이기 때문에 Addin 의 독립적인 기능만으로는 확장에 한계는 있었습니다. 하지만, DTE 개체 모델을 통해 개발이 굉장히 쉽고, 배포 또한 단순하여 가장 많은 사랑을 받은 VSX 분야입니다.

       

  • Visual Studio Integration Package (이하 VSIP)
    Visual Studio 를 진정으로 통합할 수 있는 확장 방법입니다. Visual Studio 의 COM Interface 를 고스란히 사용할 수 있고, 이것을 이용하여 Visual Studio 의 모든 기능을 활용하고 확장할 수 있습니다. 실제로 Visual Studio 기능의 대부분이 VSIP 를 통해 개발이 되었고 Visual Studio 의 특징을 가장 잘 보여주는 Interface 들로 구성이 되어있습니다. 여러분이 잘 알고 있는 솔루션 탐색기, 오류 리스트, 팀 탐색기 등 셀 수 없을 정도의 많은 VSIP 들이 Visual Studio 에 포함되어 있습니다.

       

  • Visual Studio Shell Isolated
    Visual Studio Shell Isolated 는 Visual Studio 와 같은 Shell 을 제공하고 개발할 수 있는 방법입니다. VSIP 가 Visual Studio 확장 기능에 필요한 요소를 가르킨다면, Shell Isolated 는 VSIP 를 담는 그릇이 되겠군요. Visual Studio Shell Isolated 를 이용하게 되면 기존에 Visual Studio 에서 제공하는 여러 가지 인터페이스를 고스란히 사용할 수 있는 이점이 있습니다. 가량, Project Type, Intellisence 와 Microsoft 의 통합 빌드 솔루션인 MSBuild 등 다양한 기능을 곧바로 사용할 수 있다는 장점이 있는 것이죠.

       

  • Visual Studio Language Package
    Visual Studio 에서 사용할 수 있는 언어를 개발할 수 있습니다. 기본적으로 C#, VB.NET, C++ 등을 사용할 수 있지만 PHP, RoR, Native C 등의 언어를 개발할 수 있도록 하고, 이미 Visual Studio for PHP, Visual Studio for RoR 가 상용화 되었고, Visual Studio for C 는 Visual Studio SDK 예제로도 포함이 되어 있답니다.


       
  • Domain-Specific Language Package
    도메인에 특화된 언어를 개발할 수 있는 방법을 제공합니다. 일반적으로 IT 조직과 개발 조직은 서로가 사용하는 언어가 다릅니다. 즉, 경영진과 실무진과 같은 물과 기름의 관계를 이해시키기 위한 언어로써, 이미 Visual Studio 에서 광범위하게 사용되고 있는 방법입니다.

 

  • Help Integration
    MS HELP 2.0 을 이용하여 Microsoft Document Explorer 의 콘텐츠를 추가할 수 있는 방법입니다. Microsoft Document Explorer 는 일반적으로 Visual Studio 도움말로 생각하시면 됩니다. 이곳에 콘텐츠를 추가하기 위해 Setup Wizard 를 제공하고, 쉽게 Visual Studio 도움말에 자사 또는 자신의 콘텐츠를 추가할 수 있습니다.

       

어휴,, 정말 다양한 방법으로 Visual Studio 를 확장하는 방법을 제공해 주는군요. 이러한 아키텍처는 Visual Studio 2005 부터 제대로 뿌리를 내렸는데, 그 중 일부분은 Visual Studio 2010 에서 좀 더 획기적으로 변신을 합니다.

변신을 하면서 기존의 COM 기반의 인터페이스는 더 이상 WPF 기반의 어플리케이션에서 상당수 비호환적인 면이 있고, 한계점을 드러내지 않았나 생각을 해봅니다. 실제로 기존의 인터페이스는 WPF 의 Managed 환경에서 더 이상 호환할 수 없어집니다. WPF 기반의 IDE 환경에서는 새로운 인터페이스가 필요했고, MEF 를 도입함으로써 새로운 확장 가능한 모델이 필요했습니다. 바로 그것이 새로운 확장 가능한 모델인 VSIX 입니다.

VSIX 는 기존의 IDE 확장 모델과 새로운 MEF 기반의 확장 기능을 개발부터 패키징, 배포까지 통합할 수 있는 방법을 제공해 줍니다. 뿐만 아니라 기존의 확장 기능과 새로운 MEF 기반의 확장 기능을 통합하고 연동까지 할 수 있으니 이것이야 말로 누이 좋고 매부 좋은 일이 아닐까 합니다.

   

이제부터 위의 다양한 확장 기능을 개발하는 방법을 시작하여 VSIX 에 이르기 까지 한번 짚고 넘어가볼 예정입니다. 아직까지 국내에서는 이러한 희귀한 분야를 다루는 곳도 흔치 않고, 관심이 있더라도 정보가 부족하여 어느 정도 종점을 찍고 포기하는 분들도 많이 있습니다. 아마 이 연재를 통해서 Visual Studio 에 보다 관심을 갖고 널리 기술을 알리는 좋은 기회가 되지 않을까 생각을 하면서, 연재를 기대해 주세요.

저작자 표시 비영리 동일 조건 변경 허락
신고
 

 

지난 6월 10일 VSTS 2010 팀에서 진행한 MEF(Managed Extensibility Framework) 세미나에서 보여드린 데모를 조금 수정하여 Visual Studio Gallery 에 공개하였습니다.

Visual Studio 2010 이 WPF 기반의 IDE 환경으로 탈바꿈하면서 특히 코드 에디터 쪽은 WPF 의 기능을 유감없이 보여주었습니다. 특히 코드 에디터는 MEF 를 통해 대부분의 기능이 만들어졌고, 이것을 확장할 수 있는 기능을 만드는 것이 얼마나 편해졌는지 보여주기 위한 데모였습니다.

세미나에서도 설명했지만 현재 Visual Studio 2008 까지 버전에서 이러한 확장 기능을 개발하기 위해서는 굉장히 많은 단계를 거쳐야 합니다. Visual Studio 2008 까지는 COM 을 기반으로 한 IDE 이기 때문에 적용되는 기술만 나열해도 절대 단순하지 않은 과정을 거쳐야 합니다. 마우스와 키보드와 같은 장치의 이벤트를 핸들링 해야 하고, GDI+ 를 이용해 화면에 드로잉을 하고 잔상과 깜빡임을 없애기 위해 더블 버퍼링 등의 기법이 조합되어야 했습니다. 그리고 나은 사용자 인터페이스를 위해 많은 기교를 부려야만 했죠.

   

멀리서 프레젠테이션을 시청하는 분들도 커서의 위치를 잘 보이도록 화살표가 커서를 따라 다닙니다. 
 

 

Visual Studio Gallery

Umc.Core.Tools.MousePresentationTracker.v1.0

   

   

현재는 단순하게 마우스를 따라다니는 데모를 급 개조했지만, 나중에는 생각해 놓은 기능들을 추가하려고 합니다. 어쨌든 이전에 공개했던 VSGesture 와 다른 컨셉으로 프레젠테이션을 위한 도구로 점차 기능이 추가될 예정입니다.

저작자 표시 비영리 동일 조건 변경 허락
신고
Setting up the infrastructure for developing VSIX

개발을 시작하기 전 기본적인 인프라 구성을 먼저 하여 봅니다. 일단 Visual Studio 2010 을 다운로드 받아 설치해 보도록 하겠습니다.


친절하게도 이전에 슈러님께서 포스팅한 글이 있으므로 참고하면서 설치 하도록 하고, 이제 Visual Studio 2010 Beta 1 SDK를 설치 해 보도록 하겠습니다.

Installing Visual Studio 2010 SDK Beta 1


참고 링크를 따라 이동 하면 그림 1-1과 같은 Microsoft Download Center의 웹페이지가 나타날 것입니다. 거기서 Download 버튼 클릭 하면 Visual Studio 2010 SDK Beta 1을 다운로드 하실 수 있습니다. Release 날짜가 2009년 6월 12일로 다소 따끈 따끈한(?) 아이입니다.
Visual Studio 2010 SDK에는 Tool Windows, Menu Commands, Isolated Shell Projects, Editor Extension을 생성 할 수 있도록 프로젝트 템플릿을 제공하고 있으며, Editor Extension에는 Text Adorment, Colorizer, Magin 템플릿을 포함하고 있고, 빌드와 디버그 Extension은 개발자에게 VSX를 개발
                                                                           <그림 1-1>      하는데 큰 도움을 줍니다.

                                                                                                                         <그림 1-2>
그림 1-2는 초기 Visual Studio 2010 SDK Beta 1 Setup 화면입니다 Next버튼을 클릭하여 다음으로 넘어 갑니다. 그림 1-3과 같이 라이센스 동의 화면이 나타나는데 역시나 인스톨할 때 화면들이기 때문에 다음버튼만 죽어라 누르면 됩니다. 

                                                                                                                         <그림 1-3>
그리고 설치 경로를 물어보고 다음 버튼을 선택하면 설치를 시작합니다. 설치 시간은 대략 몇분이면 마무리 되므로 큰 인내심은 필요치 않습니다. 그리고 정확히 DSL 부분까지 파고 들어갈지 의문이기 때문에 만약 DSL도 다루게 된다면 그때가서 설치 부분을 포스팅 할지를 생각해 보도록 하겠습니다.

VSX를 개발하기 위한 물밑 작업은 완료 되었습니다. 참 쉽~죠잉~!
File > New > Project 를 클릭하면 그림 1-4와 같이 Extensibility 메뉴에 해당 Project Templete이 생성되어 있는 것을 확인 하실 수 있습니다.
                                                                                                                                    <그림 1-4>

다음 포스팅에서는 Editor Templete에 기능에 대하여 알아 보도록 하겠습니다.

신고

VSIX 시작하기

본격적으로 VSIX 프로그래밍에 대하여 알아 보도록 하겠습니다. 일단 VSIX의 개념 부터 짚고 넘어가는 것이 순리일듯 합니다. 일단 이미 이전에 엄준일씨에게서 포스팅 된 Visual Studio 2010 Extension Manager를 참고하는 편이 나을 것입니다.
VSIX는 뭐의 줄임말일까요? Visual Studio 2010에서 새롭게 선보인 VSIX는 언뜻 Visual Studio Extensibility와 관련 있는 듯 하나 VSIX는 인스톨러와 관련이 있으므로 Visual Studio Installer Extension의 의미일 듯 합니다.(이건 필자의 생각은 아닙니다. 머리나쁜 필자가 저런 의미심장한(?) 단어를 생각해 낼 일이 없기 때문에)

앞서서 1. What is different from before version에서 포스팅한 내용에 추가적으로 이전 버전과는 다른 Deployment Packaging을 지원하기 시작하였습니다. 이전에는 Packaging을 하기 위해서는 Setup 프로젝트를 생성하고 Regpkg.exe를 통해 Package 등록에 필요한 일련의 과정들을 설정하여 Deployment하는 복잡한 과정을 거쳐야 하였습니다.


하지만, 이제 상황은 달라졌습니다. VSIX가 나오므로 해서 패키징과 배포가 아주 아주 용이해졌을 뿐이나라 Extension Manager를 통하여 설치된 VSX 목록을 관리 할 수 있는 편리함도 함께 추가 되었습니다.

VSIX는 일종의 범용적인 Package로써 .zip의 OPC(Open Packaging Convention)가 적용된 형태라고 볼 수 있습니다. 그럼 심심한데 압축을 풀어 볼까요. 실제 압축이 풀리는지 막 궁금하지 않습니까? 필자만 궁금한가? 필자만 변태인가? 흐흐

<그림 1-1>

테스트로 프로젝트를 생성하고 빌드를 한 상태로 Debug 폴더로 들어가 보겠습니다. 그림 1-1과 같은 화면이 눈앞에 보일 것입니다. 뭐 별다른건 없어 보이는군요. Manifest파일과 .vsix 파일 말고는 우리가 자주 보던 어셈블리와 디버그 파일입니다. 그러나 .vsix의 압축을 풀어 보겠습니다.

<그림 1-2>
그림 1-2와 같이 .vsix 파일명과 같은 폴더가 생성된 것을 볼 수 있습니다. (아~ 그래픽 툴에 상당히(?) 익숙하고 디자인 감각이 있는 필자는 <~요기 라고 표현함으로써 직관성과 예술성을 감미하였습니다.)
그럼 해당 폴더로 들어가 보겠습니다.

 
<그림 1-3>

역시나 기대 했던것 처럼 .vsixmanifest파일과 해당 어셈블리가 위치되어 있습니다. 근데, [Content_Type].xml은 뭥미? 그래서 까봤습니다.(궁금한건 못참는 이 죽일놈에 개발자 습성 때문에)
<그림 1-4>

역시나 .vsix 내부의 파일 타입이 OPC API 요건 대로 아주 잘 정리되어 있는것 을 볼 수 있습니다.
그럼, .vsix 컨텐츠 목록을 정리해보겠습니다.
 [Content_Type].xml  컨텐츠의 알려진 파일에 대한 정보 수집 장소
 extension.vsixmanifest  Extension의 정보를 담고 있는 manifest정도로 이해
 하면 될듯?. 일종의 config파일과 비슷(?) 오바일까요?
 Assembly file  우리가 개발한 어셈블리 파일
 나머지 듣보잡  기타 아이콘, 이미지 기타 등등 파일들
<표 1-1>
 이상으로 .vsix를 까발리는 행위를 마치고 순수 VSIX를 개발하기 위한 일련의 과정들을 설명하기로 하겠습니다.

신고
VSX ( Visual Studio Extensibility ) 란?
Visual Studio Extensibility (이하 VSX )는 예전 부터 우리가 쓰고 있는 Visual Studio와 통합하여 개발 생산성을 높이고자 기존에 제공 되던 IDE환경에서 보다 커스트마이징한 환경을 구축하는 것을 말합니다.
이미 Third-party 솔루션을 제공하는 회사는 널리고 널렸으며, 회사 자체 Framework을 구축하고 있는 곳은, 자체적으로 개발 생산성 향상을 위하여 VSX를 제공하고 있는 것을 흔히 볼수 있을 것입니다.


 
이미 Visual Studio 2005 와 Visual Studio 2008에서 그 기능을 강력하게 지원하고 있으며, 기본적으로 Visual Studio SDK를 설치 하지 않아도 제공되는 Add-In Templete은 쉽게(?) 원하는 Application을 작성할 수 있도록 도와 주고 있습니다.

주로 VSX 종류는 3가지로 나눌 수 있습니다.

1. Visual Studio Add-In
우리가 쉽게 할 수 있는 Add-In은 그 자체만으로 강력한 기능을 제공합니다. Visual Studio의 오브젝트 모델에 접근 할 수 있고, 사용자 인터페이스를 추가하고, 여러 옵션 툴바, 메뉴 등의 IDE 요소에 접근하여 컨트롤할 수 있게 제공하고 있습니다. 주로 Add-In으로 Package보다는 간단하지만 그 기능만은 간단하지 않은 기능들을 선보이고 있으므로 충분히 이것으로도 원하는 산출물을 내놓을 수 있다고 생각하고 있는 바이지만, 이 아티클을 쓰는 이유와는 좀 다르므로 일단 패스하고 추후, 필자의 블로그를 통해 간단하게 나마 소개해보고자 합니다.(필자 엄청난 귀차니즘으로 그날이 언제쯤 올런지.... 쯧쯧)

2. Visual Studio Macro
아~ 매크로 이름만들어도 귀에 팍팍 꽂히는 소리가 들리는군요? MS Office Excel의 기능을 화려하게 만들어 주는 이놈이 Visual Studio에도 있었습니다.(실제 쓰는 사람은 몇 보지 못한 1人) Package보다 쉽고 Add-In 보다 쉽다라고 자부하는 매크로는 주로 아주 반복적인 작업에 많이 쓰입니다. 하지만 우리가 원하는 커스트마이징과 퐌타스틱한 Application에는 조금 아쉬운듯한 새로운 기능 추가 조건에는 맞지 않습니다. 하지만, 오토메이션 업무에는 뛰어난 발군의 기능(?)을 제공하고 있으니 무시할 수는 없는 노릇입니다.

3. Visual Studio Package
드디어 나왔군요 Package. 총 3가지 중 Visual Studio의 활용성과 기능 추가성에 대해서는 Package만한 놈이없을 정도로 그 기능적인 확장성을 인정 받습니다. Package는 Unmanaged 즉 Native언어로 구현 가능하며, 또한 C#, VB와 같이 CLR에서 동작할 수 있는 Managed Language로도 구현이 가능하다니, 필자와 같은 C# 개발자에게는 좋은 IDE를 제공하여 주는 셈입니다. 

이렇게 VSX를 이루고 있는 아이들을 살펴 보았습니다. 그럼, 과연 Visual Studio 2010과 이전 버전 (이하 Visual Studio 2008 또는 2005)과는 무엇이 틀린지 살펴 보도록 하겠습니다.(필자 생전 태어나서 처음 아티클 이란 것을 써서 그런지 몰라도 벌써 퇴근의 압박과 고질적인 손가락 관절염이 도지고 있네요.)

What is different?

가중 눈에 띄게 달라진점을 꼽으라면 역시나 .NET Framework 4.0 부터 지원하는 MEF일 것입니다. (필자 MEF 땜에 VSIX 테스트 프로젝트 생성하고 안돌아가 똥줄 좀 탔습니다.)
MEF에 대해서 머리에 물음표가 그려지는 개발자 여러분께서는 엄준일씨(땡초)가 고생 고생해서 써놓은 아티클을 참고 하길 바랍니다. (친절한 필자는 링크도 남겨주는 군화. http://www.vsts2010.net/13)
MEF 즉 단위 컴포넌트 별로 쪼개어 개발될 뿐만 아니라, 의존성 또한 약화 되어버리니 이건 Visual Studio에서 그토록 기다리고 기다리던 기능이 아닐까 합니다. (아무래도 이전 버전에서 패키지를 관리하기에는 좀 어려움이 있기는 했습니다.)
그리고, MEF는 필자 개인적인 생각이고 UI측면에서는 WPF로 바뀐 Editor라고 할까나... .NET Framework 3.0 부터 지원하던 WPF가 드디어 IDE에 녹여지게 되었고, 추가적인 Editor 기능 역시 WPF로 구현이 가능하게 되어 개발하면서 움직이는 화면을 보는 재미가 쏠쏠하지 않을까 합니다.(필자 UX 개발자가 아니어서 저런 기능까지 구현할까라는 의구심이 들기도 합니다. 만들어 놓으면 그림판만 WPF지 윈폼 컨트롤 못지 않는 딱딱함을 지원할것이 100%입니다.) 그리고 Package프로젝트 생성 시 이전 버전과는 달리 Editor Templete이 분리 되어 있는 것을 볼 수 있을 것입니다. 아마도 MS는 이번 2010의 Editor에 사활을 거는듯 합니다. 왜냐하면 Editor의 Architecture를 눈에 띄게 변경시켜 놓았으니 말입니다. 이번 Framework 변경사항과도 일맥 상통하게 확장성이 화두인듯 합니다.


What is Next?
  
 
다음 번부터는 Tutorial 형식으로 하나하나 따라해 볼 수 있도록 구성해볼 생각입니다. 설치에서 부터 간단한 어플리케이션 작성 그리고 개인적으로는 Azure 도 붙여 보고자 합니다. 아주 재미 있을 것 같지 않습니까? 필자 엉덩이가 들썩 들썩하는 소리가 들려 오는 군요.
참고로 국내에서는 VSX 개발에 대한 리소스가 충분치 않는 것이 사실입니다. 필자의 검색능력이 부족하여서 인지도 모르겠으나, 많은 관심을 가지고 본다면, 정말 재미있는 영역이 될것입니다.
신고

새롭게 추가된 Extension Manager

이번 Visual Studio 2010 에서는 새로운 Visual Studio 확장 가능한 기능을 제공합니다. 이전의 Visual Studio Extensibility(VSX) 는 그 개발하기 위한 환경을 갖추는 것도 힘들었지만, 아마도 좋은 확장 기능을 찾는 것이 더 힘들었었지요.

이러한 Visual Studio 확장 기능과 Industry Partner 의 제품을 소개하고 검색할 수 있는 Visual Studio Gallery 웹 사이트가 아마도 가장 신뢰할 수 있고 유일한 곳이었습니다. 지금 보이는 웹 사이트는 Visual Studio 2010 과 서비스를 통합하기 위하여 얼마 전에 개편이 되었습니다. 그리고 새롭게 확장된 기능들로 카테고리도 새롭게 정비하고 추가가 되었네요.

[그림1] Visual Studio Gallery 웹 사이트 리뉴얼

 

새로운 표준적인 배포 패키징

그리고 Visual Studio 2010 은 확장 기능을 신뢰할 수 있고, 쉽게 배포하고 사용할 수 있는 배포 방법으로 VSIX 배포 패키징을 지원하게 되었습니다. VSIX 는 .NET Framework 에서 제공하는 패키징 방법으로 System.IO.Packaging 으로 신뢰할 수 있고 범용적인 ZIP 압축 방법을 통한 패키징 방법입니다.

System.IO.Packaging 은 .NET Framework 3.0 부터 지원하는 XPS Document 를 배포하기 위해 지원이 되었고 최근에는 실버라이트의 XAP 에도 표준적인 패키징 기술이 적용된 것으로 알고 있습니다.

System.IO.Packaging 은 아래의 링크를 통해 자세한 내용을 확인하세요.

A New Standard For Packaging Your Data
http://msdn.microsoft.com/en-us/magazine/cc163372.aspx

 

Visual Studio Extension Manager

Visual Studio 2010 에서는 확장 기능을 개발하기 위해 MEF Component 를 제공합니다. 개발자가 Visual Studio 의 코드 편집기를 가장 많이 사용하고, 그래서인지 Visual Studio 2010 의 WPF 기술은 코드 편집기가 주 타겟이 되었던 것 같습니다. 그래서 코드 편집기는 WPF 를 통해 화려한 모습으로 변신하였고 내부적인 코드 편집기의 아키텍처링도 완전히 바뀐 모습입니다.

새로운 코드 편집기는 기존의 인터페이스를 모두 버리고, Wpf 접두어가 붙힌 IWpfTextView 등의 인터페이스가 대거 등장하게 되었습니다. 그리고 대부분의 확장 기능은 코드 편집기를 쉽게 확장할 수 있는 인터페이스를 제공합니다. 여기에 MEF(Managed Extensibility Framework) 를 사용하여 인터페이스가 원하는 표준적인 메타데이터(Metadata) 만 선언해 주면 쉽게 확장 기능을 개발도 할 수 있습니다.

사설은 여기까지 마치고 Visual Studio 2010 의 Extension Manager 를 구경해 볼까요?

[그림2] Tools>Extension Manager

   

[그림3] 쉬운 확장 기능 검색과 설치

Online Gallery 를 통해 Visual Studio Gallery 사이트에 등록된 Visual Studio 2010 을 지원하는 컴포넌트를 자동으로 검색하고 DownLoad 버튼을 누르면 바로 설치를 할 수 있습니다.

[그림4] Demo Dashboard 확장 기능을 설치한 모습

아직은 많은 확장 기능 컴포넌트가 등록되지 않았지만, Beta 1 버전이 출시가 된지 몇 일 안된것을 고려한다면 그리 적은 양은 아닌 것 같네요. 현재까지 제공되는 확장 기능을 가지고 노는 것만으로 쏠쏠한 재미가 될 듯 하네요...

   

신고
Visual Studio 2010 Beta 1 이 Microsoft MVP 에게 공개되는 것을 시점으로 지난 20일에는 일반인들에게도 공개가 되었습니다. 이미 구글 검색을 해보면 알겠지만 이번 Beta 1 릴리즈에 대한 소식이 미어 터질 정도로 쏟아져 나오고 있습니다.
 
Visual Studio 2010 Beta 1 SDK 도 Microsoft Download Center 에서 Shell-Integrated 만을 먼저 공개하였습니다. SDK 까지 내놓았다는 것은 이미 Visual Studio 2010 Beta 1 버전임에도 왠만한 IDE 의 아키텍트는 구현이 되었다는 증거겠죠?
 
Visual Studio 2010 SDK Beta 1
 
 
Microsoft MVP 에게는 이번 Beta 1 버전이 나오기 전에 신청자에 한해서 이와 유사한 버전이 공개가 되었었습니다. 이번 Beta 1 과는 빌드 버전이 크게 차이는 없습니다만 이번 Beta 1 에서는 내부적으로 훨씬 많은 기능 향상이 있었습니다. Parallel Debugging 도 완성이 되었고 Visual Studio Gallery 의 리뉴얼과 함께 Extension Manager 도 정상적으로 가동이 되는 듯 합니다.
 
특히나 이유 없이 뻗어버리던 거센 반항은 이번 Beta 1 에서는 겪어보지 못했습니다. (MSDN Forum 에서는 Hang 하신 분들이 몇 분 계시더군요)
 
그런데 문제는 내부적으로 크게 변화된 점은 눈에 띄지 않습니다만, VSX 쪽에서는 미미하게, 그리고 많은 폭으로 (도대체 무슨 의미? -_-) 변화가 찾아왔습니다. 이번 Visual Studio 2010 Beta 1 는 Managed Extensibility Framework 의 Plugin Architect 로 만들어졌으며 Managed Extensibility Framework 을 모르고서는 Visual Studio 2010 을 안다고도 할 수 없어졌습니다. 이미 Beta 1 의 상당한 확장 기능은 MEF 로 구현되었고 이번에 새롭게 추가된 Extension Manager 의 확장 기능도 MEF 가 그 기본이 되고 있기 때문입니다.
 
 
어쨌든 기존의 Visual Studio 2008 의 Package 들을 Visual Studio 2010 으로 마이그레이션 하면서 파악하기 힘든 오류를 턱턱 뱉어냈는데 다행히도 아래의 링크에서 그 문제 해결 방법을 가이드하고 있네요.
 
[그림1] Visual Studio 2008 Package 마이그레이션 오류
 
Visual Studio 2010 SDK Beta 1 Readme
 
 
일단 Visual Studio 2010 의 출발은 굉장히 시원시원 한 것 같습니다. 아직은 기존의 Visual Studio 2008 버전의 대부분이 Visual Studio 2010 으로 컨버팅 된 수준입니다만 2010 버전을 시점으로 IDE 도 Managed 환경으로 탈바꿈 할 준비를 하려는 모양입니다.
 
약간의 거부 반응을 일으켰던 2010 버전의 UI 도 이제는 포근해져가네요. 얼른 기존의 프로젝트를 2010 버전으로 변환해야겠네요^^
 
알아 두면 피가 되고 살이 되는 닷넷엑스퍼트 사람들의 포스트
 
기타 참고
 


저작자 표시 비영리 동일 조건 변경 허락
신고

[Blueprints] S+S Blueprints

VIsual Studio Extensibility 2009.04.12 23:13 Posted by POWERUMC
새로운 트랜드 Blueprints
 
Blueprints 는 새로운 개념의 Software Factory 입니다. 언제나 우리는 반복되는 작업과 그것을 수행하기 위한 새로운 기술, 그리고 좋은 패키지를 만들기 위한 디자인, 그리고 버그를 수정하기 위한 작업을 팩토리(Factory) 라는 개념의 트랜드된 기술입니다. 팩토리(Factory) 는 Web Service, Rich Internet Application(RIA), Service Facade 를 쉽게 제공할 수 있으며 그것은 특정 프로세스, 리소스, 가이드라인, 패턴, 템플릿, 라이브러리 등이 포함됩니다.
 
Blueprints 의 팩토리는 소프트웨어 생산 공정(Software product line-SPL) 의 형태입니다. 일관된 공통적인 프로세스를 통해 패턴을 정하여 또는 공통적인 프로세스를 정의함으로써 재사용성을 높이고 체계적인 생산 공정을 정의할 수 있습니다.
 
Software Factory 는 특정 도메인 언어(Domain-Specific Language-DSLs) 를 통해 모델 기반 개발(Model-driven Development-MDD) 를 중요시하는 마이크로소프트 플랫폼을 위한 SPLs 입니다. MDD 는 Application, Services, Layers, Component 등의 복잡한 요소를 대상으로 하는데, Software Factory 는 이러한 복잡한 요소들을 단순화할 수 있습니다.
 
[그림1] Software Factory 가 생성되고 적용되는 그림
 
 
Blueprints 가 있기 까지
 
Blueprints 는 Guidance Automation Toolkit(GAT) 가 그 기반에 존재합니다. GAT 는 Microsoft 의 Pattern & Practice 팀에서 Guidance Automation(GA) 를 쉽게 적용하기 위한 툴입니다. GAT 는 Guidance Automation Extension(GAX) 를 기반으로 Web Service, Web Client, Smart Client 등 Enterprise Library 와 통합시켰고 Guidance Cunsumer 를 통해 커스터마이징이 가능한 도구입니다.
 
하지만 GAT 는 Guidance Automation(GA) 는 한계가 있었고, 이런 GAX/GAT 를 기반으로 RSS-based Factory 와 런타임 확장 및 업데이트가 가능한 새로운 서비스를 제공하게 되었습니다. 바로 이것이 S+S Blueprints 입니다.
 
S+S 는 Software plus Services 라는 의미로 Web 2.0 과 SOA 양측 모두 적용할 수 있습니다. Web 2.0 은 나은 응답성을 요구하고 SOA 는 보안과 안정성을 요구하는데, 기업은 이런 SOA 에 Web 2.0 의 응답성과 유연함의 장점을 원합니다. 이러한 Server Software base 의 IT System 은 SaaS Base 의 Web 2.0 을 지원하기 위해 Loosely connected message-passing system 의 서비스를 추가할 것입니다. 기업은 이러한 데이터 보안, 가용성, 응답성과 유연함을 원할 것입니다.
 
그리고 DSL Tools 입니다. DSL Tools 은 Visual Studio 2005 이상, Team Architect 버전에 포함된 Domain-Specific Language 를 쉽게 구현하기 위한 도구입니다. DSL 은 저렴한 비용으로 UML Modeling 을 할 수 있으며, 기업의 이해관계가 다른 (예를 들어 기업의 경영진과 실무진??) 사람과 통용할 수 있는 좋은 도구가 됩니다.
 
[그림2] 오늘날 Factory 기술의 발전
 
 
Blueprints 다운로드 받기
 
Blueprints 는 Codeplex 에서 다운로드 할 수 있습니다. 현재 Blueprints 는 November CTP Refresh 2.1.2 버전입니다.
 
Blueprints Download
 
 
Blueprints 는 Visual Studio Extensibility(VSX) 로 제작되어 Visual Studio 에 Blueprints Manager(BPM) 를 통해 실행할 수 있습니다.
 
[그림3] Blueprints Manager(BPM) 실행 화면
 
 
오늘은 Blueprints 를 소개하는 단원에서 끝내며, 추후에 Blueprints 의 Factory 를 만들고 Publish, 그리고 프로세스의 Work flow 등 보다 근접한 S+S Blueprints 를 소개해 드리도록 하겠습니다.
 
참고 문헌
 
 
저작자 표시 비영리 동일 조건 변경 허락
신고