Visual Studio Visualization and Modeling SDK では、別の DSL にインポートできる不完全な DSL 定義を作成できます。 この方法により、類似するモデルの共通部分を考慮することができます。
Note
テキスト テンプレート変換コンポーネントは、Visual Studio 拡張機能の開発ワークロードの一部として自動的にインストールされます。 また、 [SDK、ライブラリ、およびフレームワーク] カテゴリの下にある Visual Studio インストーラーの [個別のコンポーネント] タブからインストールすることもできます。 [個別のコンポーネント] タブから Modeling SDK コンポーネントをインストールします。
DSL プロジェクトを作成する
新しい DSL プロジェクトを作成し、DSL ライブラリ ソリューション テンプレートを選択します。
空のモデルを使用して、単一の DSL プロジェクトが作成されます。
ドメイン クラス、リレーションシップ、シェイプなどを追加できます。 ライブラリ内の要素は、1 つの埋め込みツリーを形成している必要はありません。 インポートするときに使用できるリレーションシップを定義するには、2 つのドメイン クラスを作成し、それらの間にリレーションシップを作成します。
ドメイン クラスの継承修飾子を
Abstractに設定することを検討します。DSL エクスプローラーで定義した要素 (接続ビルダーなど) を追加できます。
検証制約など、さらなるコードを必要とするカスタマイズを追加することができます。
[すべてのテンプレートの変換] を選択します。
プロジェクトをビルドします。
他のユーザーが使用できるように DSL を配布するときは、コンパイル済みのアセンブリ (DLL) と DslDefinition.dsl ファイルの両方を提供する必要があります。 コンパイル済みのアセンブリは、Dsl\bin* の下のフォルダーにあります。
DSL ライブラリをインポートする
別の DSL 定義の DSL エクスプローラーで、DSL のルート クラスを右クリックし、[Add New DslLibrary Import] (新しい Dsllibrary インポートの追加) を選択します。
[プロパティ] ウィンドウで、ライブラリの [ファイル パス] を設定します。 相対パスと絶対パスのどちらかを使用することができます。
インポートしたライブラリは、DSL エクスプローラーに読み取り専用モードで表示されます。
インポートしたクラスを基底クラスとして使用できます。 インポートする DSL でドメイン クラスを作成し、プロパティ ウィンドウで、[基底クラス] をインポートしたクラスに設定します。
[すべてのテンプレートの変換] を選択します。
DSL ライブラリ プロジェクトによってビルドされたアセンブリ (DLL) への参照を、DSL プロジェクトに追加します。
ソリューションをビルドします。