Integrace modelů pomocí Visual Studio Modelbus
Visual StudioModelBus poskytuje metody pro vytváření vazeb mezi modely a z dalších nástrojů do modelů.Můžete například propojit domény specifické pro jazyk (DSL), modelů a modely UML.Můžete vytvořit integrovanou sadu DSL, linky.
ModelBus umožňuje vytvořit jedinečný odkaz na model nebo pro určitý prvek uvnitř modelu.Tento odkaz mohou být uloženy mimo modelu, například v prvku do jiného modelu.Při pozdější při nástroj, který chce získat přístup k prvku, bude infrastruktury modelu sběrnice načíst odpovídající model a vrátí prvek.Pokud chcete, můžete zobrazit model pro uživatele.Pokud soubor nelze v jeho předchozí umístění, ModelBus vyzve uživatele, aby ji najít.Pokud uživatel soubor nalezne, bude ModelBus opravit všechny odkazy na tento soubor.
[!POZNÁMKA]
V aktuálním Visual Studio provádění ModelBus propojené modely musí být položky ve stejném Visual Studio roztoku.
Další informace a ukázky kódu naleznete v tématu:
Poskytnutí přístupu DSL
Před vytvořením ModelBus odkazy na model nebo jeho prvků, je nutné definovat ModelBusAdapter pro modem DSL.Nejjednodušší způsob je použít Visual Studio modelu sběrnice rozšíření, které přidává příkazy k DSL Designer.
Vystavit DSL definice modelu sběrnici
Stáhněte a nainstalujte rozšíření sběrnice modelu Visual Studio, pokud jste již nainstalovali.Další informace naleznete v vizualizaci a modelování SDK.
Otevřete soubor definice DSL.Pravým tlačítkem myši na plochu návrhu a klepněte na tlačítko Povolení Modelbus.
V dialogovém okně zvolte chcete zpřístupnit tento DSL na ModelBus.Pokud chcete toto připojení DSL zpřístupnit své modely a využívat odkazy na ostatní DSL, linky můžete obě možnosti.
Klikněte na tlačítko OK.Do řešení DSL je přidán nový projekt "ModelBusAdapter".
Pokud chcete získat přístup DSL text šablony, je nutné upravit AdapterManager.tt v novém projektu.Tento krok vynecháte, chcete-li modem DSL přístup z jiného kódu, jako jsou například příkazy a obslužné rutiny událostí.Další informace naleznete v tématu V textu šablony pomocí Visual Studio ModelBus.
Změnit základní třídy AdapterManagerBase na VsTextTemplatingModelingAdapterManager.
Poblíž konce souboru vložte další atribut z třídy AdapterManager:
[Microsoft.VisualStudio.Modeling.Integration.HostSpecific(HostName)]
V projektu odkazy ModelBusAdapter přidat Microsoft.VisualStudio.TextTemplating.Modeling.11.0.
Pokud chcete z textu šablony i z jiného kódu přístup modem DSL, budete potřebovat dva adaptéry, změněn a jeden nezměněna.
Klepněte na tlačítko transformace všechny šablony.
Znovu vytvořte řešení.
Nyní je možné ModelBus k otevření instance této DSL.
Ve složce ModelBusAdapters\bin\* obsahuje sestavení sestavena Dsl projektu a ModelBusAdapters projektu.Chcete-li tento DSL odkazovat z jiného DSL, importujte sestavení.
Ujistěte se, že prvky lze odkazovat
Visual StudioModelBus adaptéry identifikovat, ve výchozím nastavení pomocí identifikátoru guid prvek.Tyto identifikátory musí proto uložených v souboru modelu.
K zajištění prvku jsou trvalé ID
Otevřete DslDefinition.dsl.
V aplikaci Explorer DSL, rozbalte položku Chování serializace Xml, pak Data třídy.
Pro každou třídu, do které chcete vytvořit Model sběrnice odkazy:
Klepněte na uzel třídy a v okně Vlastnosti, ujistěte se, že Serializovat Id je nastavena na true.
Případně chcete použít k identifikaci prvků namísto GUID názvy prvků, můžete přepsat části generované adaptéry.Přepsat následující metody třídy adaptéru:
Přepsat GetElementId vrátit identifikátor, který chcete použít.Tato metoda je volána při vytváření odkazů.
Přepsat ResolveElementReference vyhledejte správný prvek z referenční Model sběrnice.
Přístup z jiného DSL DSL
Vlastnost domain v DSL můžete uložit odkazy na model sběrnice a můžete psát vlastní kód, který je používá.Můžete také nechat uživatele vytvořit odkaz na model sběrnice výběrem souboru modelu a v rámci prvku.
Povolit DSL používat odkazy na jiné DSL, je nejprve třeba jej spotřebitele modelu sběrnice odkazů.
Povolit DSL využívat odkazy na exponované DSL
V definici DSL diagramu klepněte pravým tlačítkem na hlavní části diagramu a klepněte na tlačítko Povolení Modelbus.
V dialogovém okně vyberte povolení tohoto modelu využívat odkazy na model sběrnice.
V aplikaci project Dsl náročné DSL přidáte následující sestavení projektu odkazy.Sestavení (soubory DLL) najdete v adresáři ModelBusAdapter\bin\ * exponovaných DSL.
Exponované sestavení DSL, napříkladFabrikam.FamilyTree.Dsl.dll
Sestavení exponované modelu sběrnice adaptéru, napříkladFabrikam.FamilyTree.ModelBusAdapter.dll
Přidejte následující.NET sestavení projektu odkazy náročné projektu DSL.
Microsoft.VisualStudio.Modeling.Sdk.Integration.11.0.dll
Microsoft.VisualStudio.Modeling.Sdk.Integration.Shell.11.0.dll
Vlastnost domain Uložit odkaz sběrnice
V definici DSL náročné DSL přidat vlastnost domain třídy domény a nastavte jeho název.
Vlastnosti okna s vlastností domény vybrán, nastavte v typu na ModelBusReference.
V této fázi programového kódu, můžete nastavit hodnotu vlastnosti, ale je jen pro čtení v dialogovém okně Vlastnosti.
Umožňuje uživatelům nastavit vlastnost specializované editoru odkaz ModelBus.Existují dvě verze tohoto editoru nebo Výběr: jedna umožňuje uživatelům zvolit soubor modelu a ostatní umožňuje uživatelům zvolit soubor modelu a prvek v rámci modelu.
Umožňuje uživateli nastavit odkaz na Model sběrnice ve vlastnosti domény
Vlastnost domény a klepněte na položku ModelBusReference upravit specifické vlastnosti.Otevře dialogové okno.To je Výběr modelu sběrnice.
Vyberte odpovídající Druh ModelBusReference: k modelu nebo element uvnitř modelu.
V souboru dialogové okno Filtr řetězec, zadejte řetězec, například Family Tree files |*.ftree.Subsitute příponu souboru do vystavených DSL.
Pokud jste zvolili odkazu na prvek modelu, můžete přidat seznam typů, které může uživatel vybrat, například Company.FamilyTree.Person.
Klepněte na tlačítko OKa klepněte na tlačítko Transformace všechny šablony v panelu Průzkumník řešení.
Upozornění Pokud vybrali není platný model nebo subjekt, na tlačítko OK nebude mít žádný vliv, přestože se pravděpodobně zobrazí povolené.
Pokud zadáte seznam typů cíl jako Company.FamilyTree.Person, pak musíte přidat odkaz na sestavení projektu DSL, odkazující na knihovnu DLL cílové DSL, například Company.FamilyTree.Dsl.dll
Test odkaz sběrnice
Sestavení DSL, oba exponované a náročné linky.
Spusťte jeden DSL, linky v experimentálních režimu stisknutím klávesy F5 nebo CTRL + F5.
V projektu ladění v experimentálních instance Visual Studio, přidat soubory, které jsou instancemi každý DSL.
[!POZNÁMKA]
Visual StudioModelBus lze vyřešit pouze odkazy na modely, které jsou položky ve stejném Visual Studio roztoku.Nelze například vytvořit odkaz na soubor modelu v jiné části systému souborů.
Vytvořit některé prvky a odkazy v instanci exponované DSL a uložte jej.
Otevření instance náročné DSL a vyberte prvek modelu, který má vlastnosti modelu sběrnice referenční.
V okně Vlastnosti poklepejte na odkaz vlastnosti modelu sběrnice.Otevře dialogové okno pro výběr.
Klepněte na tlačítko procházení a vyberte instanci exponované DSL.
V dialogu pro výběr také umožňují zvolit položku v modelu, pokud zadán prvek konkrétní druh referenční model sběrnice.
Vytváření odkazů v kódu programu
Chcete-li uložit odkaz na model nebo element uvnitř modelu, vytvoříte ModelBusReference.Existují dva druhy z ModelBusReference: odkazy a odkazy k prvku modelu.
Chcete-li vytvořit odkaz na model, je třeba AdapterManager linek, které je model instance a název souboru nebo Visual Studio položku projektu modelu.
Chcete-li vytvořit odkaz na element, potřebujete adaptér pro soubor modelu a prvek, který chcete odkázat.
[!POZNÁMKA]
S Visual Studio ModelBus, můžete vytvořit odkazy pouze na položky ve stejném Visual Studio roztoku.
Import vystavených sestavení DSL
V náročné projektu přidáte projekt odkazy na sestavení exponované linek DSL a ModelBusAdapter.
Předpokládejme například, že chcete ukládat odkazy ModelBus prvků MusicLibrary DSL.Odkazy na ModelBus bude odkazovat na prvky FamilyTree DSL.V Dsl MusicLibrary roztoku v uzlu odkazy projektu přidat odkazy na následující sestavení:
Fabrikam.FamilyTree.DSL.dll - exponované DSL.
Fabrikam.FamilyTree.ModelBusAdapters.dll - ModelBus adaptér exponované DSL.
Microsoft.VisualStudio.Modeling.SDK.Integration.11.0
Microsoft.VisualStudio.Modeling.SDK.Integration.Shell.11.0
Tyto sestavy lze nalézt v ModelBusAdapters projektu exponované DSL pod bin\*.
V souboru kódu, kde bude vytvářet odkazy bude obvykle mít importovat tyto obory:
// The namespace of the DSL you want to reference:
using Fabrikam.FamilyTree; // Exposed DSL
using Fabrikam.FamilyTree.ModelBusAdapters;
using Microsoft.VisualStudio.Modeling.Integration;
using System.Linq;
...
Vytvořit odkaz na model
Chcete-li vytvořit odkaz na model přístupu DSL vystavených AdapterManager a vytvořte odkaz na model.Můžete zadat buď soubor cestu, nebo EnvDTE.ProjectItem.
AdapterManager mohou získat adaptér, který poskytuje přístup k jednotlivým prvkům v modelu.
[!POZNÁMKA]
Když skončíte s ním, musí disponovat adaptér.Nejvhodnějším způsobem k dosažení tohoto cíle je using prohlášení.To ukazuje následující příklad.
// The file path of a model instance of the FamilyTree DSL:
string targetModelFile = "TudorFamilyTree.ftree";
// Get the ModelBus service:
IModelBus modelBus =
this.Store.GetService(typeof(SModelBus)) as IModelBus;
// Get an adapterManager for the target DSL:
FamilyTreeAdapterManager manager =
(modelbus.GetAdapterManager(FamilyTreeAdapter.AdapterId)
as FamilyTreeAdapterManager;
// or: (modelBus.FindAdapterManagers(targetModelFile).First())
// or could provide an EnvDTE.ProjectItem
// Create a reference to the target model:
// NOTE: the target model must be a file in this project.
ModelBusReference modelReference =
manager.CreateReference(targetModelFile);
// or can use an EnvDTE.ProjectItem instead of the filename
// Get the root element of this model:
using (FamilyTreeAdapter adapter =
modelBus.CreateAdapter(modelReference) as FamilyTreeAdapter)
{
FamilyTree modelRoot = adapter.ModelRoot;
// Access elements under the root in the usual way:
foreach (Person p in modelRoot.Persons) {...}
// You can create adapters for individual elements:
ModelBusReference elementReference =
adapter.GetElementReference(person);
...
} // Dispose adapter
Chcete-li použít modelReference později, můžete je uložit ve vlastnosti domény, který má externí typ ModelBusReference:
using Transaction t = this.Store.TransactionManager
.BeginTransaction("keep reference"))
{
artist.FamilyTreeReference = modelReference;
t.Commit();
}
Chcete-li umožnit uživatelům upravit tuto vlastnost domény, použijte ModelReferenceEditor jako parametr v editoru atributu.Další informace naleznete v tématu Povolit uživateli upravit odkaz.
K vytvoření odkazu na prvek
Adaptér, který jste vytvořili pro model lze vytvořit a odstranit odkazy.
// person is an element in the FamilyTree model:
ModelBusReference personReference =
adapter.GetElementReference(person);
Chcete-li použít elementReference později, můžete je uložit ve vlastnosti domény, který má externí typ ModelBusReference.Chcete-li umožnit uživatelům upravit, použijte ModelElementReferenceEditor jako parametr v editoru atributu.Další informace naleznete v tématu Povolit uživateli upravit odkaz.
Řešení odkazů
Máte- ModelBusReference (MBR) můžete získat v modelu nebo prvku modelu, na který se vztahuje.Pokud je prvek na diagram nebo jiné zobrazení, můžete otevřít zobrazení a vyberte element.
Adaptér můžete vytvořit z MBR.Adaptér mohou získat kořenové lokalitě modelu.MBRs, které odkazují na konkrétní prvky v rámci modelu lze také vyřešit.
using Microsoft.VisualStudio.Modeling.Integration; ...
ModelBusReference elementReference = ...;
// Get the ModelBus service:
IModelBus modelBus =
this.Store.GetService(typeof(SModelBus)) as IModelBus;
// Use a model reference or an element reference
// to obtain an adapter for the target model:
using (FamilyTreeAdapter adapter =
modelBus.CreateAdapter(elementReference) as FamilyTreeAdapter)
// or CreateAdapter(modelReference)
{
// Get the root of the model:
FamilyTree tree = adapter.ModelRoot;
// Get a model element:
MyDomainClass mel =
adapter.ResolveElementReference<MyDomainClass>(elementReference);
if (mel != null) {...}
// Get the diagram or other view, if there is one:
ModelBusView view = adapter.GetDefaultView();
if (view != null)
{
view.Open();
// Display the diagram:
view.Show();
// Attempt to select the shape that presents the element:
view.SetSelection(elementReference);
}
} // Dispose the adapter.
Řešení ModelBus odkazy v textu šablony
DSL, které chcete získat přístup, musí mít ModelBus adaptéru, který byl nakonfigurován pro přístup text šablony.Další informace naleznete v tématu To provide access to a DSL.
Bude se obvykle přístupu DSL pomocí sběrnice referenční Model (MBR) uložené ve zdroji DSL cíl.Šablona obsahuje proto směrnice zdroje DSL a kód vyřešení MBR.Další informace o šablonách textu, viz Generování kódu z domény specifické pro jazyk.
<#@ template debug="true" hostspecific="true" inherits="Microsoft.VisualStudio.TextTemplating.Modeling.ModelBusEnabledTextTransformation" #> <#@ SourceDsl processor="SourceDslDirectiveProcessor" requires="fileName='Sample.source'" #> <#@ output extension=".txt" #> <#@ assembly name = "Microsoft.VisualStudio.Modeling.Sdk.Integration.11.0" #> <#@ assembly name = "System.Core" #> <#@ assembly name = "Company.CompartmentDragDrop.Dsl.dll" #> <#@ assembly name = "Company.CompartmentDragDrop.ModelBusAdapter.dll" #> <#@ import namespace="Microsoft.VisualStudio.Modeling.Integration" #> <#@ import namespace="System.Linq" #> <#@ import namespace="Company.CompartmentDragDrop" #> <#@ import namespace="Company.CompartmentDragDrop.ModelBusAdapters" #> <# // Get source root from directive processor: ExampleModel source = this.ExampleModel; // This DSL has a MBR in its root: using (ModelBusAdapter adapter = this.ModelBus.CreateAdapter(source.ModelReference) as ModelBusAdapter) { ModelBusAdapterManager manager = this.ModelBus.FindAdapterManagers(this.Host.ResolvePath("Sample.compDD1")).FirstOrDefault(); ModelBusReference modelReference = manager.CreateReference(this.Host.ResolvePath("Sample.compDD1")); // Get the root element of this model: using (CompartmentDragDropAdapter adapter = this.ModelBus.CreateAdapter(modelReference) as CompartmentDragDropAdapter) { ModelRoot root = adapter.ModelRoot; #> [[<#= root.Name #>]] <# } #>
Další informace a postupu naleznete v tématuV textu šablony pomocí Visual Studio ModelBus
Při serializaci ModelBusReference
Pokud chcete uložit ModelBusReference (MBR) v podobě řetězce, můžete jej serializovat:
string serialized = modelBus.SerializeReference(elementReference);
// Store it anywhere, then get it back again:
ModelBusReference elementReferenceRestored =
modelBus.DeserializeReference(serialized, null);
MBR, který je serializován tímto způsobem je nezávislá na kontextu.Používáte jednoduchý založené na souboru modelu sběrnice adaptéru MBR obsahuje absolutní cestu.Toto je dostačující, pokud bude nikdy přesunout soubory modelu instance.Však soubory model bude obvykle položky Visual Studio projektu.Očekávat uživatelé budou moci přesunout celý projekt na různé části systému souborů.Rovněž bude očekávat moci ponechat projekt ve správě zdrojů a otevřít v různých počítačích.Názvy cest by proto serializovat relativní k umístění projektu, která obsahuje soubory.
Při serializaci vzhledem k zadané cestě
A ModelBusReference obsahuje ReferenceContext, což je slovník, ve kterém můžete uložit informace, jako je například cesta souboru vzhledem k by měla být serializován.
Serializace na relativní cestu:
elementReference.ReferenceContext.Add(
ModelBusReferencePropertySerializer.FilePathSaveContextKey,
currentProjectFilePath);
string serialized = modelBus.SerializeReference(elementReference);
Načtení odkazu z řetězce:
ReferenceContext context = new ReferenceContext();
context.Add(ModelBusReferencePropertySerializer.FilePathLoadContextKey,
currentProjectFilePath);
ModelBusReference elementReferenceRestored =
modelBus.DeserializeReference(serialized, context);
ModelBusReferences vytvořené jinými adaptéry
Následující informace je užitečná, pokud chcete vytvořit vlastní adaptér.
A ModelBusReference (MBR) se skládá ze dvou částí: záhlaví MBR rekonstruovány sběrnice modelu, a specifické pro adaptér, který je zpracováván správce konkrétní adaptér.To umožňuje poskytovat vlastní formát serializace adaptéru.Nelze odkazovat v databázi než soubor nebo odkaz adaptér nelze ukládat další informace.Vlastní adaptér, můžete umístit další informace ReferenceContext.
Při deserializaci MBR, je nutné zadat ReferenceContext, který je poté uložen v objektu MBR.Při serializaci MBR uložené ReferenceContext používá adaptér umožňuje generovat řetězec.Rekonstruované řetězec neobsahuje všechny informace ReferenceContext.ReferenceContext obsahuje jednoduché založené na souboru adaptér kořenová cesta souboru, který není uložen v serializovaném řetězec MBR.
MBR je rekonstruován ve dvou etapách:
ModelBusReferencePropertySerializerje standardní převodník do sériového tvaru, který se zabývá záhlaví MBR.Používá standardní DSL SerializationContext vlastnost vaku, který je uložen v ReferenceContext pomocí klíče ModelBusReferencePropertySerializer.ModelBusLoadContextKey.Zejména SerializationContext by měl obsahovat instanci ModelBus.
Adaptér ModelBus se zabývá část adaptéru hlavního spouštěcího záznamu.Další informace uložené v ReferenceContext o MBR může použít.Jednoduchý adaptér založený na souboru zachová kořenové cesty k souborům pomocí klíčů FilePathLoadContextKey a FilePathSaveContextKey.
Odkazu adaptér model souboru rekonstruovat, pouze pokud je použita.
Vytvoření modelu
Vytváření, otevírání a úpravy modelu
Následující fragment je převzata ze vzorku stavového počítače na webu VMSDK.Ilustruje použití ModelBusReferences k vytvoření a otevření modelu a získání přidružených k modelu diagramu.
V tomto příkladu je název cílového DSL StateMachine.Několik názvů jsou odvozeny z, jako je například název třídy modelu a název ModelBusAdapter.
using Fabrikam.StateMachine.ModelBusAdapters;
using Microsoft.VisualStudio.Modeling;
using Microsoft.VisualStudio.Modeling.Diagrams;
using Microsoft.VisualStudio.Modeling.Integration;
using Microsoft.VisualStudio.Modeling.Integration.Shell;
using Microsoft.VisualStudio.Modeling.Shell;
...
// Create a new model.
ModelBusReference modelReference =
StateMachineAdapterManager .CreateStateMachineModel(modelName, fileName);
//Keep reference of new model in this model.
using (Transaction t = ...)
{
myModelElement.ReferenceProperty = modelReference;
t.Commit();
}
// Get the ModelBus service from Visual Studio.
IModelBus modelBus = Microsoft.VisualStudio.Shell.Package.
GetGlobalService(typeof(SModelBus)) as IModelBus;
// Get a modelbus adapter on the new model.
ModelBusAdapter modelBusAdapter;
modelBus.TryCreateAdapter(modelReference,
this.ServiceProvider, out modelBusAdapter);
using (StateMachineAdapter adapter =
modelBusAdapter as StateMachineAdapter)
{
if (adapter != null)
{
// Obtain a Diagram from the adapter.
Diagram targetDiagram =
((StandardVsModelingDiagramView)
adapter.GetDefaultView()
).Diagram;
using (Transaction t =
targetDiagram.Store.TransactionManager
.BeginTransaction("Update diagram"))
{
DoUpdates(targetDiagram);
t.Commit();
}
// Display the new diagram.
adapter.GetDefaultView().Show();
}
}
Ověřování odkazů
BrokenReferenceDetector testy úložiště, který může pojmout ModelBusReferences všechny vlastnosti domény.Volá akce, které poskytují, kde se nacházejí všechny akce.To je zvláště užitečné pro ověřovací metody.Následující metoda ověření testy úložiště na pokus o uložení modelu a hlásí nefunkční odkazy v okně chyby:
[ValidationMethod(ValidationCategories.Save)]
public void ValidateModelBusReferences(ValidationContext context)
{
BrokenReferenceDetector.DetectBrokenReferences(this.Store,
delegate(ModelElement element, // parent of property
DomainPropertyInfo property, // identifies property
ModelBusReference reference) // invalid reference
{
context.LogError(string.Format(INVALID_REF_FORMAT,
property.Name,
referenceState.Name,
new ModelBusReferenceTypeConverter().
ConvertToInvariantString(reference)),
"Reference",
element);
});
}}
private const string INVALID_REF_FORMAT =
"The '{0}' domain property of ths ReferenceState instance "
+ "named '{1}' contains reference value '{2}' which is invalid";
Akce prováděné rozšířením ModelBus
Tyto informace není podstatné, ale může být užitečné, pokud provedete rozsáhlé použití ModelBus.
Rozšíření ModelBus provede následující změny v řešení DSL.
Klepněte pravým tlačítkem myši na diagram DSL definice Povolení Modelbusa pak vyberte Povolit tento DSL spotřebuje ModelBus:
V projektu DSL je přidán odkaz naMicrosoft.VisualStudio.Modeling.Sdk.Integration.11.0.dll
V definici DSL je přidán externí typ odkazu: Microsoft.VisualStudio.Modeling.Integration.ModelBusReference.
Uvidíte odkaz v DSL Explorerpod Typy domén.Chcete-li ručně přidat odkazy na externí typ, pravým tlačítkem myši na kořenový uzel.
Je přidán nový soubor šablony, Dsl\GeneratedCode\ModelBusReferencesSerialization.tt.
Při nastavíte typ vlastnosti domény ModelBusReference a potom klepněte pravým tlačítkem myši na vlastnost a klepněte na tlačítko specifické vlastnosti povolit ModelBusReference:
Vlastnosti domény přidány několik atributů CLR.Lze ho zobrazit vlastní atributy pole v okně Vlastnosti.V Dsl\GeneratedCode\DomainClasses.cs, deklarace vlastnosti můžete zobrazit atributy:
[System.ComponentModel.TypeConverter(typeof( Microsoft.VisualStudio.Modeling.Integration.ModelBusReferenceTypeConverter))] [System.ComponentModel.Editor(typeof( Microsoft.VisualStudio.Modeling.Integration.Picker .ModelReferenceEditor // or ModelElementReferenceEditor ), typeof(System.Drawing.Design.UITypeEditor))] [Microsoft.VisualStudio.Modeling.Integration.Picker .SupplyFileBasedBrowserConfiguration ("Choose a model file", "Target model|*.target")]
DSL definice diagramu klepněte pravým tlačítkem myši, klepněte na tlačítko Povolení ModelBusa vyberte vystavit tento DSL na ModelBus:
Nový projekt ModelBusAdapter je přidán do roztoku.
Odkaz na ModelBusAdapter je do DslPackage projektu.ModelBusAdapterobsahuje odkaz na Dsl projektu.
V DslPackage\source.extention.tt, |ModelBusAdapter| se doplňuje jako součást MEF.
Viz také
Koncepty
Jak: Otevřete Model ze souboru v kódu programu
Jak: Modely UML integrovat s ostatními modely a nástroje