방법: 모델링 확장 정의 및 설치
Visual Studio Ultimate에서는 모델링 다이어그램에 대한 확장을 정의할 수 있습니다. 이런 식으로 필요에 맞게 다이어그램과 모델을 사용할 수 있습니다. 예를 들어 메뉴 명령, UML 프로필, 유효성 검사 제약 조건 및 도구 상자 항목을 정의할 수 있습니다. 단일 확장에 여러 개의 구성 요소를 정의할 수 있습니다. 이러한 확장을 다른 Visual Studio Ultimate 사용자에게 VSIX(Visual Studio Integration Extension) 형태로 배포할 수도 있습니다. VSIX는 Visual Studio에서 VSIX 프로젝트를 사용하여 만들 수 있습니다.
Visual Studio SDK가 설치되어 있어야 합니다.
요구 사항
Visual Studio 2010 Visualization & Modeling SDK. 자세한 내용은 Code Gallery의 Visual Studio Visualization and Modeling SDK를 참조하십시오.
모델링 확장 솔루션 만들기
모델링 확장을 정의하려면 다음과 같은 프로젝트를 포함하는 솔루션을 만들어야 합니다.
VSIX(Visual Studio Integration Extension) 프로젝트. 이 프로젝트는 확장의 구성 요소에 대한 설치 관리자로 사용할 파일을 생성합니다. 새 프로젝트 대화 상자에서 Visual C# 또는 Visual Basic을 확장한 다음, 확장성을 클릭합니다. 가운데 열에서 VSIX 프로젝트를 클릭합니다.
클래스 라이브러리 프로젝트 - 프로그램 코드를 포함하는 구성 요소에 필요합니다.
여러 개의 구성 요소가 포함된 확장을 만들려는 경우 단일 솔루션에 이를 개발할 수 있습니다. VSIX 프로젝트가 하나만 필요하고 구성 요소를 VSIX 정의에 콘텐츠로 추가합니다.
사용자 지정 도구 상자 항목 및 사용자 지정 UML 프로필과 같은 코드가 필요하지 않는 구성 요소는 별도의 프로젝트를 사용하지 않고 VSIX 프로젝트에 직접 추가할 수 있습니다. 프로그램 코드가 필요한 메뉴 명령과 같은 구성 요소는 별도의 프로젝트에서 더 쉽게 정의됩니다.
VSIX 프로젝트를 설정하려면
코드를 사용하여 구성 요소를 만드는 경우에는 먼저 클래스 라이브러리 프로젝트를 만드는 것이 더 쉽습니다. 그런 다음 해당 프로젝트에 코드를 추가할 것입니다.
VSIX 프로젝트를 만듭니다.
솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음, 새 프로젝트를 클릭합니다.
설치된 템플릿에서 Visual C# 또는 Visual Basic을 확장한 다음, 확장성을 클릭합니다. 가운데 열에서 VSIX 프로젝트를 클릭합니다.
VSIX 프로젝트를 솔루션의 시작 프로젝트로 설정합니다.
- 솔루션 탐색기에서 VSIX 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 클릭합니다.
source.extension.vsixmanifest를 엽니다. 파일이 매니페스트 편집기에서 열립니다.
VSIX의 이름 및 설명 필드를 설정합니다.
버전 선택을 클릭한 다음, 확장을 실행할 대상 Visual Studio 버전을 선택합니다.
구성 요소를 콘텐츠 목록에 추가합니다.
콘텐츠 추가를 클릭합니다.
코드를 사용하는 구성 요소의 경우:
콘텐츠 형식 선택에서 MEF 구성 요소를 선택합니다.
소스 선택에서 프로젝트를 클릭하고 클래스 라이브러리 프로젝트의 이름을 선택합니다.
다른 구성 요소 형식의 경우 다음 단원에서 링크를 참조하십시오.
구성 요소 개발
메뉴 명령이나 제스처 처리기와 같은 각 구성 요소에 대해 개별 처리기를 정의해야 합니다. 다음 표에서는 다양한 종류의 처리기를 요약하여 보여 줍니다.
확장 형식 |
항목 |
각 구성 요소의 일반적인 선언 방식 |
---|---|---|
메뉴 명령 |
[ClassDesignerExtension] // or other diagram types [Export(typeof(ICommandExtension))] public class MyCommand : ICommandExtension {... |
|
끌어서 놓기 또는 두 번 클릭 |
[ClassDesignerExtension] // or other diagram types [Export(typeof(IGestureExtension))] public class MyGesture : IGestureExtension {... |
|
유효성 검사 제약 조건 |
[Export(typeof( System.Action<ValidationContext, object>))] [ValidationMethod(ValidationCategories.Save | ValidationCategories.Menu)] public void ValidateSomething (ValidationContext context, IClassifier elementToValidate) {...} |
|
작업 항목 링크 이벤트 처리기 |
[Export(typeof(ILinkedWorkItemExtension))] public class MyWorkItemEventHandler : ILinkedWorkItemExtension {... |
|
UML 프로필 |
프로그램 코드로 정의할 수 없습니다. 대신 source.extension.vsixmanifest에서 다음과 같이 구성 요소 형식을 정의합니다. 구성 요소 형식 = 사용자 지정 확장 형식 = Microsoft.VisualStudio.UmlProfile |
|
도구 상자 항목 |
프로그램 코드로 정의할 수 없습니다. 대신 source.extension.vsixmanifest에서 다음과 같이 구성 요소 형식을 정의합니다. 구성 요소 형식 = 사용자 지정 확장 형식 = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems |
개발 중에 확장 실행
개발 중에 확장을 실행하려면
Visual Studio 디버그 메뉴에서 디버깅 시작을 클릭합니다.
프로젝트가 빌드되고 Visual Studio의 새 인스턴스가 실험 모드에서 시작됩니다.
- 또는 디버깅하지 않고 시작을 클릭해도 됩니다. 이렇게 하면 프로그램을 시작하는 데 소요되는 시간이 줄어듭니다.
실험 모드의 Visual Studio 인스턴스에서 모델링 프로젝트를 만들거나 열고 다이어그램을 만들거나 엽니다.
확장이 로드된 후 실행됩니다.
디버깅하지 않고 시작을 사용했지만 디버거를 사용하려는 경우에는 Visual Studio의 주 인스턴스로 돌아갑니다. 디버그 메뉴에서 프로세스에 연결을 클릭합니다. 대화 상자에서 프로그램 이름이 devenv인 실험 모드의 Visual Studio 인스턴스를 선택합니다.
Visual Studio의 주 인스턴스에서 확장을 실행하려면 확장 설치 및 제거의 단계를 따릅니다.
확장 설치 및 제거
자신이 사용하는 컴퓨터와 다른 컴퓨터에 둘 다 Visual Studio 확장을 설치할 수 있습니다.
확장을 설치하려면
컴퓨터에서 확장 프로젝트에 의해 빌드된 .vsix 파일을 찾습니다.
솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 Windows 탐색기에서 폴더 열기를 클릭합니다.
bin\*\YourProject.vsix 파일을 찾습니다.
확장을 설치할 대상 컴퓨터에 .vsix 파일을 복사합니다. 대상 컴퓨터는 현재 사용 중인 컴퓨터일 수도 있고 다른 컴퓨터일 수도 있습니다.
- 대상 컴퓨터에는 source.extension.vsixmanifest에 지정한 Visual Studio 버전 중 하나가 있어야 합니다.
대상 컴퓨터에서 .vsix 파일을 두 번 클릭합니다.
Visual Studio Extension 설치 관리자가 열리고 확장이 설치됩니다.
Visual Studio를 시작하거나 다시 시작합니다.
확장을 제거하려면
도구 메뉴에서 확장 관리자를 클릭합니다.
설치된 확장을 확장합니다.
확장을 선택하고 제거를 클릭합니다.
드물기는 하지만 잘못된 확장은 로드되지 않으며 오류 창에 보고서가 만들어지지만 확장 관리자에는 나타나지 않습니다. 이 경우 다음 위치에서 파일을 삭제하여 확장을 제거할 수 있습니다. 여기서 %LocalAppData%는 대개 DriveName:\Users\UserName\AppData\Local입니다.
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions
참고 항목
개념
방법: UML 모델에 대한 유효성 검사 제약 조건 정의