Megosztás a következőn keresztül:


Tartományspecifikus nyelv testreszabása és kiterjesztése

A Visual Studio Modeling and Visualization SDK (VMSDK) több szintet biztosít, amelyeken modellező eszközöket határozhat meg:

  1. Definiáljon tartományspecifikus nyelvet (DSL) a DSL-definíciós diagram használatával. Gyorsan létrehozhat egy DSL-t egy diagramos jelöléssel, egy olvasható XML-űrlaptal, valamint a kód és egyéb összetevők létrehozásához szükséges alapvető eszközökkel. További információt az Domain-Specific nyelv definiálása című témakörben talál.

  2. Finomhangolja a DSL-t a DSL-definíció fejlettebb funkcióival. Például további hivatkozásokat is megjeleníthet, amikor a felhasználó létrehoz egy elemet. Ezek a technikák többnyire a DSL-definícióban érhetők el, és néhány sornyi programkódot igényelnek.

  3. A modellező eszközök kiterjesztése programkód használatával. A VMSDK-t kifejezetten úgy tervezték, hogy megkönnyítse a bővítmények integrálását a DSL-definícióból létrehozott kóddal. További információ: Kód írása Domain-Specific nyelv testreszabásához.

Megjegyzés:

A DSL-definíciók fájl frissítésekor a megoldás újraépítése előtt ne felejtse el az Összes sablon átalakítása elemre kattintani a Megoldáskezelő eszköztárában.

Cikkhivatkozás

Ennek a hatásnak a elérése Tekintse meg ezt a témakört
Lehetővé teszi a felhasználó számára az alakzat szín- és stílustulajdonságainak beállítását. Kattintson a jobb gombbal az alakzatra vagy összekötőosztályra, mutasson a Közzétett hozzáadása pontra, és kattintson egy elemre.
A modellelem különböző osztályai hasonlóan néznek ki a diagramon, és olyan tulajdonságokat osztanak meg, mint a kezdeti magasság és szélesség, szín, elemleírások. Alakzatok vagy összekötőosztályok közötti öröklés használata. A származtatott alakzatok és a származtatott tartományosztályok közötti leképezések öröklik a szülők leképezési adatait.

Vagy különböző tartományosztályokat képezhet le ugyanarra az alakzatosztályra.
A modellelemek osztályát különböző alakzatkörnyezetek jelenítik meg. Több alakzatosztály leképezése ugyanarra a tartományosztályra. A megoldás létrehozásakor kövesse a hibajelentést, és adja meg a kért kódot, hogy eldöntse, milyen alakzatot használjon.
Az alakzat színe vagy más funkciók, például a betűtípus az aktuális állapotot jelzik. Lásd: Alakzatok és összekötők frissítése a modellnek megfelelően.

Hozzon létre egy szabályt, amely frissíti a közzétett tulajdonságokat. Lásd: Szabályok a változások propagálása a modellen belül.

Vagy az OnAssociatedPropertyChanged() használatával frissítheti a nem közzétett funkciókat, például a hivatkozási nyilakat vagy a betűtípust.
Az ikon az alakzat megváltoztatásával jelzi az állapotot. Állítsa be a dekorátorleképezés láthatóságát a DSL Details ablakban. Több képdíszítőt is megtalál ugyanazon a helyen. Lásd: Alakzatok és összekötők frissítése a modellnek megfelelően.

Vagy felülír ImageField.GetDisplayImage(). Lásd a példát a következőben ImageField: .
Háttérkép beállítása bármilyen formára Felülbírálja az InitializeInstanceResources() parancsot egy rögzített ImageField hozzáadásához.
Alakzatok beágyazása bármilyen mélységbe Állítson be egy rekurzív beágyazási fát. Az alakzatokat tartalmazó BoundsRules definiálása.
Összekötők csatolása rögzített pontokon egy elem határán. Beágyazott terminálelemek definiálása, amelyeket a diagramon lévő kis portok jelölnek. Használja a BoundsRules-t, hogy a portokat a helyükön rögzítse. Tekintse meg a kapcsolatcsoportdiagram mintáját a Vizualizáció és Modellezés SDK-n.
A szövegmező más értékekből származtatott értéket jelenít meg. Térképezze fel a szövegdíszítőt egy számított vagy egyéni tárhely tartománytulajdonságra. További információ: Számított és egyéni tárolótulajdonságok.
Módosítások propagálása modellelemek vagy alakzatok között Lásd : Ellenőrzés Domain-Specific nyelven.
Propagálja az erőforrások módosításait, például az áruházon kívüli egyéb Visual Studio-bővítményeket. Lásd: Az eseménykezelők a modellen kívül propagálja a módosításokat.
A tulajdonságablak egy kapcsolódó elem tulajdonságait jeleníti meg. Tulajdonságtovábbítás beállítása. Lásd a Tulajdonságok ablak testreszabása című témakört.
Tulajdonságkategóriák A tulajdonságok ablak kategóriáknak nevezett szakaszokra van osztva. Állítsa be a tartománytulajdonságok kategóriáját . Az azonos kategórianévvel rendelkező tulajdonságok ugyanabban a szakaszban jelennek meg. A kapcsolati szerepkör kategóriáját is beállíthatja.
A tartománytulajdonságokhoz való felhasználói hozzáférés szabályozása Állítsa a "Böngészhető" értékét hamisra, hogy megakadályozza egy tartománytulajdonság megjelenését a Tulajdonságok ablakban futásidőben. Továbbra is társíthatja a szövegkiegészítőkhöz.

A felhasználói felület írásvédett tulajdonsága megakadályozza, hogy a felhasználók módosítsák a tartománytulajdonságokat.

A program hozzáférése a tartománytulajdonsághoz változatlan marad.
Módosítsa a csomópontok nevét, ikonját és láthatóságát a DSL modellkezelőjében. Lásd : A Modellkezelő testreszabása.
Másolás, kivágás és beillesztés engedélyezése Állítsa be a Szerkesztő csomópont Másolás beillesztésének engedélyezése tulajdonságát a DSL Explorerben.
Hivatkozások és azok célállomásainak másolása, amikor egy elemet másolnak. Másoljon például egy elemhez csatolt megjegyzéseket. Állítsa be a forrás szerepkör Másolatok terjesztése tulajdonságát (amelyet a DSL-definíciós diagramon a tartománykapcsolat egyik oldalán lévő vonal jelöl).

Írjon kódot a ProcessOnCopy felülbírálásához az összetettebb effektusok eléréséhez.

Lásd : Másolási viselkedés testreszabása.
Kapcsolódó elemek törlése, újratelepítése vagy újrakapcsolása egy elem törlésekor. Egy kapcsolati szerepkör Propagálás törlési értékének beállítása. A komplexebb effektusok érdekében írja felül a ShouldVisitRelationship és ShouldVisitRolePlayer metódusokat az MyDslDeleteClosure osztályban, amely a DomainModel.cs-ben van definiálva.
Az alakzat elrendezésének és megjelenésének megőrzése másoláskor és húzáskor. Adja hozzá az alakzatokat és összekötőket a másolthoz ElementGroupPrototype. A felülbírálás legkényelmesebb módszere ElementOperations.CreateElementGroupPrototype()

Lásd : Másolási viselkedés testreszabása.
Illessze be az alakzatokat egy kiválasztott helyre, például az aktuális kurzorpozícióba. Felülírja ClipboardCommandSet.ProcessOnCopy(), hogy a ElementOperations.Merge(). helyspecifikus verzióját használja. Lásd: Másolási viselkedés testreszabása.
További hivatkozások létrehozása beillesztéskor A ClipboardCommandSet.ProcessOnPasteCommand() felülírása
Az ábra, más DSL-ek és Windows elemek esetében engedélyezze a húzást és dobást. Útmutató: Húzás és ejtés kezelő hozzáadása
Lehetővé teszi, hogy egy alakzatot vagy eszközt egy gyermekalakzatra, például egy portra húzzunk, mintha azt a szülőalakzatra húznánk. A célobjektum-osztály elemegyesítési irányelvének definiálása az elvetett objektum szülőnek való továbbításához. Lásd : Elemlétrehozás és -áthelyezés testreszabása.
Egy alakzat vagy eszköz alakzatra húzásával további hivatkozásokat vagy objektumokat hozhat létre. Ha például egy megjegyzést egy olyan elemre szeretne elvetni, amelyhez hozzá szeretné kapcsolni. Definiáljon egy elemegyesítési irányelvet a céltartományosztályon, és határozza meg a létrehozandó hivatkozásokat. Összetett esetekben egyéni kódot is hozzáadhat. Lásd : Elemlétrehozás és -áthelyezés testreszabása.
Hozzon létre egy elemcsoportot egyetlen eszközzel. Például egy rögzített portkészlettel rendelkező összetevő. Az eszközkészlet inicializálási metódusát írd felül a ToolboxHelper.cs-ben. Hozzon létre egy elemcsoport-prototípust (EGP), amely tartalmazza az elemeket és azok kapcsolati kapcsolatait. Lásd : Testreszabási eszközök és az eszközkészlet.

Vagy adja meg a fő és a port alakzatokat az EGP-ben, vagy határozza meg a BoundsRule-t a port alakzatok pozicionálásához az EGP példányosításakor.
Egy kapcsolati eszköz használatával számos kapcsolattípust hozhat létre. Adja hozzá a Link Connect direktívákat (LCD) az eszköz által meghívott kapcsolatszerkesztőhöz. Az LCD-k határozzák meg a kapcsolat típusát a két elem típusából. Ha ezt az elemek állapotától szeretné függővé tenni, hozzáadhat egyéni kódot. Lásd : Testreszabási eszközök és az eszközkészlet.
Ragadós eszközök – a felhasználó duplán kattinthat bármelyik eszközre, hogy egymás után számos alakzatot vagy összekötőt hozzon létre. A DSL Explorerben válassza ki a csomópontot Editor . A Tulajdonságok ablakban állítsa be a Ragadós eszközkészletelemek használatát.
Menüparancsok definiálása Lásd : Standard menüparancs módosítása
A modell korlátozása érvényesítési szabályokkal Érvényesítés Domain-Specific nyelven
Kódokat, konfigurációs fájlokat vagy dokumentumokat hozhat létre egy DSL-ből. Kód létrehozása Domain-Specific nyelvről
A modellek fájlba mentési módjának testreszabása. Lásd : Fájltárolás és XML-szerializálás testreszabása
Modellek mentése adatbázisokba vagy más adathordozókra. YourLanguageDocData felülbírálása

Lásd : Fájltárolás és XML-szerializálás testreszabása
Több DLL-t integrálhat, hogy egy alkalmazás részeként működjön. Lásd: Modellek integrálása a Visual Studio Modelbus használatával.
Engedélyezze, hogy a DSL-t harmadik felek meghosszabbítják, és szabályozza a bővítményt. A DSL kiterjesztése a MEF használatával

Osztályok megosztása DSL-ek között egy DSL könyvtár használatával

Zárolási szabályzat definiálása Read-Only szegmensek létrehozásához

Megjegyzés:

A Text Template Transformation összetevő automatikusan telepítve van a Visual Studio bővítményfejlesztési számítási feladatainak részeként. A Visual Studio Installer Egyes összetevők lapján, az SDK-k, kódtárak és keretrendszerek kategóriában is telepítheti. Telepítse a Modellezés SDK-összetevőt az Egyes összetevők lapon.