Sdílet prostřednictvím


Jak definovat domény specifické pro jazyk

Chcete-li definovat specifické domény jazyk (DSL), vytvořte Visual Studio řešení ze šablony.Klíčovou součástí řešení je definice DSL diagramu je uložen v DslDefinition.dsl.Definice DSL definuje třídy a obrazce DSL.Po úpravě a přidání těchto prvků, můžete přidat kód programu přizpůsobit DSL podrobněji.

Pokud jste nový DSL, linky, doporučujeme pracovat až DSL Tools Lab, které můžete najít na tomto webu: Visualizaton a modelování SDK

V tomto tématu

Výběrem šablony řešení

Vzorky pro definování DSL

Třídy prvek modelu

Obrazce diagramu

Odkazy a konektory

Obrazce, které obsahují seznamy: obrazce prostoru

Porty na hranici jiný tvar

Dráhami

Typy vlastností

Přizpůsobení vaší DSL

Poradce při potížích

Výběrem šablony řešení

Chcete-li definovat DSL, je třeba nainstalovat následující součásti:

Visual Studio

https://go.microsoft.com/fwlink/?LinkId=185579

Visual Studio SDK

https://go.microsoft.com/fwlink/?LinkId=185580

Visual Studio vizualizaci a modelování SDK

https://go.microsoft.com/fwlink/?LinkID=186128

Chcete-li vytvořit nový jazyk domény specifické pro vytvoření nového Visual Studio řešení pomocí šablony projektu domény specifické pro jazyk.

Vytvořit řešení DSL

  1. Vytvořit řešení s Domény specifické pro jazyk šablony, které lze nalézt v části Jiné typy/rozšiřitelnost projektů v Nový projekt dialogové okno.

    Vytvořit dialogové okno připojení DSL

    Po klepnutí na tlačítko OK, Domény specifické pro jazyk Průvodce otevře a zobrazí seznam šablon DSL řešení.

  2. Klepněte na jednotlivé šablony zobrazíte popis.Zvolte řešení, které nejvíce připomíná chcete vytvořit.

    Každá šablona DSL definuje základní pracovní DSL.Bude upravovat tento DSL přizpůsobit vlastním požadavkům.

    Klepněte na každý vzorek Další informace.

    • Vyberte Tok úkolů vytvořte DSL, který má dráhami.Dráhy jsou svislé nebo vodorovné oddíly diagramu.

    • Vyberte Součást modely vytvořte DSL, který má porty.Porty jsou malé tvary na okraji větší tvar.

    • Vyberte Diagramy třídy definovat DSL, který má obrazce prostoru.Obrazce prostoru obsahují seznamy položek.

    • Vyberte Minimální jazyk v ostatních případech nebo pokud si nejste jisti.

      [!POZNÁMKA]

      Pokud chcete vytvořit diagram třídy nebo diagram komponent, zvažte použití modelů UML.Nástroje pro modelování UML sadou diagramy, které jsou integrovány kolem jednoho modelu.Jsou rozšiřitelné a lze integrovat s vaší DSL pomocí ModelBus.Další informace naleznete v tématu Vývoj modelů pro návrh softwaru.

    • Vyberte Minimální WinForm Návrhář nebo Minimální WPF Designer vytvořte DSL, zobrazené na povrchu model Windows Forms nebo WPF.Musíte napsat kód pro definování editoru.Další informace naleznete v následujících tématech:

      Vytváření model Windows Forms systémem domény specifické pro jazyk

      Vytvoření domény specifické pro jazyk založený na WPF

  3. Zadejte příponu pro vaše DSL v na odpovídající stránku průvodce.Toto je rozšíření, které budou používat soubory obsahující instance vaše DSL.

    • Vyberte příponu souboru, která není spojena s libovolnou aplikací v počítači nebo v libovolném počítači, kam chcete nainstalovat modem DSL.Například docx a htm by přípony souboru nepřijatelné.

    • Průvodce zobrazí upozornění, pokud používá rozšíření, které jste zadali jako DSL.Zvažte použití s jinou příponou.Můžete obnovit také vymažte staré experimentální návrháři Visual Studio SDK experimentální instance.Klepněte na tlačítko Start, klepněte na tlačítko Všechny programy, Microsoft Visual Studio 2010 SDK, Nástrojea potom obnovení instance aplikace Microsoft Visual Studio 2010 experimentální.

  4. Můžete upravit nastavení na jiných stránkách nebo ponechejte výchozí hodnoty.

  5. Klepněte na tlačítko Dokončit.

    Průvodce vytvoří řešení, které obsahuje dvě nebo tři projekty a generuje kód z definice DSL.

Uživatelské rozhraní je nyní podobný následující obrázek.

Návrhář jazyka domény

Tento roztok definuje jazyk domény.Další informace naleznete v tématu Přehled nástroje systému domény specifické pro jazyk uživatelského rozhraní.

Bb126581.collapse_all(cs-cz,VS.110).gifRoztok

Šablona řešení poskytuje pracovní DSL, které můžete upravit nebo použít, protože je.

Zkušební roztok stisknutím klávesy F5 nebo CTRL + F5.Nové instance Visual Studio se otevře v režimu experimentální.

V nové instanci Visual Studio, v aplikaci Solution Explorer otevřete ukázkový soubor.Otevře jako diagram panel vlastností.

Pokud spuštění řešení, které jste vytvořili z Minimální jazyk šablony, vaše experimentální Visual Studio bude vypadat následovně:

Bb126581.DSL_min(cs-cz,VS.110).png

Experimentování s nástroji.Vytvoření prvků a jejich připojení.

Ukončete experimentální instanci Visual Studio.

[!POZNÁMKA]

Změně modem DSL nebude vidět obrazce na vzorku testování souboru.Budou však moci vytvořit nové prvky.

Bb126581.collapse_all(cs-cz,VS.110).gifÚpravou šablony DSL

Přejmenovat a uložte šablonu definice DSL některé nebo všechny domény třídy a třídy shape.Vaše nové názvy tříd by měly být platné názvy CLR, bez mezer a interpunkce.

Je užitečné zachovat tyto třídy:

  • Kořenová třída se zobrazí v levém horním diagramu DSL definice pod třídy a vztahy.Přejmenujte je na název odlišný od modem DSL.Například DSL s názvem MusicLibrary pravděpodobně kořenová třída s názvem Hudba.

  • Diagram třídy se zobrazí v pravém dolním diagramu DSL definice v Prvků diagramu sloupce.Pravděpodobně jej zobrazíte pomocí posuvníku.Je obvykle pojmenován YourDslDiagram.

  • Pokud jste Tok úkolů šablonu a chcete vytvořit diagramy s dráhami, a přejmenování domény třída Actor a ActorSwimlane tvar.

Odstraňte nebo přejmenujte další třídy vašim požadavkům.

Vzorky pro definování DSL

Doporučujeme vypracovat DSL přidáním nebo úpravou jednoho nebo dvou funkcí současně.Přidat funkce, spustit modem DSL a otestovat a potom přidejte jeden nebo dva další funkce.Vaše DSL typické funkce mohou být:

  • Třída domény, vkládání vztah, který spojuje prvek modelu obrazce potřebné k zobrazení prvků třídy v diagramu a prvek nástroj, který umožňuje uživatelům vytvářet prvky.

  • Vlastnosti domény domény třídy a sklenářské, které je zobrazit v obrazci.

  • Referenční vztah a konektor, který se zobrazí v diagramu a nástroj spojnice, který uživatelům umožňuje vytvářet odkazy.

  • Vlastní nastavení vyžaduje program kód, například omezení ověření nebo příkazu nabídky.

Následující části popisují, jak vytvořit nejvhodnější druhy DSL funkce.Existuje mnoho vzorky, které lze zkonstruovat DSL, ale jsou nejčastěji používány.

[!POZNÁMKA]

Po přidání funkce, nezapomeňte na tlačítko Transformace všechny šablony v panelu Průzkumník řešení před vytvoření a spuštění vašeho DSL.

Následující obrázek ukazuje část třídy a vztahy DSL, který slouží jako příklad v tomto tématu.

Vkládání a referenční vztahy

Následující obrázek je model příklad v tomto DSL:

Model instanci generované DSL

[!POZNÁMKA]

"Vzor" odkazuje na instanci vaše DSL, který uživatelům vytvářet a je obvykle zobrazen jako diagram.Toto téma popisuje definice DSL diagramu a diagramů modelu, které při vaší DSL používá.

Definice tříd domény

Třídy domény představují pojmy vaše DSL.Instance jsou prvky modelu.Například v MusicLibrary DSL může mít třídy domény s názvem alb a skladeb.

Chcete-li vytvořit třídu domény, můžete přetáhnout z Třídu s názvem domény nástroje k diagramu a poté přejmenovat třídu.

Další informace naleznete v tématu Vlastnosti třídy domény.

Bb126581.collapse_all(cs-cz,VS.110).gifVkládání vztah vytvořit pro každou třídu domény

Každé domény třídy kromě třídy kořenový adresář musí být cíl alespoň jednu relaci vkládání nebo musí dědit ze třídy, která je cílem vkládání vztah.

Každý prvek modelu v modelu, je uzel v jediném stromu vložení vztahů.Zdroj a cíl vkládání vztah jsou často označovány jako nadřazené a podřízené.

Výběr nadřazené třídy domény závisí na způsobu jeho prvky životnost, závisí na dalších prvků.Odstranění uzlu stromu je obvykle také odstraněny jeho podstromu.Prvek třídy, které mají nezávislé existence jsou proto vložené přímo pod kořenová třída.

Obvykle zobrazíte prvek uvnitř jiného prvku, chcete určit vztah jako vlastník.V takovém případě je nejvhodnější nadřazené třídy třída kontejneru.Výjimkou je, pokud zboží, které naleznete uvnitř kontejneru je ve skutečnosti pouze referenční odkaz na nezávislých prvků.V takovém případě odstraněním kontejneru odstraníte odkaz, ale není jeho cíl.

Ve vzorcích DSL definici popsané v tomto tématu budeme předpokládat, že prvky zobrazené uvnitř kontejneru budou odstraněny při odstranění obalu.Složitější schémata jsou možné a dosáhnout definování pravidel.

Zobrazení prvku

Třída nadřazeného (vložení)

Například v šabloně řešení DSL

Obrazce diagramu.

Dráha.

Kořenová třída DSL.

Minimální jazyk.

Tok úkolů: Třída Actor.

Obrazce v dráha.

Třída prvků, které jsou zobrazeny jako dráhami domény.

Tok úkolů: Třída úloh.

Položky v seznamu ve tvaru, kde je položka odstraněna po odstranění kontejneru.

Port na okraj obrazce.

Třída domény, která je mapována na obrazec kontejneru.

Diagram třídy: atribut třídy.

Diagram komponent: Port třídy.

Položky v seznamu, nebudou odstraněny, pokud je odstraněn kontejneru.

Kořenová třída DSL.

Seznam odkazy.

Zobrazí se přímo.

Třídy, které tvoří součást.

V příkladu hudební knihovny alb zobrazí jako obdélníky, ve kterých jsou uvedeny názvy skladeb.Proto nadřazeného alba je kořenová třída hudby a je nadřazený skladby alba.

Chcete-li vytvořit třídu domény a vkládání současně, klepněte Vztah vkládání nástroj, a potom klepněte na nadřazené třídy a klepněte na prázdnou část diagramu.

Není obvykle nezbytné upravit název vkládání vztah a jeho rolí, protože jim bude automaticky sledovat názvy tříd.

Další informace naleznete v tématu Vlastnosti domény vztahů a Vlastnosti rolí domény.

[!POZNÁMKA]

Vkládání není stejný jako dědičnosti.Děti ve vkládání vztahu funkce dědit z jejich rodičů.

Bb126581.collapse_all(cs-cz,VS.110).gifKaždá třída domény přidat vlastnosti domény

Vlastnosti domény ukládat hodnoty.Příklady jsou: jméno, titul, datum publikace.

Klepněte na tlačítko Vlastnosti domény ve třídě, stiskněte klávesu ENTER a potom zadejte název vlastnosti.Výchozí typ vlastnosti domény je řetězec.Pokud chcete změnit typ, vyberte Vlastnosti domény a nastavte typu v Vlastnosti okna.Pokud není požadovaný typ v rozevíracím seznamu, viz Přidání typů vlastností.

Nastavte vlastnost název prvku. Vyberte vlastnost domény, který lze použít k identifikaci prvků v aplikaci explorer jazyk.Například ve třídě skladby domény nelze vybrat vlastnost název domény.V Vlastnosti nastavit okno, Je název prvku na true.

Bb126581.collapse_all(cs-cz,VS.110).gifVytvoření odvozených tříd domény

Pokud chcete, aby doména třídy mít varianty, které dědí jeho vlastností a vztahů, vytvoření tříd, které z něj odvodit.Například Album odvozených tříd WMA a MP3.

Vytvořit pomocí odvozené třídy Třídy domény nástroj.

Klepněte dědičnost nástroj, klepněte na tlačítko odvozené třídy a klepněte na základní třídy.

Zvažte nastavení Dědičnost modifikátor základní třídy abstraktní.Domníváte-li potřebovat, instance třídy base, zvažte místo toho vytvořit oddělená odvozené třídy pro ně.

Odvozené třídy dědí vlastnosti a role jejich základní třídy.

Bb126581.collapse_all(cs-cz,VS.110).gifPřehledné diagramu definice DSL

Při přidání relace některé z vašich tříd se zobrazí na více než jednom místě.Chcete-li snížit počet vzhled a vytvořit diagram, který je širší, tlačítkem cílová třída vztah a klepněte na tlačítko Zde uvést stromu.Opačný efekt, klepněte pravým tlačítkem na cílové třídy vztah a klepněte na tlačítko Stromu rozdělit.Pokud nejsou tyto příkazy nabídky, vyberte volbu pouze třídy domény.

Přesun domény třídy a třídy obrazce pomocí CTRL + ŠIPKA NAHORU a CTRL + ŠIPKA DOLŮ.

Bb126581.collapse_all(cs-cz,VS.110).gifTest domény tříd

Testování nových tříd domény

  1. Klepněte na tlačítko Převést všechny šablony v aplikaci Solution Explorer generovat kód návrháře DSL na panelu nástrojů.Tento krok můžete automatizovat.Další informace naleznete v tématu Jak automatizovat transformace všechny šablony.

  2. Sestavit a spustit modem DSL. Stiskněte klávesu F5 nebo CTRL + F5 spuštění nové instance Visual Studio v experimentálních režimu.Experimentální instance Visual Studio, otevřít nebo vytvořit soubor, který má příponu vaše DSL.

  3. Otevřete Průzkumníka. Na straně diagramu je okno Průzkumníka jazyk, který je obvykle pojmenován YourLanguage Explorer.Toto okno nezobrazí, může být na kartě pod aplikaci Solution Explorer.Pokud nemůžete najít, na zobrazení nabídce přejděte na Jiné Windowsa klepněte na tlačítko YourLanguageExplorer.

    Aplikace explorer zobrazí strom modelu.

  4. Vytvořte nové prvky. Pravým tlačítkem myši na kořenový uzel nahoře a klepněte na tlačítko Přidat novýYourClass.

    Ve vašem jazyce Explorer se zobrazí nová instance třídy.

  5. Ověřte, zda každá instance jiný název při vytváření nové instance.Dojde pouze v případě, že jste Je název prvku příznak vlastnosti domény.

  6. Zkontrolujte vlastnosti domény. S instancí třídy vybrána zkontrolovat v dialogovém okně Vlastnosti.By se zobrazit vlastnosti domény, definované v této doméně třídy.

  7. Soubor uložit, zavřete jej a znovu ji otevřete.Po rozbalte uzly se mají zobrazit v Průzkumníku, všechny instance, které jste vytvořili.

Definování obrazců v diagramu

Třídy prvků, které se zobrazí v diagramu lze definovat jako obdélníky, elipsy nebo ikony.

Definovat třídy prvků, které se zobrazují jako obrazců v diagramu

  1. Definovat a zkoušek třídy domény podle Definování tříd domény**.**

    • Nadřazené třídy by měly být kořenová třída.To znamená, že by měla být vkládání vztah mezi kořenové třídy a nové domény.

    • Pokud diagramu dráhami, lze nadřazené domény třídy, která je namapována na dráha.Před pokračováním tohoto postupu, viz Definování DSL dráhami, která má.

  2. Přidání obrazce třídy prvky diagramu modelu.Přetáhněte jeden z následujících nástrojů do diagramu DSL definice:

    • Geometrie obrazce poskytuje obdélník nebo elipsu.

    • Tvar obrázku zobrazí obraz, který zadáte.

    • Prostoru pro cestující tvaru je obdélník, který obsahuje jeden nebo více seznamů položek.

    Přejmenujte obrazec Třída, která se zobrazí na pravé straně diagramu definice DSL, tvarů a spojovacích čar.

  3. Definování obrazu, pokud jste vytvořili tvar obrázku.

    1. Vytvořte soubor bitové kopie všech velikostí.Jsou podporovány formáty BMP, JPEG, GIF a EMF.

    2. V aplikaci Solution Explorer přidáte soubor do roztoku podle Dsl\Resources.

    3. Vrátit do diagramu definice DSL a vyberte nové třídy tvaru obrazu.

    4. V okně Vlastnosti klepněte obraz vlastnost.

    5. V Vybrat obraz dialogovém okně klepněte na tlačítko rozevírací nabídky pod název souborua vyberte obraz.

  4. Sklenářské text přidáte k obrazci, zobrazte vlastnosti domény.

    Chcete-li zobrazit název nebo název prvku modelu, bude pravděpodobně třeba alespoň jeden decorator text.

    Pravým tlačítkem myši na záhlaví třídy shape, přejděte na Přidata klepněte na tlačítko Text Decorator.Nastavit název decorator a nastavit vlastnosti okna jeho pozice.

  5. Každý obrazec připojit s mapou prvku diagramu třídy domény, který by měl zobrazit.

    Klepněte Mapy prvku diagramu nástroj, pak třídy domény klepněte na příkaz obrazce třídy.

  6. Mapovat vlastnosti sklenářské text.

    1. Šedá čára mezi třídy domény a obrazce představující prvek mapy diagramu vyberte.

    2. V Podrobnosti DSL okna, klepněte Mapy Decorator kartu.Pokud není Podrobnosti DSL okna, zobrazení nabídce přejděte na Jiné Windows a klepněte na tlačítko Podrobnosti DSL.Je často nezbytné zvýšit horní části tohoto okna zobrazíte jeho obsah.

    3. Vyberte název decorator.Pod vlastností zobrazení, vyberte název vlastnosti třídy domény.Tento postup opakujte pro každou decorator.

      Pokud chcete zobrazit vlastnosti související prvku, klepněte na rozevírací stromu navigator pod cestu k zobrazení vlastností.

    4. Ujistěte se, že se objeví zaškrtnutí vedle názvu každého decorator.

    Okno mapování tvar a podrobnosti DSL

  7. Vytvořit položku sady nástrojů pro vytváření prvků třídy domény.

    1. V DSL Explorer, rozbalte Editor uzel a všechny jeho poduzly.

    2. Klepněte pravým tlačítkem na uzel pod Panel karet , která má stejný název jako linka DSL, například MusicLibrary.Klepněte na tlačítko prvek nástroj Přidat.

      [!POZNÁMKA]

      Pokud klepnete pravým tlačítkem myši Nástroje uzlu, zobrazí Nástroj přidat prvek.Namísto toho klepněte na uzel nad ní.

    3. V okně Vlastnosti s vybraným nástrojem nový prvek třídy třídy domény, který jste nedávno přidali.

    4. Nastavit Titulek a Popis.

    5. Nastavit Ikonu panelu nástrojů na ikonu, která se objeví v panelu nástrojů.Můžete ji nastavit na novou ikonu nebo ikony již použit pro jiný nástroj.

      Chcete-li vytvořit novou ikonu otevřete Dsl\Resources v Aplikaci Solution Explorer.Zkopírujte a vložte jeden z existujících souborů BMP nástroj prvek.Přejmenovat vložené kopie a potom poklepejte na její úpravy.

      Vraťte DSL definice diagramu, vyberte nástroj a v okně Vlastnosti klepněte na tlačítko [...] v ikonu panelu nástrojů.V Vyberte bitmapu dialogové okno, vyberte vaše.Soubor BMP z rozevírací nabídky.

Další informace naleznete v tématu Vlastnosti geometrie obrazce a Vlastnosti obrazu obrazců.

Test obrazců

  1. Klepněte na tlačítko Převést všechny šablony v aplikaci Solution Explorer generovat kód návrháře DSL na panelu nástrojů.

  2. Sestavit a spustit modem DSL. Stiskněte klávesu F5 nebo CTRL + F5 spuštění nové instance Visual Studio v experimentálních režimu.Experimentální instance Visual Studio, otevřít nebo vytvořit soubor, který má příponu vaše DSL.

  3. Ověřte, že prvek nástroje se zobrazí na panelu nástrojů.

  4. Vytvoření obrazců přetažením z nástroje do diagramu modelu.

  5. Ověřte, zda je zobrazen každý text decorator, a že:

    1. Můžete upravovat, pokud jste Je jen pro čtení uživatelského rozhraní příznak vlastnosti domény.

    2. Při úpravě vlastností v okně Vlastnosti nebo decorator jiné zobrazení je aktualizován.

Po první zkoušce obrazce, můžete upravit některé jeho vlastnosti a přidat některé pokročilejší funkce.Další informace naleznete v tématu Přizpůsobení a rozšíření domény specifické pro jazyk.

Definování relací odkaz

Můžete definovat referenční vztah mezi jakékoli zdrojové domény třídy a jakékoli cílové domény.Referenční vztahy jsou obvykle zobrazována na diagramu jako spojnice, které jsou čáry mezi obrazci.

Například pokud hudebních alb a interpreti jsou zobrazeny jako obrazců v diagramu, můžete definovat relaci s názvem ArtistsAppearedOnAlbums, která propojí interpreti alba, na kterých jste pracovali.Viz příklad obrázek.

Model instanci generované DSL

Vztahy odkaz můžete také propojit prvků stejného typu.Například v DSL, představující family tree, vztah mezi rodiče a děti je vztah odkaz z osoby na osobu.

Bb126581.collapse_all(cs-cz,VS.110).gifDefinovat vztah odkaz

Klepněte na nástroj referenční vztah pak třídy zdrojové domény relace klepněte a klepněte na položku třídy cílové domény.Cílová třída může být stejné jako zdrojová třída.

Každý vztah má dvě role, reprezentované řádku na každou stranu vztahu.Můžete vybrat jednotlivé role a nastavte jeho vlastnosti v okně Vlastnosti.

Zvažte přejmenování role.Například ve vztahu mezi osobou a osobou, můžete změnit výchozí názvy pro rodiče a děti správce a podřízené, učitele a studenty, atd.

Upravit násobnosti každé role, pokud je to nezbytné.Pokud chcete, aby každá osoba mít maximálně jeden správce nastavte násobnost pod popisek správce do diagramu, 0..1.

Vlastnosti domény přidáte vztah. Obrázek interpret, Album vztah má vlastnost role.

NastavitUmožňuje duplicityVlastnost vztah, Pokud spojuje prvky modelu může existovat více než jeden odkaz stejné třídy.Například by mohla umožnit učitele k výuce více podléhají stejným studenta.

Obrazce map pro konektory

Další informace naleznete v tématu Vlastnosti domény vztahů a Vlastnosti rolí domény.

Bb126581.collapse_all(cs-cz,VS.110).gifDefinovat spojnice zobrazit vztah

Spojnice zobrazí řádek mezi dva obrazce v diagramu modelu.

Přetáhněte konektor nástroj do diagramu definice DSL.

Sklenářské text přidáte, chcete-li zobrazit popisky na konektoru.Nastavte jejich polohy.Chcete-li umožnit uživateli přesunutí textu decorator, nastavte jeho Je lze přesunout vlastnost.

Použití Mapy prvku diagramu propojení spojnice vztah referenční nástroj.

Mapa prvku diagramu vybrán, otevřete Podrobnosti DSL okna a otevření Mapy Decorator kartu.

Vyberte jednotlivé Decorator a vlastností zobrazení vlastnosti domény správný.

Ujistěte se, že zaškrtněte políčko vedle každé položky dekoratérů seznam.

Bb126581.collapse_all(cs-cz,VS.110).gifDefinovat Tvůrce nástroj připojení

V DSL Explorer okna, rozbalte Editor uzel a všechny jeho podřízené uzly.

Klepněte pravým tlačítkem myši na uzel, který má stejný název jako vaše DSL a klepněte na tlačítko Nástroj Přidat nové připojení.

Když je vybraný nový nástroj, v okně Vlastnosti:

  • Nastavit Titulek a Popis.

  • Klepněte na tlačítko Připojení Tvůrce a vyberte příslušné Tvůrce nové relace.

  • Nastavit Ikonu panelu nástrojů na ikonu, kterou chcete zobrazit v panelu nástrojů.Můžete ji nastavit na novou ikonu nebo ikony již použit pro jiný nástroj.

    Chcete-li vytvořit novou ikonu otevřete Dsl\Resources v Aplikaci Solution Explorer.Zkopírujte a vložte jeden z existujících souborů BMP nástroj prvek.Přejmenovat vložené kopie a potom poklepejte na její úpravy.

    Vraťte DSL definice diagramu, vyberte nástroj a v okně Vlastnosti klepněte na tlačítko [...] v ikonu panelu nástrojů.V Vyberte bitmapu dialogové okno, vyberte vaše.Soubor BMP z rozevírací nabídky.

Testovat odkaz vztah a spojnice

  1. Klepněte na tlačítko Převést všechny šablony v aplikaci Solution Explorer generovat kód návrháře DSL na panelu nástrojů.

  2. Sestavit a spustit modem DSL. Stiskněte klávesu F5 nebo CTRL + F5 spuštění nové instance Visual Studio v experimentálních režimu.Experimentální instance Visual Studio, otevřít nebo vytvořit soubor, který má příponu vaše DSL.

  3. Ověřte, že nástroj připojení se zobrazí na panelu nástrojů.

  4. Vytvoření obrazců přetažením z nástroje do diagramu modelu.

  5. Vytvoření připojení mezi obrazci.Klepněte na nástroj spojnice, klepněte na obrazec a klepněte na jiný tvar.

  6. Ověřte, že nelze vytvořit připojení mezi třídami nevhodné. Například pokud váš vztah mezi alb a interpreti, ověřte nelze propojit interpreti interpreti.

  7. Ověřte správnost násobnosti. Například ověřte, zda osoba nemůže připojit k více než jeden správce.

  8. Ověřte, zda je zobrazen každý text decorator, a že:

    1. Můžete upravovat, pokud jste Je jen pro čtení uživatelského rozhraní příznak vlastnosti domény.

    2. Při úpravě vlastností v okně Vlastnosti nebo decorator jiné zobrazení je aktualizován.

Po první zkoušce spojnice, můžete upravit některé jeho vlastnosti a přidat některé pokročilejší funkce.Další informace naleznete v tématu Přizpůsobení a rozšíření domény specifické pro jazyk.

Definování obrazce, které obsahují seznamy: obrazce prostoru

Obrazec prostoru obsahuje jeden nebo více seznamů položek.Například v hudební knihovně DSL, nelze pomocí obrazců prostoru představují hudebních alb.Každé Album je seznam skladeb.

Obrazce prostoru

V nejjednodušší způsob dosažení tohoto efektu v definici DSL definovat jednu třídu domény pro kontejner a jedné třídy domény pro každý seznam.Kontejner třídy je mapována na obrazec prostoru.

Obrazce map

Další informace naleznete v tématu Vlastnosti obrazce prostoru.

Definovat obrazce prostoru

  1. Vytvoření třídy kontejner domény.Klepněte Vztah vkládání nástroj, klepněte kořenová třída model a klepněte na prázdnou část diagramu definice DSL.Vytvoří třídu domény, například obrázek s názvem alba.

    Namísto vkládání kořenová třída také můžete vložit kontejneru ve třídě domény, která je namapována na dráha.

    Přidat vlastnost domain jako název třídy a nastavit jeho Je název prvku příznak v okně Vlastnosti.

  2. Vytvoření třídy domény položky seznamu.Klepněte Vztah vkládání nástroj, klepněte na kontejner třídy (Album) a klepněte na prázdnou část diagramu.Vytvoří třídu domény, například obrázek s názvem skladby.

    Přidat vlastnost domain, například název třídy a nastavit jeho Je název prvku příznak.

    Přidáte další vlastnosti domény.

    Přidáte jiné třídy domény pro každý seznam, který chcete zobrazit seznam položek.

  3. Vytvořte několik typů položek v seznamu, vytvoření tříd, které dědí z třídy seznamu.Vytvořte abstraktní třídu seznamu nastavením jeho Dědičnost modifikátor.

    Například pokud chcete seřadit podle autora namísto interpreta hudbou, můžete vytvořit dvěma podtřídami písně, ClassicalSong a NonClassicalSong.

  4. Vytvořit obrazec prostoru.Přetáhněte z Obrazce prostoru nástroj do diagramu definice DSL.

    Text decorator přidat a nastavit jeho název.

    Přidat prostoru pro cestující a nastavit jeho název.

  5. Chcete-li umožnit uživateli skrýt seznam složek, klepněte pravým tlačítkem na obrazec Třída prostoru, přejděte na Přidata klepněte na tlačítko Decorator rozbalit či sbalit.V okně Vlastnosti nastavte pozici decorator.

  6. Klepněte Mapy prvku diagramu nástroj, klepněte na kontejner domény třídy a klepněte na obrazec prostoru.

  7. Vyberte odkaz Mapa prvku diagramu mezi třídou domény a tvar.V Podrobnosti DSL okna:

    1. Klepněte dekoratérů kartu.Klepněte na název decorator a potom vyberte odpovídající položku v seznamu Vlastností zobrazení.Ujistěte se, že se zobrazí zaškrtnutí vedle názvu decorator.

    2. Klepněte Prostoru mapy kartu.

      Klepněte na název oddílu.

      Pod zobrazené prvky kolekce cestu, přejděte do třídy prvků seznamu (písně).Klepněte na šipku rozevíracího seznamu použít nástroj navigator.

      Pod Vlastností zobrazení, vyberte vlastnost, která má být zobrazen v seznamu.V příkladu je název.

[!POZNÁMKA]

Pomocí pole cestu na mapě Decorator a prostoru pro mapování polí můžete vytvořit složitější vztahy mezi třídami domény a obrazce prostoru.

Nástroj pro vytváření tvaru definovat

  1. Vytvořit položku sady nástrojů pro vytváření prvků třídy domény.

  2. V DSL Explorer, rozbalte Editor uzel a všechny jeho poduzly.

  3. Klepněte pravým tlačítkem na uzel pod Panel karet , která má stejný název jako linka DSL, například MusicLibrary.Klepněte na tlačítko prvek nástroj Přidat.

    [!POZNÁMKA]

    Pokud klepnete pravým tlačítkem myši Nástroje uzlu, zobrazí Nástroj přidat prvek.Namísto toho klepněte na uzel nad ní.

  4. V okně Vlastnosti s vybraným nástrojem nový prvek třídy třídy domény, který jste nedávno přidali.

  5. Nastavit Titulek a Popis.

  6. Nastavit Ikonu panelu nástrojů na ikonu, která se objeví v panelu nástrojů.Můžete ji nastavit na novou ikonu nebo ikony již použit pro jiný nástroj.

    Chcete-li vytvořit novou ikonu otevřete Dsl\Resources v Aplikaci Solution Explorer.Zkopírujte a vložte jeden nástroj existující prvek.Soubory BMP.Přejmenovat vložené kopie a potom poklepejte na její úpravy.

    Vraťte DSL definice diagramu, vyberte nástroj a v okně Vlastnosti klepněte na tlačítko [...] v ikonu panelu nástrojů.V Vyberte bitmapu dialogovém okně vyberte z rozevírací nabídky soubor BMP.

Testování obrazce prostoru

  1. Klepněte na tlačítko Převést všechny šablony v aplikaci Solution Explorer generovat kód návrháře DSL na panelu nástrojů.

  2. Sestavit a spustit modem DSL. Stiskněte klávesu F5 nebo CTRL + F5 spuštění nové instance Visual Studio v experimentálních režimu.Experimentální instance Visual Studio, otevřít nebo vytvořit soubor, který má příponu vaše DSL.

  3. Ověřte, že se zobrazí na panelu nástroje.

  4. Táhněte nástrojem do diagramu modelu.Obrazec je vytvořen.

    Ověřte, zda se zobrazí název prvku a automaticky nastavena na výchozí hodnotu.

  5. Klepněte pravým tlačítkem myši na záhlaví nového obrazce a klepněte na tlačítko Přidat svůj seznam zboží. V příkladu je příkaz přidat skladbu.

    Zkontrolujte položky se zobrazí v seznamu a jeho nový název.

  6. Klepněte na jednu z položek seznamu a potom si prohlédněte okno Vlastnosti.Zobrazí vlastnosti položky seznamu.

  7. Otevřete Průzkumníka jazyk.Ověřte uvidíte uzly s uzly položek seznamu uvnitř kontejneru.

Generované explorer DSL

Po první zkoušce obrazec prostoru, můžete upravit některé jeho vlastnosti a přidat některé pokročilejší funkce.Další informace naleznete v tématu Přizpůsobení a rozšíření domény specifické pro jazyk.

Bb126581.collapse_all(cs-cz,VS.110).gifZobrazení referenční odkaz v krabici

Element, který se zobrazí v krabici je obvykle podřízený prvek, který je reprezentován obrazce prostoru.Ale někdy chcete zobrazit prvek, který je s ním propojena s referenční vztah.

Druhý prostoru jsme například přidat k AlbumShape, zobrazující seznam umělců, propojených album.

Prostoru pro cestující v tomto případě by měl zobrazovat odkaz namísto odkazovaný element.Důvodem je, že když uživatel vybere položku v prostoru a stiskne klávesu DELETE, chcete odkaz odstranit, není daný element.

Přesto může mít název odkazované prvku se zobrazí v prostoru.

Následující postup předpokládá, že jste již vytvořili třídy domény, referenční vztah, obrazce prostoru a mapa prvek diagramu, jak je popsáno dříve v této části.

Zobrazit referenční odkaz v krabici

  1. Přidání oddílu do obrazce prostoru.Diagram DSL Definition klepněte pravým tlačítkem na obrazec Třída prostoru, přejděte na Přidata klepněte na tlačítko prostoru.

  2. Nastavit zobrazené prvky kolekce cestu přejít na odkaz namísto jeho cílový prvek.Klepněte na rozevírací nabídku a vyberte místo jeho cílové relace odkaz pomocí stromového zobrazení.V příkladu je vztah ArtistAppearedOnAlbums.

  3. Nastavit cestu k zobrazení vlastností přejít z odkazu na cílový prvek.V příkladu je interpreta.

  4. Nastavit Vlastností zobrazení do příslušné vlastnosti cílový prvek, například název.

  5. Všechny šablony transformace, sestavit a spustit modem DSL a otevřete test model.

  6. V diagramu modelu vytvořit příslušné třídy shape, nastavit jejich jména a vytvořit propojení mezi nimi.V obrazci prostoru by se zobrazí názvy propojené prvky.

  7. Vyberte odkaz nebo položky v obrazci prostoru.Zboží a propojení by měl zmizet.

Definování porty na hranici jiného obrazce

Port je tvar, který je umístěn na hranici jiného obrazce.

Porty lze také poskytují pevnou spojovacího bodu druhého obrazce, na který uživatel můžete nakreslit konektory.V takovém případě můžete provést obrazec portu průhledné.

Chcete-li vidět příklad, který používá porty, vyberte Diagram komponent šablonu při vytváření nových řešení DSL.Tento příklad ukazuje hlavní body, které je třeba zvážit při definování porty:

  • Je třída domény, která představuje kontejner porty, Component.

  • Je třída domény představující porty.V příkladu je ComponentPort.

  • Existuje vkládání vztah ze třídy kontejner domény do domény třídy portu.Další informace naleznete v tématu Definování tříd domény.

  • Pokud chcete port na téže nádobě smíšení různých typů, můžete vytvořit podtřídy třídy port domény.V příkladu InPort a OutPort dědí z ComponentPort.

  • Třída kontejner domény mohou být mapovány na jakýkoli druh obrazce.V příkladu je ComponentShape.Další informace naleznete v tématu Obrazce definující.

  • Třídy portu domény jsou mapovány k obrazcům.Můžete mapovat odvozené třídy do samostatných port obrazce tříd nebo mapovat na třída shape jeden port základní třídy.

V jiných ohledech obrazcům chovat způsobem popsaným v Obrazce definující.

Další informace naleznete v tématu Vlastnosti portu obrazců.

Definování DSL, který má dráhami

Dráhy jsou vodorovné nebo svislé oddílu diagramu.Každá dráha odpovídá prvku modelu.DSL definition vyžaduje jednu třídu domény pro prvky dráha.

Vytvořit nové řešení DSL a zvolte šablonu úloh tok řešení je nejlepší způsob, jak vytvořit DSL s dráhami.V definici DSL třída Actor je namapován dráha třídy domény.Přejmenujte tento a ostatní třídy podle projektu.

Chcete-li přidat třídu, která bude zobrazena jako obrazec uvnitř Dráha vytvořte vkládání vztahu mezi třídou dráha a nové třídy.Uživatelé budou moci přetáhněte prvky z jedné dráze, ale každý prvek bude vždy uvnitř určitého dráha.FlowElement v roztoku šablony úloh toku je podřízené třídy dráha.

Chcete-li přidat třídu, která bude zobrazena jako obrazec nezávisle dráhami, vytvořte vkládání vztah mezi kořenová třída a nové třídy.Uživatelé budou moci kdekoli těchto obrazců v diagramu, včetně přes hranice dráhami a mimo dráhami.V šabloně řešení úkolu toku komentář je podřízená kořenové třídy.

Další informace naleznete v tématu Vlastnosti dráhami.

Přidání typů vlastností

Bb126581.collapse_all(cs-cz,VS.110).gifVyčíslení domén a literály

Výčet domény je typ s několika hodnoty literálu.

Chcete-li přidat Vyčíslení domény pravým tlačítkem myši na kořenový modelu v DSL Explorer a klepněte na tlačítko Přidat nový výčet domény.Prvek bude zobrazen v DSL Explorer pod Typy domén uzel.Tento prvek nezobrazí v diagramu.

Chcete-li přidat Vyčíslení domény výčtové literály, klepněte pravým tlačítkem na výčet domén v DSL Explorer a klepněte na tlačítko Přidat nový výčet literál.

Výchozí vlastnost, která má typ výčtu lze nastavit pouze jednu hodnotu výčtu najednou.Uživatelé a programátory moci nastavit libovolnou kombinaci hodnot - "bit pole" - nastavte IsFlags vlastnost výčtu.

Bb126581.collapse_all(cs-cz,VS.110).gifExterní typy

Pokud nastavíte typ vlastnosti domény, pokud nenajdete typ chcete typu rozevíracího seznamu můžete přidat externí typ.Můžete například přidat System.Drawing.Color typu seznamu.

Přidat typ kořenové lokalitě modelu v aplikaci Explorer DSL tlačítkem a klepněte na tlačítko Přidat nový typ externí.V okně Vlastnosti nastavit název Color a obor názvů a System.Drawing.Tento typ se zobrazí v aplikaci Explorer DSL pod Typy domén.Můžete jej kdykoli nastavit typ vlastnosti domény.

Přizpůsobení modem DSL

Pomocí metody popsané v tomto tématu můžete rychle vytvořit DSL s graficky zápis čitelné formě XML a základní nástroje, které jsou požadovány pro generování kódu a další artefakty.

Rozšíření definice DSL dvěma způsoby:

  1. Modem DSL doladit pomocí více funkcí definice DSL.Můžete provést jeden konektor nástroj, který můžete vytvořit několik typů konektoru a můžete řídit pravidly odstraněním který odstraní jeden prvek také související prvky.Tyto techniky jsou většinou dosáhnout nastavením hodnot v definici DSL a některé vyžadují několik řádků kódu programu.

    Další informace naleznete v tématu Přizpůsobení a rozšíření domény specifické pro jazyk.

  2. Nástroje pro modelování rozšířit pomocí kódu program dosáhnout pokročilejší účinky.Můžete vytvořit příkazy nabídky, které můžete změnit modelu a vytvořit nástroje, které integrují dvě nebo více DSL, linky.VMSDK je specificky navržen pro snadno integrovat vaše rozšíření s kódem, který je generován z definice DSL.Další informace naleznete v tématu Zápis kódu nastavit domény specifické pro jazyk.

Bb126581.collapse_all(cs-cz,VS.110).gifZměna definice DSL

Při vytváření libovolné položky v definici DSL mnoho výchozí hodnoty jsou nastaveny automaticky.Po jejich nastavení, můžete je změnit.To zjednodušuje vývoj DSL, zároveň umožňuje pro výkonné úprav.

Například při mapování tvaru na prvek, cesty nadřazeného prvku mapování se automaticky nastaví podle vkládání vztah domény třídy.Však později změníte vkládání vztah, nadřazený prvek cestu se nezmění automaticky.

Proto by měla být vědoma, že změníte-li některé vztahy v DSL Definition, není, chyb při uložení definice nebo při transformaci všechny šablony.Většina z těchto chyb lze snadno opravit.Poklepejte na zprávu o chybě zobrazte umístění došlo k chybě.

See also Jak: změnit obor názvů domény specifické pro jazyk.

Poradce při potížích

V následující tabulce jsou uvedeny některé nejběžnější problémy, které se vyskytují při návrhu DSL, spolu s návrhy jejich řešení.Další doporučení je k dispozici na Vizualizace nástroje Extensibililty fórum.

Problém

Návrhy

Změny provedené v souboru definice DSL nemají žádný vliv.

Klepněte na tlačítko Transformace všechny šablony v panelu nástrojů nad aplikaci Solution Explorer a potom znovu vytvořit řešení.

Obrazce zobrazit název decorator namísto hodnoty vlastností.

Nastavte mapování decorator.Definice DSL diagramu klepněte na tlačítko mapa prvek diagramu, který je šedá čára mezi třídy domény a tvar.

Otevřít Podrobnosti DSL okna.Pokud nevidíte, v nabídce Zobrazit, přejděte na Jiné Windowsa klepněte na tlačítko Podrobnosti DSL.

Klepněte Mapy Decorator kartu.Vyberte název decorator.Ujistěte se, zda je zaškrtnuto políčko vedle ní.Pod vlastností zobrazení, vyberte název vlastnosti domény.

Další informace naleznete v tématu obrazců v diagramu.

V aplikaci Explorer DSL nelze přidat do kolekce.Například I pravým tlačítkem myši na nástroje, neexistuje žádný příkaz "Přidat nástroj" v nabídce.

Prvek nelze přidat do seznamu v aplikaci explorer pro mé DSL.

Pravým tlačítkem myši na položku nad uzel, který se pokoušíte.Pokud chcete přidat do seznamu, je příkaz přidat, není v seznamu uzlů, ale jeho vlastníkem.

Vytvoření domény třídy, ale v jazyce explorer nelze vytvořit instance.

Každé domény třídy s výjimkou kořenové musí být cíl vkládání vztah.

V aplikaci explorer Moje DSL jsou zobrazeny prvky pouze s jejich názvy typu.

V definici DSL vyberte vlastnost domain třídy a vlastnosti okna, nastavte v Je název prvku na hodnotu true.

Moje DSL se vždy otevře v editoru XML.

To může nastat z důvodu chyby při při čtení souboru.Však i po opravě této chyby je nutné explicitně obnovit editor bude váš návrhář DSL.

Klepněte pravým tlačítkem myši na položku Projekt, klepněte na tlačítko Otevřít S a vyberte YourLanguageDesigner (výchozí).

Panel Moje DSL nezobrazí po změnili názvy sestavení.

Zkontrolovat a aktualizovat DslPackage\GeneratedCode\Package.tt Další informace naleznete v Jak: změnit obor názvů domény specifické pro jazyk.

Panel Moje DSL nezobrazí, ale I název sestavení nebyly změněny.

Nebo zprávou se zobrazí hlášení selhání načtení rozšíření.

Experimentální instance obnovit a znovu vytvořit řešení.

  1. V systému Windows spustit v nabídce Všechny programy, rozbalte položku Visual Studio SDK, pak Nástrojea klepněte na tlačítko Obnovit na Microsoft Visual Studio experimentální instanci.

  2. Na Visual Studiosestavení nabídky, klepněte na tlačítko Roztok znovu.

Viz také

Úkoly

Vytváření model Windows Forms systémem domény specifické pro jazyk

Koncepty

Začínáme s jazyky specifické pro doménu

Vytvoření domény specifické pro jazyk založený na WPF