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:
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.
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.
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. |
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. |
|
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. |
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 |
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() |
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 |
|
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. |
|
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. |
|
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