Jak se definuje jazyk specifický pro doménu
Chcete-li definovat specifické pro doménu jazyk (DSL), vytvořte Visual Studio řešení pomocí šablony.Klíčovou součástí řešení je definice DSL diagramu, který je uložen v DslDefinition.dsl.Definice DSL definuje třídy a tvarů DSL.Po úpravě a přidáte-li tyto prvky, můžete přidat kód programu Chcete-li přizpůsobit DSL podrobněji.
Pokud jste začátečník DSL, linky, doporučujeme, abyste práci prostřednictvím DSL Tools Lab, které můžete najít na tomto webu: Visualizaton a modelování SDK
V tomto tématu
Výběr šablony řešení
Postupy pro definování DSL
Třídy prvku modelu
Tvary na diagramu
Odkazy a konektory
Tvary, které obsahují seznamy: prostoru pro cestující tvary
Porty na hranici jiného obrazce
Plavecké dráhy
Typy vlastností
Přizpůsobení vaší DSL
Poradce při potížích
Výběr šablony řešení
Chcete-li definovat DSL, je třeba nainstalovat následující součásti:
Visual Studio |
|
Visual Studio SDK |
|
Visual Studio vizualizaci a modelování sady SDK |
Chcete-li vytvořit nový jazyk specifické pro doménu, vytvořte novou Visual Studio řešení pomocí šablony projektu domény konkrétní jazyk.
Chcete-li vytvořit řešení DSL
Vytvořit řešení s specifické pro doménu jazyk šablony, které lze nalézt v jiné typy / – rozšiřitelnost projektů v nový projekt dialogového okna.
Když kliknete na tlačítko OK, specifické pro doménu jazyk průvodce otevře a zobrazí seznam šablony DSL řešení.
Klikněte na každou šablonu zobrazíte popis.Zvolte řešení, které nejvíce podobá chcete vytvořit.
Každý DSL šablona určuje základní pracovní DSL.Upravíte tento DSL přizpůsobit vlastním požadavkům.
Klikněte na každou z ukázek Další informace.
Vyberte tok úloha k vytvoření DSL, který má plavecké dráhy.Plavecké dráhy jsou svislé nebo vodorovné oddíly diagramu.
Vyberte modely součástí k vytvoření DSL, který má porty.Jsou to porty Malé tvary na okraji větší tvar.
Vyberte diagramy tříd k definování DSL, které obsahuje prostoru tvary.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 modelování UML poskytují sadu 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 Designer nebo minimální WPF Designer k vytvoření DSL, který se zobrazí na ploše Windows Forms nebo WPF.Bude nutné k zápisu kód pro definování editoru.Další informace naleznete v následujících tématech:
Vytvoření doménově specifického jazyka založeného na Windows Forms
Zadejte příponu názvu souboru 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.
Zvolte příponu názvu souboru, který není spojen s jakoukoli aplikací ve vašem počítači nebo v libovolném počítači, kam chcete nainstalovat DSL.Můžete například docx a htm by být nepřijatelné soubor přípony názvu.
Průvodce zobrazí upozornění, pokud rozšíření, které jste zadali, je již používán jako linku DSL.Zvažte použití příponu názvu jiný soubor.Visual Studio SDK pokusné instance chcete-li vymazat staré pokusné návrháři, můžete obnovit.Klikněte na tlačítko Start, klikněte na tlačítko všechny programy, Microsoft Visual Studio 2010 SDK, nástrojea potom resetovat Microsoft Visual Studio 2010 pokusné instance.
Můžete upravit nastavení na jiné stránky, nebo nechat výchozí hodnoty.
Klikně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í nyní vypadat například takto: na následujícím obrázku.
Toto řešení definuje domény konkrétní jazyk.Další informace naleznete v tématu Přehled uživatelského rozhraní Jazykových nástrojů specifických pro doménu.
Test řešení
Řešení šablony obsahuje pracovní DSL, které lze upravit nebo použít, protože je.
Chcete-li otestovat řešení, stiskněte klávesu F5 nebo CTRL + F5.Novou instanci třídy Visual Studio se otevře v pokusné režimu.
V nové instanci Visual Studio, v Průzkumníku řešení otevřete soubor ukázky.Otevře se jako diagramu sadu nástrojů.
Pokud spuštění řešení, které jste vytvořili z minimální jazyk šablony, vaše pokusné Visual Studio bude vypadat podobně jako v následujícím příkladu:
Vyzkoušet nástroje.Vytvářet prvky a jejich připojení.
Ukončete pokusné instanci Visual Studio.
[!POZNÁMKA]
Pokud jste změnili DSL, bude již možné zobrazit tvary se vzorkem test souboru.Budete však moci vytvářet nové elementy.
Úprava šablony DSL
Přejmenovat a udržovat v šabloně DSL definice některé nebo všechny domény tříd a tříd tvaru.Vaše nové třídy názvy musí být platný název modulu CLR, bez mezer a interpunkce.
Je obzvláště užitečná pro zachování tyto třídy:
Kořenová třída se zobrazí v levém horním diagramu DSL definice pod tříd a vztahů.Přejmenujte ji na název, která se liší od DSL.Můžete například DSL, s názvem MusicLibrary pravděpodobně kořenová třída s názvem hudbu.
Třída diagramu se zobrazí v pravém dolním diagramu DSL definice v elementy diagramu sloupce.Bude pravděpodobně nutné posunout doprava zobrazit sestavu.Obvykle se nazývá YourDsldiagramu.
Pokud jste použili tok úloha šablonu a chcete-li vytvářet diagramy s plavecké dráhy, udržovat a přejmenovat třída Actor domény a ActorSwimlane tvar.
Odstranit ani přejmenovat jiné třídy přizpůsobit vašim požadavkům.
Postupy pro definování DSL
Doporučujeme, abyste vyvíjíte DSL přidáním nebo úpravě jedno nebo dvě funkce najednou.Přidat funkce, spustit DSL a testování a pak přidejte jedno nebo dvě další funkce.Typické funkce systému vašeho DSL může být:
Třídu domény vnoření vztah, který připojí elementu k modelu, tvar potřebné k zobrazení elementů této třídy na diagramu a nástroj elementu, který umožňuje uživateli vytvořit prvky.
Vlastnosti domény třídy domény a dekoratérů, které se zobrazují je ve tvaru.
Referenční vztah a konektor, který se zobrazuje v diagramu a nástroj konektor, který umožňuje uživateli vytvoření odkazů.
Vlastní nastavení, který vyžaduje program kódu, například ověření omezení nebo příkaz nabídky.
Níže uvedené části popisují, jak vytvořit nejužitečnějších druhy DSL funkce.Existuje mnoho vzory s nimiž lze sestavit DSL, ale ty se používají nejčastěji.
[!POZNÁMKA]
Po přidání funkce, nezapomeňte znovu klikněte na tlačítko transformace všechny šablony na panelu nástrojů Průzkumníka řešení před vytváření a spouštění vaše DSL.
Následující obrázek ukazuje tříd a vztahů část DSL, který se používá jako příklad v tomto tématu.
Další údaj je model příklad z této DSL:
[!POZNÁMKA]
"Model" odkazuje na instanci vaše DSL, který uživatelům vytvářet a obvykle se zobrazí jako diagram.Toto téma popisuje diagramu DSL definice a diagramy modelu, které se zobrazí, je-li vaše DSL.
Definování tříd domény
Třídy domény představují koncepty vaše DSL.Instance jsou model elementy.Například v MusicLibrary DSL může mít třídy domény s názvem Album a skladbu.
Chcete-li vytvořit třídu domény, můžete přetáhnout z s názvem domény třídy nástroje k diagramu a potom přejmenovat třídu.
Další informace naleznete v tématu Vlastnosti tříd domény.
Vytvořit vztah vnoření pro každou třídu domény
Každé třídy domény s výjimkou kořenová třída musí být v cíli vnoření alespoň jednu relaci, nebo musí dědit ze třídy, která je cílem vnoření relace.
Každý prvek modelu v modelu, je uzel do jediného stromu vnoření relace.Zdrojová a cílová vnoření vztahu se často nazývají nadřazenými a podřízenými.
Výběr nadřazeného pro třídu domény, závisí na požadovaný způsob životnost jejích elementů závisí na další prvky.Pokud uzel stromu odstraněn, jeho podstromu je obvykle také odstraněny.Třídy elementu, které mají nezávislé existence jsou proto vloženy přímo pod kořenová třída.
Obvykle Pokud chcete zobrazovat element do jiného elementu, chcete určit relaci vlastníka.V takovém případě nejvhodnější nadřazené třídy je třída kontejneru.Výjimka je v případě zboží, které se zobrazí uvnitř kontejneru je ve skutečnosti stejně kliknutí na odkaz na element nezávislé.V takovém případě odstraňování kontejneru odstraní odkaz, ale nikoli jeho cíl.
V části vzorky DSL definice popisovaných v tomto tématu budeme předpokládat, že prvky zobrazené v rámci kontejner bude odstraněn, když je odstranit kontejner.Složitější schémata jsou možné a lze dosáhnout definování pravidel.
Jak se zobrazí element |
Třída nadřazeného (vkládání) |
Příklad v šabloně řešení DSL |
---|---|---|
Tvar na diagramu. Plavecká dráha. |
Kořenová třída DSL. |
Minimální jazyk. Tok úkolů: Třída Actor. |
Obrazce v plavecké dráhy. |
Třída domény elementů, které jsou zobrazeny jako plavecké dráhy. |
Tok úkolů: Třída úloh. |
Položka v seznamu ve tvaru, kde je položka odstraněna, pokud dojde k odstranění kontejneru. Port na okraj obrazce. |
Třída domény, která je mapován na obrazec kontejneru. |
Diagram třídy: atribut třídy. Diagram komponent: Port třídy. |
Položka v seznamu, nebudou odstraněny, pokud dojde k odstranění kontejneru. |
Kořenová třída DSL. Zobrazí se seznam referenčních odkazů. |
|
Zobrazí není přímo. |
Třída, která je součástí. |
V příkladu Knihovna hudby alba jsou zobrazeny jako obdélníky, ve kterých jsou uvedeny názvy skladeb.Proto nadřazeného člena alba je kořenová třída hudbu a nadřazeného člena skladbu je alba.
Chcete-li vytvořit třídu domény a vkládání najednou, klikněte na tlačítko vnoření vztah nástroje, pak klikněte na tlačítko nadřazené třídy a potom klikněte na prázdnou část diagramu.
Není obvykle nutné upravit název vnoření relace a jeho rolí, protože bude automaticky sledovat název třídy.
Další informace naleznete v tématu Vlastnosti vztahů domény a Vlastnosti rolí domény.
[!POZNÁMKA]
Vkládání není stejný jako dědičnosti.Podřízené objekty v relaci vnoření nedědí funkce z jejich nadřazené položky.
Přidat vlastnosti domény pro každou třídu domény
Vlastnosti domény ukládat hodnoty.Příklady: jméno, titul, datum publikování.
Klikně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 vlastnost domény a nastavte typu v vlastnosti okna.Pokud požadovaný typ není v rozevíracím seznamu, naleznete v části přidání typy vlastností.
**Nastavte vlastnost aplikace název elementu.**Vyberte vlastnost domény, který lze použít k určení elementů v Průzkumníku jazyk.Můžete například ve třídě domény skladbu, můžete vybrat vlastnost název domény.V vlastnosti okně, nastavte název elementu, který je k true.
Vytvořit domény odvozené třídy
Pokud chcete mít varianty, které dědí jeho vlastností a vztahů třídu domény, vytvořte třídy, které jsou odvozeny z něj.Například může mít alba odvozené třídy WMA a MP3.
Vytvoření pomocí odvozené třídy domény třídy nástroj.
Klikněte na tlačítko dědičnosti nástroj, klikněte na tlačítko odvozené třídy a klikněte na základní třídy.
Zvažte nastavení dědičnosti modifikátor základní třídy pro abstraktní.Pokud se domníváte, že můžete potřebovat instance základní třídy, zvažte místo toho vytvořit oddělená odvozené třídy pro ně.
Odvozené třídy dědí vlastnosti a rolí z jeho základních tříd.
Přehledné diagramu definice DSL
Když přidáte relací, některé vaše třídy se zobrazí v více než jednom místě.Omezí počet vzhled a širší diagramu, klikněte pravým tlačítkem cílová třída v relaci a potom klikněte na tlačítko uveďte zde stromu.Opačné efekt, klikněte pravým tlačítkem na cílovou třídu relace a klikněte na rozdělení stromu.Pokud tyto příkazy nabídky nevidíte, ujistěte se, zda je vybrána pouze třídu domény.
Pomocí kombinace kláves CTRL + ŠIPKA NAHORU a CTRL + ŠIPKA DOLŮ domény tříd a tvar.
Test třídy domény
K otestování nové třídy domény
Klikněte na tlačítko transformace všechny šablony na panelu nástrojů Průzkumníka řešení pro generování kódu návrháře DSL.Tento krok můžete automatizovat.Další informace naleznete v tématu Jak automatizovat transformace všechny šablony.
**Vytvoření a spuštění DSL.**Stisknutím klávesy F5 nebo CTRL + F5 spustit novou instanci třídy Visual Studio v pokusné režimu.V pokusné instanci Visual Studio, otevřete nebo vytvořte soubor, který má příponu názvu souboru z vašeho DSL.
Otevřete Průzkumníka.Na straně diagramu najdete okno Průzkumníka jazyk, který je obvykle s názvem YourLanguage Explorer.Pokud se toto okno nezobrazí, může to být na kartě pod Průzkumníka řešení.If you cannot find it, on the View menu, point to Other Windows, and then click YourLanguageExplorer.
Aplikace explorer uvede strom modelu.
Vytvořte nové prvky. Right-click the root node at the top, and then click Add NewYourClass.
Novou instanci třídy vašich se zobrazí ve vašem jazyce Explorer.
Ověřte, zda každá instance má jiný název při vytváření nových instancí.Toto se vztahuje pouze v případě, že jste nastavili název elementu, který je příznak u vlastnosti domény.
Zkontrolujte vlastnosti domény. S instancí třídy vybrána kontrolovat v okně Vlastnosti.Měl by se zobrazit vlastnosti domény, které jste na této třídy domény definovali.
Uložte soubor, zavřete ji a znovu ji spusťte.Všechny instance, kterou jste vytvořili by měla být viditelné v Průzkumníku po rozbalení uzlů.
Definování tvary v diagramu
Diagram můžete definovat třídy prvků, které se zobrazí jako obdélníky, elipsy nebo ikony.
Chcete-li definovat třídu prvků, které se zobrazí jako tvary na diagramu
Definovat a testovat třídu domény, jak je popsáno v definování třídy domény**.**
Kořenová třída by měla být nadřazené třídy.To znamená musí být vnoření vztah mezi kořenová třída a novou třídu domény.
Má-li diagramu plavecké dráhy, může být nadřazeného domény třídu, která je mapován na do plavecké dráhy.Před pokračováním v tomto postupu, naleznete v části definování DSL, který má plavecké dráhy.
Přidat tvar třídu k reprezentování elementy na diagramu modelu.Přetáhněte z jednoho z následujících nástrojů do diagramu DSL definice:
Geometrické obrazce poskytuje obdélník nebo elipsu.
Obrázek tvaru zobrazí obrázek, který zadáte.
Prostoru pro cestující tvar je obdélníku, který obsahuje jeden nebo více seznamů položek.
Přejmenujte třídu tvaru, která se zobrazí na pravé straně DSL definice diagramu, v části tvary a konektory.
Definovat obrázek, pokud jste vytvořili obrazec obrázek.
Vytvořte soubor bitové kopie jakékoli velikosti.BMP, JPEG, GIF a EMF jsou podporovány.
V Průzkumníku řešení přidáte do řešení pod Dsl\Resources soubor.
Zpět na diagramu DSL definice a vyberte novou třídu obrázek tvaru.
V okně Vlastnosti klikněte na tlačítko obrázek vlastnost.
V vybrat obrázek dialogovém okně klikněte na tlačítko rozevírací nabídky v rámci název souborua vyberte obrázek.
Přidejte text dekoratérů do tvaru, chcete-li zobrazit vlastnosti domény.
Chcete-li zobrazit název prvku modelu, bude pravděpodobně nutné alespoň jeden decorator text.
Klikněte pravým tlačítkem na záhlaví třídy shape, přejděte na přidata potom klikněte na tlačítko Text Decorator.Nastavte název decorator a v sadě vlastností okna jeho pozice.
Připojení jednotlivých tvarů pomocí mapování elementu diagramu na třídu domény, který by měl zobrazit.
Klikněte na tlačítko diagramu Element mapy nástroj, pak klikněte na třídu domény klepněte na tlačítko třída shape.
Mapování vlastností pro dekoratérů text.
Vyberte Šedá čára mezi třídou domény a tvar třídu, která představuje rozvržení diagramu elementu.
V DSL podrobnosti okna, klikněte na tlačítko Decorator mapy karty.Pokud se nezobrazí DSL podrobnosti okna, na zobrazení nabídce přejděte na ostatní okna a potom klikněte na tlačítko DSL podrobnosti.Je často nutné zvýšit horní části tohoto okna zobrazíte všechny jeho obsah.
Vyberte název decorator.V části Zobrazovaná vlastnost, vyberte název vlastnosti třídy domény.Tento krok opakujte pro každou decorator.
Pokud chcete zobrazit vlastnost související elementu, klikněte na tlačítko Navigátor strom rozevírací seznam v části cesta k zobrazení vlastnost.
Ujistěte se, že se zobrazí zaškrtávací políčko vedle každé decorator jméno.
Přesvědčte se, Položka panelu nástrojů pro vytváření prvků třídy domény.
V DSL Explorer, rozbalte položku Editor uzel a všechny podřízené uzly.
Klikněte pravým tlačítkem na uzel v rámci panel nástrojů záložky má stejný název jako DSL, například MusicLibrary.Klikněte na tlačítko Element nástroj Přidat.
[!POZNÁMKA]
Je-li klepnutí pravým tlačítkem myši nástroje uzel, neuvidíte přidat nástroj Element.Místo toho klikněte na uzel nad ním.
V okně Vlastnosti nové vybraný element nástroj nastavit třídy na třídu domény, který jste nedávno přidali.
Nastavit titulek a popis tlačítka.
Nastavit ikonu panelu nástrojů do ikony, které se zobrazí v panelu nástrojů.Nová ikona nebo ikonu již byl použit jiný nástroj jej lze nastavit.
Chcete-li vytvořit novou ikonu, otevřete Dsl\Resources v Průzkumníka řešení.Zkopírujte a vložte jednu z existující soubory BMP nástroje elementu.Přejmenovat vložených kopírování a potom dvojitým kliknutím a upravte ji.
Vraťte DSL definice diagramu, vyberte nástroj a v okně Vlastnosti klikněte na tlačítko [...] v ikonu panelu nástrojů.V vyberte rastrového obrázku dialogového okna, vyberte svůj.Soubor BMP v rozevírací nabídce.
Další informace naleznete v tématu Vlastnosti geometrických obrazců a Vlastnosti obrazových obrazců.
K otestování tvary
Klikněte na tlačítko transformace všechny šablony na panelu nástrojů Průzkumníka řešení pro generování kódu návrháře DSL.
**Vytvoření a spuštění DSL.**Stisknutím klávesy F5 nebo CTRL + F5 spustit novou instanci třídy Visual Studio v pokusné režimu.V pokusné instanci Visual Studio, otevřete nebo vytvořte soubor, který má příponu názvu souboru z vašeho DSL.
Ověřte, že element nástroje se objeví na panelu nástrojů.
Vytvářet tvary přetažením z nástroje do diagramu modelu.
Ověřte, zda se zobrazí každý text decorator, a že:
Můžete upravovat, pokud jste nenastavili je jen pro čtení uživatelského rozhraní příznak u vlastnosti domény.
Při úpravách vlastnost v okně Vlastnosti nebo v decorator se aktualizuje jiné zobrazení.
Po vyzkoušení první tvar, můžete chtít některé upravte její vlastnosti a přidejte některé pokročilejší funkce.Další informace naleznete v tématu Přizpůsobení a rozšíření jazyka specifického pro doménu.
Definování referenčních relací
Můžete definovat referenčního vztahu mezi třída domény žádné zdroje a jakékoli cílová třída domény.Referenční relace jsou obvykle zobrazeny na diagramu jako spojnice, které jsou čáry mezi tvary.
Například pokud hudebních alb a umělci jsou zobrazeny jako tvary na diagramu, můžete definovat relace s názvem ArtistsAppearedOnAlbums, který odkazuje na alb, ve kterých mají práce umělce.Viz příklad na obrázku.
Referenční relace můžete také propojit prvky stejného typu.Například v DSL, představující řady stromu, vztah mezi nadřazené položky a jejich podřízené položky, je referenčního vztahu k osobě osoby.
Definovat referenčního vztahu
Klepněte na nástroj referenčního vztahu, poté klikněte na třídu domény zdroje relace a klikněte na cílovou třídu domény.Cílová třída může být stejná jako třída zdroje.
Každé relaci má dvě role, reprezentovanou řádkem na každé straně pole relace.Můžete vybrat jednotlivé role a nastavit jeho vlastnosti v okně Vlastnosti.
Zvažte přejmenování role.Například v relaci mezi osoby a osoby, můžete změnit výchozí názvy nadřazené položky a podřízené objekty, správce a podřízené, učitele a studenty, a tak dále.
Upravit násobnosti každé role, pokud je to nezbytné.Pokud chcete, aby každý uživatel, který chcete mít maximálně jeden správce, nastavte násobnost, který se zobrazí pod popisek Manager na diagramu na 0.. 1.
**Přidáte vztah vlastnosti domény.**Obrázek má relaci alba umělecké vlastnost role.
Set theAllows Duplicatesproperty of the relationship, if more than one link of the same class can exist between the same pair of model elements.Například by mohlo znamenat Teacher představuje více než jeden souladu stejné studenta.
Další informace naleznete v tématu Vlastnosti vztahů domény a Vlastnosti rolí domény.
Definovat spojnice. Chcete-li zobrazit relace
Konektor zobrazí čáru mezi dvěma tvary na diagramu modelu.
Přetáhněte konektor nástroj do diagramu definice DSL.
Pokud chcete zobrazit popisky na spojnici, přidejte dekoratérů text.Nastavte jejich pozice.Umožňují uživateli přesunout text decorator nastavit jeho je přesouvat vlastnost.
Použití diagramu Element mapy nástroj propojit konektor referenčního vztahu.
S mapováním diagramu prvek vybrán, otevřete DSL podrobnosti okna a otevřít Decorator mapy karty.
Vyberte jednotlivé Decorator a nastavte Zobrazovaná vlastnost na vlastnost správné domény.
Ujistěte se, že se zobrazí zaškrtnutí u jednotlivých položek dekoratérů seznamu.
Definovat nástroj Tvůrce připojení
V DSL Explorer okna, rozbalte položku Editor uzel a všechny jeho podřízené uzly.
Klikněte pravým tlačítkem na uzel, který má stejný název jako vaše DSL a potom klikněte na tlačítko přidat nový nástroj pro připojení.
Pokud je vybrán nový nástroj, v okně Vlastnosti:
Nastavte titulek a popis tlačítka.
Klikněte na tlačítko připojení Tvůrce a vyberte odpovídající tvůrce pro nové relace.
Nastavit ikonu panelu nástrojů na ikonu, která se má zobrazit v panelu nástrojů.Nová ikona nebo ikonu již byl použit jiný nástroj jej lze nastavit.
Chcete-li vytvořit novou ikonu, otevřete Dsl\Resources v Průzkumníka řešení.Zkopírujte a vložte jednu z existující soubory BMP nástroje elementu.Přejmenovat vložených kopírování a potom dvojitým kliknutím a upravte ji.
Vraťte DSL definice diagramu, vyberte nástroj a v okně Vlastnosti klikněte na tlačítko [...] v ikonu panelu nástrojů.V vyberte rastrového obrázku dialogového okna, vyberte svůj.Soubor BMP v rozevírací nabídce.
Otestovat odkaz relace a konektor
Klikněte na tlačítko transformace všechny šablony na panelu nástrojů Průzkumníka řešení pro generování kódu návrháře DSL.
**Vytvoření a spuštění DSL.**Stisknutím klávesy F5 nebo CTRL + F5 spustit novou instanci třídy Visual Studio v pokusné režimu.V pokusné instanci Visual Studio, otevřete nebo vytvořte soubor, který má příponu názvu souboru z vašeho DSL.
Ověřte, že nástroj připojení, zobrazí se na panelu nástrojů.
Vytvářet tvary přetažením z nástroje do diagramu modelu.
Vytvoření připojení mezi tvary.Klepněte na nástroj konektor, klepněte na obrazec a potom klikněte na tlačítko Další obrazec.
**Ověřte, že nelze vytvořit připojení mezi nevhodný třídy.**Pokud váš vztah mezi alba a umělci, ověřte například, že nelze propojit umělců umělců.
Ověřte, zda násobnosti správné. Ověřte například, že uživatel nemůže připojit k více než jeden správce.
Ověřte, zda se zobrazí každý text decorator, a že:
Můžete upravovat, pokud jste nenastavili je jen pro čtení uživatelského rozhraní příznak u vlastnosti domény.
Při úpravách vlastnost v okně Vlastnosti nebo v decorator se aktualizuje jiné zobrazení.
Po vyzkoušení nejprve konektor, můžete chtít některé upravte její vlastnosti a přidejte některé pokročilejší funkce.Další informace naleznete v tématu Přizpůsobení a rozšíření jazyka specifického pro doménu.
Definování tvary, které obsahují seznamy: prostoru pro cestující tvary
Obrazec prostoru obsahuje jeden nebo více seznamů položek.Například v digitální linka knihovny hudby, může pomocí obrazců prostoru představují hudebních alb.V každé Album je seznam skladeb.
V metodě nejjednodušší dosáhnout tímto účelem se v definici DSL definujete jednu třídu domény pro kontejner a jednu třídu domény pro každý seznam.Třída kontejneru je mapován na obrazec prostoru.
Další informace naleznete v tématu Vlastnosti obrazců prostoru.
Chcete-li definovat tvar prostoru
Vytvořit třídu kontejneru domény.Klikněte na tlačítko vnoření vztah nástroj, klikněte na tlačítko kořenová třída modelu a klepněte na prázdnou část diagramu definice DSL.Tím se vytvoří třídy domény s názvem Album na příklad obrázku.
Namísto vkládání ve třídě kořenový, případně můžete vložit kontejneru ve třídě domény, který je namapován na do plavecké dráhy.
Přidat vlastnost domény, jako je například název pro třídu a nastavit jeho název elementu, který je příznak v okně Vlastnosti.
Vytvořit třídu domény položka seznamu.Klikněte na tlačítko vnoření vztah nástroj, klikněte na třídu kontejneru (Album) a klepněte na prázdnou část diagramu.Tím se vytvoří třídy domény s názvem skladbu na příklad obrázku.
Přidat vlastnost domény, jako je název pro třídu a nastavit jeho název elementu, který je 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.
Chcete-li kombinováním několik typů položku v seznamu, vytvořit třídy, které dědí z třídy seznamu.Vytvořte abstraktní třídu seznamu nastavením jeho dědičnosti modifikátor.
Pokud chcete, aby klasického hudby, který se má seřadit podle autora namísto umělecké, můžete například vytvořit dva podtřídy skladbu, ClassicalSong a NonClassicalSong.
Vytvořit tvar prostoru.Přetáhněte z prostoru tvar nástroj do diagramu definice DSL.
Přidejte text decorator a nastavit jeho název.
Přidejte prostoru a nastavit jeho název.
Chcete-li umožnit uživateli skrýt seznam oddílů pravým tlačítkem myši na třídu tvar prostoru, přejděte na příkaz přidata potom klikněte na tlačítko rozbalit nebo sbalit Decorator.V okně vlastnosti nastavíte pozici decorator.
Klikněte na tlačítko diagramu Element mapy nástroj, klikněte na třídu kontejneru domény a klikněte na obrazec prostoru.
Klepněte na odkaz diagramu element mapování mezi třídou domény a tvaru.V DSL podrobnosti okna:
Klikněte na tlačítko dekoratérů karty.Klepněte na název decorator a potom vyberte odpovídající položku v části vlastnost zobrazovaný.Ujistěte se, že se zobrazí zaškrtávací políčko vedle názvu decorator.
Klikněte na tlačítko prostoru pro mapování karty.
Klepněte na název oddílu.
V části zobrazené elementy kolekce cesta, přejděte k seznamu element třídy (skladbu).Klepnutím na šipku rozevíracího seznamu použít nástroj Navigátor.
V části vlastnost zobrazovaný, vyberte vlastnost, která má být zobrazena v seznamu.V příkladu je to nadpis.
[!POZNÁMKA]
Pomocí pole cesty v mapě Decorator a prostoru pro mapování polí můžete provádět složitější vztahy mezi třídy domény a tvar prostoru.
Chcete-li definovat nástroj pro vytvoření tvaru
Přesvědčte se, Položka panelu nástrojů pro vytváření prvků třídy domény.
V DSL Explorer, rozbalte položku Editor uzel a všechny podřízené uzly.
Klikněte pravým tlačítkem na uzel v rámci panel nástrojů záložky má stejný název jako DSL, například MusicLibrary.Klikněte na tlačítko Element nástroj Přidat.
[!POZNÁMKA]
Je-li klepnutí pravým tlačítkem myši nástroje uzel, neuvidíte přidat nástroj Element.Místo toho klikněte na uzel nad ním.
V okně Vlastnosti nové vybraný element nástroj nastavit třídy na třídu domény, který jste nedávno přidali.
Nastavit titulek a popis tlačítka.
Nastavit ikonu panelu nástrojů do ikony, které se zobrazí v panelu nástrojů.Nová ikona nebo ikonu již byl použit jiný nástroj jej lze nastavit.
Chcete-li vytvořit novou ikonu, otevřete Dsl\Resources v Průzkumníka řešení.Zkopírujte a vložte jednu z existujících nástrojů elementu.Soubory BMP.Přejmenovat vložených kopírování a potom dvojitým kliknutím a upravte ji.
Vraťte DSL definice diagramu, vyberte nástroj a v okně Vlastnosti klikněte na tlačítko [...] v ikonu panelu nástrojů.V vyberte rastrového obrázku dialogové okno vyberte váš soubor BMP v rozevírací nabídce.
K otestování tvar prostoru
Klikněte na tlačítko transformace všechny šablony na panelu nástrojů Průzkumníka řešení pro generování kódu návrháře DSL.
**Vytvoření a spuštění DSL.**Stisknutím klávesy F5 nebo CTRL + F5 spustit novou instanci třídy Visual Studio v pokusné režimu.V pokusné instanci Visual Studio, otevřete nebo vytvořte soubor, který má příponu názvu souboru z vašeho DSL.
Ověřte, že tento nástroj zobrazuje na panelu nástrojů.
Přetáhněte nástroj na diagramu modelu.Tvar je vytvořen.
Ověřte, zda se zobrazí název elementu a automaticky nastavena na výchozí hodnotu.
Klikněte pravým tlačítkem na záhlaví nový tvar a potom klikněte na tlačítko Přidat vaše položky seznamu. V tomto příkladu je příkaz přidat skladbu.
Ověřte, zda položka je uvedena v seznamu a zda má nový název.
Kliknutím na některý z položek seznamu a poté zkontrolujte v okně Vlastnosti.Zobrazí vlastnosti položek seznamu.
Otevřete Průzkumníka jazyk.Ověřte, zda lze zobrazit uzly kontejner s položka seznamu uzlů v rámci.
Po vyzkoušení nejprve obrazec prostoru, můžete chtít upravit některé vlastnosti a přidat několik dalších pokročilých funkcí.Další informace naleznete v tématu Přizpůsobení a rozšíření jazyka specifického pro doménu.
V prostoru, ve kterém jsou zobrazeny kliknutí na odkaz
Element, který můžete zobrazit v prostoru je obvykle podřízený element, který je reprezentován tvar prostoru.Ale v některých případech se má zobrazit element, který je propojen s referenčního vztahu.
Můžeme například přidat druhý prostoru pro AlbumShape, který se zobrazí seznam umělců, které jsou propojeny s alba.
V takovém případě by měl oddíl zobrazovat na odkaz namísto odkazovaný element.Důvodem je, že když uživatel vybere položku v prostoru a stiskne klávesu DELETE, se má odkaz má být odstraněna, nikoli odkazovaný element.
Však může mít název odkazovaný element se zobrazí v prostoru.
Následující postup předpokládá, že jste již vytvořili třídu domény, referenčního vztahu, prostoru tvar a element rozvržení diagramu, jak bylo popsáno výše v této části.
Chcete-li zobrazit kliknutí na odkaz v oddílu
Přidat prostoru na obrazec prostoru.V definici DSL diagramu, klikněte pravým tlačítkem myši třída shape prostoru, přejděte na přidata potom klikněte na tlačítko prostoru.
Nastavit zobrazené elementy kolekce cesta přejdete na odkaz namísto jeho cílového elementu.Klepněte na rozevírací nabídky a zobrazit stromu, který slouží k výběru referenčního vztahu namísto jeho cíl.V tomto příkladu je relace ArtistAppearedOnAlbums.
Nastavit cesta k zobrazení vlastnosti přejdete z odkazu do cílového elementu.V tomto příkladu je to umělecké.
Nastavit vlastnost zobrazovaný na příslušnou vlastnost cílového elementu, například název.
Transformovat všechny šablony, vytvořit a spustit DSL a otevřete test model.
V diagramu modelu vytvořit příslušné třídy tvar, nastavit jejich názvy a vytvořte propojení mezi nimi.V prostoru tvaru se mají zobrazit názvy odkazované elementy.
Vyberte propojení nebo položka ve tvaru prostoru.Odkaz na a položka by měl zmizí.
Definování porty na hranici jiného obrazce
Port je tvar, který je umístěn na jeho hranice jiného obrazce.
Porty lze použít také k poskytování pevnou spojovacímu bodu druhého obrazce, do kterého uživatel můžete kreslit konektory.V takovém případě můžete vytvořit tvar port průhledný.
Chcete-li zobrazit příklad, který používá porty, vyberte Diagram komponent šablony při vytváření nové řešení pro DSL.Tento příklad ukazuje hlavní body, které můžete zvážit při definování portů:
Je domény třídu, která představuje kontejner portů, Component.
Není domény třídu, která představuje porty.V tomto příkladu je to ComponentPort.
Je vnoření vztah ze třídy domény kontejner pro třídu domény port.Další informace naleznete v tématu definování třídy domény.
Pokud chcete, aby různé druhy port, který má být mixed na stejném kontejneru, můžete vytvořit podtřídou třídy domény, port.V příkladu InPort a OutPort dědí ComponentPort.
Třída kontejneru domény lze mapovat na libovolný tvar.V tomto příkladu je ComponentShape.Další informace naleznete v tématu definování tvary.
Třídy domény portu jsou mapovány na port tvary.Můžete mapovat odvozené třídy k oddělení tříd tvar portů, nebo mapování základní třídu pro třídu tvar jeden port.
V ostatních ohledech chovat port tvary, jak je popsáno v definování tvary.
Další informace naleznete v tématu Vlastnosti obrazců portů.
Definování DSL, který má plavecké dráhy
Plavecké dráhy jsou vodorovně nebo svisle oddílu diagramu.Jednotlivé dráhy odpovídá prvku modelu.DSL definition vyžaduje jednu třídu domény pro elementy plavecké dráhy.
Nejlepší způsob, jak vytvořit DSL s plavecké dráhy je vytvořit nové řešení DSL a zvolte šablonu úloh tok řešení.V definici DSL třída Actor je třída domény namapovány plavecké dráhy.Přejmenujte tato a další třídy podle projektu.
Chcete-li přidat třídu, která se zobrazí jako obrazec uvnitř do plavecké dráhy, vytvořte vnoření vztah mezi třídou Plavecká dráha a nové třídy.Uživatelé budou moci přetáhněte elementy z jedné dráze, ale každý prvek bude vždy v rámci určitého plavecké dráhy.V šabloně úloha tok řešení FlowElement je podřízeným plavecké dráhy třídy.
Chcete-li přidat třídu, která se zobrazí jako obrazec bez ohledu na plavecké dráhy, vytvořte vztah vnoření mezi kořenová třída a nové třídy.Chcete-li tyto obrazce kdekoli na diagramu, včetně nad rámec hranic plavecké dráhy a mimo plavecké dráhy budou mít uživatelé.V šabloně řešení úloha tok komentář je podřízeným kořenová třída.
Další informace naleznete v tématu Vlastnosti drah.
Přidání typy vlastností
Doména výčty a literály
Doména výčet je typu literálu hodnotami.
Chcete-li přidat domény výčtu, klikněte pravým tlačítkem myši kořene modelu v DSL Explorer a potom klikněte na tlačítko přidat nový výčet domény.Element se zobrazí v DSL Explorer pod typy domén uzlu.Tento element se nezobrazí v diagramu.
Chcete-li přidat výčtové literály výčtu domény, klikněte pravým tlačítkem myši výčet domény v DSL Explorer a potom klikněte na tlačítko přidat nový výčet literálu.
Ve výchozím nastavení lze nastavit vlastnost, která má typ výčtu pouze jednu hodnotu výčtu najednou.Pokud chcete, aby uživatelé a programátory, budete moci nastavit libovolnou kombinaci hodnoty - "bitové pole" - nastaven IsFlags vlastnost výčtu.
Externí typy
Pokud nastavíte typ vlastnosti domény, pokud nebyl nalezen typ chcete v typu z rozevíracího seznamu, můžete přidat externí.Například můžete přidat System.Drawing.Color typu do seznamu.
Chcete-li přidat typ, klikněte pravým tlačítkem kořene modelu v Průzkumníku DSL a potom klikněte na tlačítko přidat nový typ externího.V okně vlastnosti nastavena na název Color a obor názvů pro System.Drawing.Tento typ se zobrazuje v Průzkumníku DSL pod typy domén.Můžete ji kdykoli nastavit typ vlastnosti domény.
Přizpůsobení DSL
Pomocí technik popsaných v tomto tématu, můžete rychle vytvořit DSL s graficky notation, čitelné podoby XML a základní nástroje, které jsou požadovány pro generování kódu a dalších artefaktů.
Rozšíření definici DSL dvěma způsoby:
Optimalizovat DSL s použitím více funkcí DSL definice.Například můžete provést jednu konektor nástroj, který můžete vytvořit několik typů konektoru, a můžete řídit pravidel, které odstraněním jeden element odstraní také všechny související prvky.Tyto metody jsou většinou dosáhnout nastavením hodnoty v definici DSL a některé vyžadují zadání několika řádků kódu programu.
Další informace naleznete v tématu Přizpůsobení a rozšíření jazyka specifického pro doménu.
Rozšíření nástrojů pro modelování tak, že dosáhnout rozšířené efektů pomocí programového kódu.Například můžete vytvořit příkazy, které lze změnit model a můžete vytvořit nástroje, které budou integrovány dvě nebo více DSL, linky.VMSDK je navržen tak, aby bylo možné snadno integrovat s kódem, který je generován z definice DSL vašeho rozšíření.Další informace naleznete v tématu Zápis kódu pro úpravu jazyka specifického pro doménu.
Změna definice DSL
Když vytvoříte libovolnou položku v definici DSL, mnoho výchozí hodnoty jsou nastaveny automaticky.Poté, co byly nastaveny, je možné změnit.To zjednodušuje vývoj DSL, ale umožnit pro efektivní vlastní nastavení.
Například když tvaru můžete mapovat na element, cesta nadřazeného elementu mapování je automaticky nastaví podle vnoření vztahu třídy domény.Pokud však později ke změně vnoření relace, cesta nadřazený element není změnit automaticky.
Proto musí být upozornit na to, že pokud změníte některé vztahy v definici vaší DSL, není pro zaslání chyby při ukládání definice nebo při transformaci všechny šablony.Většina z těchto chyb lze snadno opravit.Dvakrát klikněte na zprávy o chybách, chcete-li zobrazit umístění chyby.
Viz také Postupy: Změna oboru názvů jazyka specifického pro doménu.
Poradce při potížích
V následující tabulce jsou uvedeny některé z nejběžnějších problémů, které jsou došlo při návrhu DSL, spolu s návrhy jejich řešení.Další Rady, jak je k dispozici na Extensibililty fórum nástroje pro vizualizaci.
Problém |
Návrh |
---|---|
Změny, které mohu provedli v souboru definice DSL nemají žádný vliv. |
Klikněte na tlačítko transformace všechny šablony v panelu nástrojů nad Průzkumník řešení a poté znovu vytvořit řešení. |
Tvary zobrazit název decorator namísto hodnotu vlastnosti. |
Nastavte decorator mapování.V definici DSL diagramu klepněte na příkaz rozvržení diagramu elementu, což je Šedá čára mezi třídy domény a tvar. Otevřít DSL podrobnosti okna.Pokud nevidíte, v nabídce Zobrazit, přejděte na příkaz ostatní oknaa potom klikněte na tlačítko DSL podrobnosti. Klikněte na tlačítko Decorator mapy karty.Vyberte název decorator.Ujistěte se, že je zaškrtnuto políčko vedle sebe.V části Zobrazovaná vlastnost, vyberte název domény vlastnosti. Další informace naleznete v tématu tvary na diagramu. |
V Průzkumníku DSL nelze přidat do kolekce.Například při klepnutí pravým tlačítkem myši nástroje, neexistuje žádný příkaz "Přidat nástroj" v nabídce. V Průzkumníku pro můj DSL nelze přidat element do seznamu. |
Pravým tlačítkem myši nad uzlem, který se snažíte.Pokud chcete přidat do seznamu, je příkaz Přidat není v seznamu uzlu, ale jeho vlastníkem. |
Mohu vytvořit třídu domény, ale v Průzkumníku jazyk nelze vytvořit instance. |
Každé třídy domény s výjimkou kořenového adresáře musí být v cíli vnoření relace. |
V Průzkumníku pro můj DSL elementy jsou zobrazeny pouze s jejich názvy typů. |
V definici DSL vyberte vlastnost domain třídy a ve vlastnostech okna, nastavte název elementu, který je na hodnotu true. |
Mé DSL vždy otevře v editoru XML. |
K tomu může dojít z důvodu chyby při při čtení souboru.Však i po této chyby opravíte, je nutné explicitně obnovit editoru být vašeho DSL návrháře. Right-click the project item, click Open With and select YourLanguageDesigner (Default). |
Panel nástrojů mé DSL nezobrazuje jste provedli změnu názvy sestavení. |
Zkontrolovat a aktualizovat DslPackage\GeneratedCode\Package.tt Další informace naleznete v tématu Postupy: Změna oboru názvů jazyka specifického pro doménu. |
Panel nástrojů mé DSL nezobrazuje, ale nebyly po změně názvu sestavení. Nebo se zobrazí okno se zprávou, reporting selhání načtení rozšíření. |
Obnovit pokusné instance a znovu sestavte řešení.
|
Viz také
Úkoly
Vytvoření doménově specifického jazyka založeného na Windows Forms