다음을 통해 공유


도메인별 언어 사용자 지정 및 확장

Visual Studio 모델링 및 시각화 SDK (VMSDK) 모델링 도구를 정의할 수 있습니다 몇 가지 수준을 제공 합니다.

  1. 도메인 관련 언어 (DSL) DSL 정의 다이어그램을 사용 하 여 정의 합니다.도메인별 표기법, 읽을 수 있는 XML 형식, 및 코드 및 기타 항목을 생성 하는 데 필요한 기본적인 도구를 DSL을 신속 하 게 만들 수 있습니다.

    자세한 내용은 도메인별 언어 정의 방법를 참조하십시오.

  2. DSL DSL 정의의 일부 고급 기능을 사용 하 여 세밀 하 게 조정 합니다.예를 들어, 사용자가 요소를 만들 때 나타나는 추가 링크를 만들 수 있습니다.이 기술은 DSL 정의에 대부분 얻을 수 있습니다 및 일부 프로그램 코드를 몇 줄이 필요 합니다.

  3. 모델링 도구를 프로그램 코드를 사용 하 여 확장 합니다.VMSDK 구체적으로 쉽게 확장 DSL 정의에서 생성 된 코드를 통합할 수 있도록 설계 되었습니다.자세한 내용은 도메인별 언어를 사용자 지정하는 코드 작성를 참조하십시오.

[!참고]

DSL 정의 파일을 업데이트 한 경우 클릭 하 여 잊지 마십시오 모든 템플릿 변환 솔루션을 다시 작성 하기 전에 솔루션 탐색기의 도구 모음에 있습니다.

단원 내용

이 효과 얻기 위해

이 항목을 참조 하십시오.

도형 색 및 스타일 속성을 설정할 수 있습니다.

셰이프 또는 연결선 클래스를 마우스 오른쪽 단추로 클릭 하 고 추가 노출, 한 항목을 클릭 합니다.

자세한 내용은 다이어그램의 프레젠테이션 사용자 지정를 참조하십시오.

모델 요소의 다른 클래스 다이어그램에서 초기 높이 및 너비, 색, 도구 설명 등의 속성을 공유와 유사 합니다.

셰이프 또는 연결선 클래스 간에 상속 사용.파생 된 셰이프 및 파생 된 도메인 클래스 간의 매핑을 상위의 매핑 정보를 상속합니다.

또는 다른 도메인 클래스 셰이프에 동일한 클래스에 매핑할 수 있습니다.

모델 요소의 클래스 컨텍스트에서 다른 셰이프로 표시 됩니다.

두 개 이상의 도형 클래스가 동일한 도메인 클래스를에 매핑하십시오.솔루션을 빌드할 때 오류 보고를 수행 하 고 사용 하는 셰이프를 결정 하는 요청 된 코드를 제공 합니다.

셰이프 색 또는 글꼴 같은 다른 기능과 현재 상태를 표시 합니다.

자세한 내용은 모양 및 연결선을 업데이트하여 모델 반영를 참조하십시오.

노출 된 속성을 업데이트 하는 규칙을 만듭니다.자세한 내용은 규칙으로 모델 내부의 변경 내용 전파를 참조하십시오.

또는 Onassociatedpropertychanged()를 사용 하 여 연결 화살표 또는 글꼴 같은 비 노출 기능을 업데이트 합니다.

아이콘의 모양 변화 상태를 표시 합니다.

DSL 세부 정보 창에서 데코레이터 매핑 표시 여부를 설정 합니다.동일한 위치에 여러 명의 이미지 decorators를 찾습니다.모양 및 연결선을 업데이트하여 모델 반영을 참조하십시오.

또는 재정의 ImageField.GetDisplayImage().ImageField의 예제를 참조하십시오.

모든 도형에 배경 이미지를 설정 합니다.

이미지는 고정 된 필드를 추가 하는 Initializeinstanceresources()를 재정의 합니다.자세한 내용은 다이어그램의 프레젠테이션 사용자 지정를 참조하십시오.

모든 깊이 중첩 셰이프

트리를 포함 한 재귀를 설정 합니다.셰이프를 포함 하는 Boundsrules를 정의 합니다.자세한 내용은 다이어그램의 프레젠테이션 사용자 지정를 참조하십시오.

요소 경계에 고정 된 시점에서 커넥터를 연결 합니다.

작은 포트를 다이어그램으로 표시 하는 포함 된 터미널 요소를 정의 합니다.Boundsrules를 사용 하 여 포트 위치를 고정 합니다.회로 다이어그램 샘플을 참조 하십시오. 시각화 및 모델링 SDK.

텍스트 필드 다른 값에서 파생 된 값을 표시 합니다.

텍스트 데코레이터를 계산 된 열 또는 사용자 정의 저장소 도메인 속성에 매핑하십시오.자세한 내용은 계산된 저장소 속성 및 사용자 지정 저장소 속성를 참조하십시오.

모델 요소 또는 셰이프 간에 변경 내용 전파

자세한 내용은 도메인별 언어에서 유효성 검사를 참조하십시오.

다른 리소스에 대 한 변경 내용을 전파 Visual Studio 저장소 외부 확장 합니다.

자세한 내용은 이벤트 처리기로 모델 외부의 변경 내용 전파를 참조하십시오.

속성 창에는 관련된 요소의 속성을 표시합니다.

전달 속성을 설정 합니다.자세한 내용은 속성 창 사용자 지정를 참조하십시오.

속성 범주

속성 창 이라는 범주 구역으로 구분 됩니다.설정의 범주 의 도메인 속성이 있습니다.범주 이름이 같은 속성 같은 구역에 표시 됩니다.설정할 수도 있습니다 해당 범주 관계 역할을 합니다.

도메인 등록 정보 사용자 액세스 제어

설정 는 찾아볼 수 도메인 속성이 런타임에 속성 창에 나타나지 않도록 하려면 false입니다.텍스트 decorators를 여전히 매핑할 수 있습니다.

읽기 전용 UI는 사용자 도메인 속성을 변경할 수 없습니다.

프로그램 액세스 도메인 속성에는 적용 되지 않습니다.

이름, 아이콘 및 노드를 DSL 모델 탐색기에서의 표시 여부를 변경 합니다.

자세한 내용은 모델 탐색기 사용자 지정를 참조하십시오.

복사, 잘라내기 및 붙여넣기 사용

설정의 복사 붙여넣기 사용 속성에는 편집기 DSL 탐색기에서에서 노드를.

요소를 복사할 때마다 참조 링크와 그 대상을 복사 합니다.예를 들어, 항목에 첨부 된 메모를 복사 합니다.

설정에서 전파 복사 속성 (도메인 DSL 정의 다이어그램에서 관계의 한 쪽에 선으로 표시) 원본 역할을 합니다.

더 복잡 한 효과 낼 수 있는 Processoncopy를 재정의 하는 코드를 작성 합니다.

자세한 내용은 복사 동작 사용자 지정를 참조하십시오.

삭제, 전환, 또는 요소를 삭제할 때 관련 된 요소를 다시 연결 합니다.

설정의 전파 삭제 값 관계 역할을 합니다.더 복잡 한 효과를 무시 ShouldVisitRelationship 및 ShouldVisitRolePlayer 메서드에서 MyDslDeleteClosure 클래스에 정의 된DomainModel.cs

삭제 동작 사용자 지정을 참조하십시오.

셰이프 레이아웃 및 모양 복사 및 끌어서 놓기 기능을 유지 합니다.

도형과 연결선을 복사 하려면 추가 ElementGroupPrototype.재정의 하는 가장 편리한 방법이입니다.ElementOperations.CreateElementGroupPrototype()

자세한 내용은 복사 동작 사용자 지정를 참조하십시오.

현재 커서 위치와 같은 선택한 위치에 셰이프를 붙여 넣습니다.

재정의 ClipboardCommandSet.ProcessOnCopy() 위치에 특정 버전의 ElementOperations.Merge(). 를 참조 하십시오 복사 동작 사용자 지정.

붙여넣을 때 추가 링크를 작성 합니다.

Clipboardcommandset.processonpastecommand()를 재정의 합니다.

이 다이어그램에서 다른 Dsl 또는 UML 사용 끌어서 놓기 다이어그램 및 Windows 요소

방법: 끌어서 놓기 처리기 추가을 참조하십시오.

부모 끌어다 놓은 것 처럼 모양 또는 도구를 포트, 같은 자식 셰이프를 끌어서 놓을 수 있습니다.

삭제 된 개체의 부모에 전달 대상 개체 클래스에 병합 하는 요소 지시어를 정의 합니다.자세한 내용은 요소 만들기 및 이동 사용자 지정를 참조하십시오.

도형 또는 도구를 셰이프 및 있는 추가 링크 또는 생성 된 개체에 끌어 놓을 수 있습니다.예를 들어, 메모를 연결 하는 것이 위에 항목 삭제 하도록 허용 합니다.

대상 도메인 클래스에 병합 하는 요소 지시어를 정의 하 고 생성 하는 링크를 정의 합니다.복잡 한 경우에는 사용자 지정 코드를 추가할 수 있습니다.자세한 내용은 요소 만들기 및 이동 사용자 지정를 참조하십시오.

요소 그룹을 하나의 도구를 만듭니다.예를 들어, 구성 요소는 고정된 포트 집합을 사용 합니다.

Toolboxhelper.cs에서 도구 상자 초기화 메서드를 재정의 합니다.요소 그룹 프로토타입 (요소 및 관계 링크 포함 EGP)를 만듭니다.자세한 내용은 도구 및 도구 상자 사용자 지정를 참조하십시오.

EGP, 주 및 포트 셰이프를 포함 하거나 BoundsRules EGP는 인스턴스화될 때 포트 셰이프 위치를 정의 합니다.자세한 내용은 BoundsRules로 모양 위치 및 크기 제한를 참조하십시오.

하나의 연결 도구를 사용 하 여 여러 유형의 관계를 인스턴스화하는 데.

링크 연결 지시문 (LCD) 도구를 통해 호출 되는 연결 작성기를 추가 합니다.Lcd의 관계에서 두 개의 요소 유형 확인합니다.이 요소의 상태에 따라 달라 집니다를 만들려면 사용자 지정 코드를 추가할 수 있습니다.자세한 내용은 도구 및 도구 상자 사용자 지정를 참조하십시오.

스티커 도구-사용자가 연속 해 서 여러 도형 또는 연결선을 만들 수 있는 도구 두 번.

DSL 탐색기에서 선택 있는 Editor 노드.속성 창에서 설정 스티커 도구 상자 항목을 사용 하 여.

메뉴 명령을 정의 합니다.

방법: 도메인별 언어에서 표준 메뉴 명령 수정을 참조하십시오.

유효성 검사 규칙을 사용 하 여 모델 제한

도메인별 언어에서 유효성 검사을 참조하십시오.

코드, 구성 파일, 또는 문서에서 DSL을 생성 합니다.

도메인별 언어에서 코드 생성

모델이 저장 되는 방법을 사용자 지정 파일입니다.

파일 저장소 및 XML Serialization 사용자 지정을 참조하십시오.

모델에 데이터베이스 또는 기타 미디어에 저장 합니다.

재정의 YourLanguageDocData

파일 저장소 및 XML Serialization 사용자 지정을 참조하십시오.

한 응용 프로그램의 일부로 작동 되도록 여러 Dsl을 통합 합니다.

자세한 내용은 Visual Studio Modelbus를 사용하여 모델 통합를 참조하십시오.

타사에서 확장 하 여 DSL을 허용 하 고 확장을 제어 합니다.

MEF를 사용하여 DSL 확장

DSL 라이브러리를 사용하여 DSL 간에 클래스 공유

잠금 정책을 정의하여 읽기 전용 세그먼트 만들기

참고 항목

개념

도메인별 언어 정의 방법

시각화 및 모델링 SDK - 도메인별 언어

기타 리소스

도메인별 언어를 사용자 지정하는 코드 작성