Udostępnij za pośrednictwem


Dostosowywanie i rozszerzanie języka specyficznego dla domeny

Visual Studio modelowania i wizualizacji SDK (VMSDK) zawiera kilka poziomów, na których można zdefiniować narzędzia do modelowania:

  1. Określenie języka specyficzne dla domeny (DSL), za pomocą diagramu definicji DSL.Można szybko utworzyć DSL, podającą notacji, czytelnym XML i podstawowe narzędzia, które są wymagane do generowania kodu i innych artefakty.

    Aby uzyskać więcej informacji, zobacz Porady: definiowanie języka właściwego dla domeny.

  2. Dostosowywanie DSL za pomocą bardziej zaawansowanych funkcji definicji DSL.Na przykład można wprowadzić dodatkowe łącza są wyświetlane, gdy użytkownik tworzy element.Techniki te są przeważnie osiągnięte w definicji DSL, a niektóre z nich wymagają kilka wierszy kodu programu.

  3. Rozszerzenie narzędzi modelowania danych przy użyciu kodu programu.VMSDK jest przeznaczony specjalnie do ułatwiają zintegrować rozszerzenia sieci z kodem, który jest generowany na podstawie definicji DSL.Aby uzyskać więcej informacji, zobacz Pisanie kodu pod kątem dostosowywania języka specyficznego dla domeny.

[!UWAGA]

Kiedy został zaktualizowany plik definicji DSL, nie zapomnij kliknij Transform wszystkie szablony na pasku narzędzi Solution Explorer przed odbudowa rozwiązania.

W tej sekcji

Do osiągnięcia tego efektu

Odnoszą się do tego tematu

Zezwalaj użytkownikowi na ustawianie właściwości koloru i stylu kształtu.

Kliknij prawym przyciskiem myszy klasę łącznik lub kształt, wskaż polecenie Dodać narażonychi kliknij element.

See Dostosowywanie prezentacji na diagramie.

Element modelu różnych klas wyglądać podobnie na diagramie, udostępnianie właściwości, takie jak początkowa wysokość i szerokość, kolor, etykietki narzędzi.

Użyj dziedziczenie między kształtami lub klas łącznika.Mapowania między kształtami pochodnych i klas pochodnych domeny dziedziczą szczegóły mapowania elementów nadrzędnych.

Lub mapę klas innej domeny w tej samej klasy shape.

Klasa elementu modelu jest wyświetlany przez kształty w różnych kontekstach.

Mapować więcej niż jednego kształtu klasy do klasy tej samej domeny.Podczas konstruowania roztwór wykonaj raport o błędach i dostarczyć żądanego kodu zdecydować, jakie kształtu.

Kolor kształtu lub inne funkcje, takie jak czcionki wskazuje bieżący stan.

See Aktualizowanie kształtów i łączników, aby odzwierciedlały model.

Należy utworzyć regułę, która aktualizuje właściwości narażonych.See Reguły propagujące zmiany w modelu.

Lub użyć OnAssociatedPropertyChanged(), aby zaktualizować-narażonych funkcje, takie jak strzałki łącza lub czcionki.

Ikona na kształt zmieni się, wskazując Państwo.

Ustaw widoczność mapowania dekorator w oknie Szczegóły DSL.Zlokalizuj kilka dekoratorów obrazu na tej samej pozycji.See Aktualizowanie kształtów i łączników, aby odzwierciedlały model.

Lub zastąpić ImageField.GetDisplayImage().Zobacz przykład w ImageField.

Ustawić obraz tła na dowolny kształt

Zastąpić InitializeInstanceResources(), aby dodać zakotwiczonych ImageField.See Dostosowywanie prezentacji na diagramie.

Gniazdo kształtów do dowolnej głębokości

Służy do ustawiania cyklicznej osadzanie drzewa.Definiowanie BoundsRules zawierają kształty.See Dostosowywanie prezentacji na diagramie.

Podłącz złącza na stałe punkty na krawędzi elementu.

Zdefiniuj elementy osadzone terminalu, reprezentowane przez małe porty na diagramie.Umożliwia ustalenie portów w miejscu BoundsRules.Zobacz przykładowy Diagram obwodu na wizualizacji i modelowania SDK.

Pole tekstowe jest wyświetlana wartość pochodzących od innych wartości.

Mapować dekorator tekst obliczona lub składowania niestandardowe właściwości domeny.Aby uzyskać więcej informacji, zobacz Obliczone i niestandardowe właściwości przechowywania.

Propagowanie zmian między elementami modelu lub kształtów

See Sprawdzanie poprawności w języku specyficznym dla domeny.

Propagowanie zmian zasobów, takich jak inne Visual Studio rozszerzeń poza magazynu.

See Programy obsługi zdarzeń propagujące zmiany poza modelem.

Okno właściwości wyświetla właściwości elementu powiązanego.

Służy do ustawiania właściwości przekazywania.See Dostosowywanie okna właściwości.

Kategorie właściwości

Okno właściwości jest podzielony na sekcje nazywane kategoriami.Ustaw kategorii swoje właściwości domeny.Właściwości o tej samej nazwie kategorii pojawi się w tej samej sekcji.Można również ustawić kategorii z roli w relacji.

Kontrola dostępu użytkownika do właściwości domeny

Ustaw Jest przeglądana wartość false, aby zapobiec pojawianiu się w oknie dialogowym właściwości w czasie wykonywania przez właściwości domeny.Można nadal mapować go na dekoratorów tekstu.

Jest tylko do odczytu UI uniemożliwia użytkownikom zmianę właściwości domeny.

Nie dotyczy programu dostępu do właściwości domeny.

Zmienianie nazwy, ikony i widoczności węzłów w Eksploratorze modelu modem DSL.

See Dostosowywanie Eksploratora modelu.

Włącz Kopiuj, Wytnij i Wklej

Ustaw Włączyć kopiowanie, wklejanie właściwość edytora węzeł w Eksploratorze DSL.

Skopiuj łącza odniesienia i ich cele w każdym przypadku, gdy element jest kopiowany.Na przykład kopiować komentarze dołączone do elementu.

Ustaw Propaguje kopii właściwość rolę źródła (reprezentowanego przez wiersz po jednej stronie relacji domeny na diagramie definicji DSL).

Pisanie kodu, aby zastąpić ProcessOnCopy do osiągnięcia bardziej złożonych efektów.

See Dostosowywanie zachowania dotyczącego kopiowania.

Usuwanie, skonwertowanie lub Łącz ponownie powiązanych elementów, gdy element zostanie usunięty.

Ustaw Propaguje usunąć wartość roli w relacji.Dla bardziej złożonych efektów zastąpić ShouldVisitRelationship i ShouldVisitRolePlayer metod w MyDslDeleteClosure klasy zdefiniowane wDomainModel.cs

Patrz:Dostosowywanie zachowania dotyczącego usuwania

Zachowanie kształtu układu i wyglądu na kopii i przeciągnij i upuść.

Dodaj kształty i łączniki do skopiowanych ElementGroupPrototype.Jest najbardziej wygodne metody do zastępowaniaElementOperations.CreateElementGroupPrototype()

See Dostosowywanie zachowania dotyczącego kopiowania.

Wklejanie kształtów w wybranej lokalizacji, takie jak aktualnej pozycji kursora.

Zastąpić ClipboardCommandSet.ProcessOnCopy() do korzystania z wersji konkretnej lokalizacji, z ElementOperations.Merge(). zobacz Dostosowywanie zachowania dotyczącego kopiowania.

Utwórz dodatkowe łącza podczas wklejania

Zastąpić ClipboardCommandSet.ProcessOnPasteCommand()

Włącz przeciąganie i upuszczanie z diagramu, innych DSLs lub UML diagramy i elementy systemu Windows

Patrz:Porady: dodawanie obsługi przeciągania i upuszczania

Zezwalaj na kształt lub narzędzie ma zostać przeciągnięty na kształt podrzędny, takie jak port, jak gdyby zostały przeciągnięte do obiektu nadrzędnego.

Definiowanie dyrektywy scalić Element klasy obiektu docelowego, do przekazania porzuconych obiektu nadrzędnego.See Dostosowywanie tworzenia i przesuwania elementów.

Zezwalaj na kształt lub narzędzie, aby zostać przeciągnięty na kształt i mieć dodatkowe łącza lub obiekty utworzone.Na przykład, aby umożliwić komentarz ma zostać upuszczony na element, do którego ma być połączony.

Zdefiniować dyrektywy scalić elementu w klasie domeny docelowej i zdefiniować łącza, które mają zostać wygenerowane.W przypadku złożonych można dodać niestandardowy kod.See Dostosowywanie tworzenia i przesuwania elementów.

Tworzenie grupy elementów z jednego narzędzia.Na przykład składnik z ustalonego, porty.

Zastąp metodę inicjalizacji przybornik, w ToolboxHelper.cs.Tworzenie elementu Grupa prototyp (EPZ) zawierającą elementy i ich relacji powiązania.See Dostosowywanie narzędzi i przybornika.

Zawiera kształty głównych i port w EPZ albo zdefiniować BoundsRules do położenia kształtów portu, kiedy jest EPZ.See BoundsRules — ograniczenie lokalizacji i rozmiaru kształtu.

Narzędzie jednego połączenia do utworzenia wystąpienia kilku typów relacji.

Dodaj łącze Połącz dyrektyw (LCD) do konstruktora połączenia, który jest wywoływany przez narzędzie.LCD określają typ relacji z typów dwa elementy.Aby to zależy od Państwa elementów, można dodać kod niestandardowy.See Dostosowywanie narzędzi i przybornika.

Narzędzia programu Sticky Notes — użytkownik może kliknąć dwukrotnie dowolne narzędzie do tworzenia wielu kształtów lub łączniki w odstępie czasu.

W Eksploratorze DSL, zaznacz Editor węzła.W oknie dialogowym właściwości ustaw Używa programu Sticky Notes Toolbox Items.

Definiowanie polecenia menu

Patrz:Porady: modyfikowanie standardowego polecenia menu w języku specyficznym dla domeny

Zachowaj modelu z reguły sprawdzania poprawności

Patrz:Sprawdzanie poprawności w języku specyficznym dla domeny

Generowanie kodu, pliki konfiguracyjne lub dokumentów z modemu DSL.

Generowanie kodu z języka specyficznego dla domeny

Dostosowywanie, jak modele są zapisywane do pliku.

Patrz:Dostosowywanie przechowywania plików i serializacji XML

Zapisz modeli baz danych lub innym nośniku.

Zastąpić YourLanguageDocData

Patrz:Dostosowywanie przechowywania plików i serializacji XML

Integrować kilka DSLs, aby mogły działać w ramach jednej aplikacji.

See Integrowanie modeli za pomocą Visual Studio Modelbus.

Zezwalaj DSL, być rozszerzony przez strony trzecie i kontroli rozszerzenia.

Rozszerzanie DSL za pomocą MEF

Udostępnianie klas między językami DSL za pomocą biblioteki DSL

Definiowanie zasad blokowania na potrzeby tworzenia segmentów tylko do odczytu

Zobacz też

Koncepcje

Porady: definiowanie języka właściwego dla domeny

Modelowanie SDK dla Visual Studio — języki specyficzne dla domeny

Inne zasoby

Pisanie kodu pod kątem dostosowywania języka specyficznego dla domeny