次の方法で共有


DSL 間でクラスを共有する

Visual Studio Visualization and Modeling SDK では、別の DSL にインポートできる不完全な DSL 定義を作成できます。 この方法により、類似するモデルの共通部分を考慮することができます。

Note

テキスト テンプレート変換コンポーネントは、Visual Studio 拡張機能の開発ワークロードの一部として自動的にインストールされます。 また、 [SDK、ライブラリ、およびフレームワーク] カテゴリの下にある Visual Studio インストーラーの [個別のコンポーネント] タブからインストールすることもできます。 [個別のコンポーネント] タブから Modeling SDK コンポーネントをインストールします。

DSL プロジェクトを作成する

  1. 新しい DSL プロジェクトを作成し、DSL ライブラリ ソリューション テンプレートを選択します。

    空のモデルを使用して、単一の DSL プロジェクトが作成されます。

  2. ドメイン クラス、リレーションシップ、シェイプなどを追加できます。 ライブラリ内の要素は、1 つの埋め込みツリーを形成している必要はありません。 インポートするときに使用できるリレーションシップを定義するには、2 つのドメイン クラスを作成し、それらの間にリレーションシップを作成します。

    ドメイン クラスの継承修飾子Abstract に設定することを検討します。

  3. DSL エクスプローラーで定義した要素 (接続ビルダーなど) を追加できます。

  4. 検証制約など、さらなるコードを必要とするカスタマイズを追加することができます。

  5. [すべてのテンプレートの変換] を選択します。

  6. プロジェクトをビルドします。

  7. 他のユーザーが使用できるように DSL を配布するときは、コンパイル済みのアセンブリ (DLL) と DslDefinition.dsl ファイルの両方を提供する必要があります。 コンパイル済みのアセンブリは、Dsl\bin* の下のフォルダーにあります。

DSL ライブラリをインポートする

  1. 別の DSL 定義の DSL エクスプローラーで、DSL のルート クラスを右クリックし、[Add New DslLibrary Import] (新しい Dsllibrary インポートの追加) を選択します。

  2. [プロパティ] ウィンドウで、ライブラリの [ファイル パス] を設定します。 相対パスと絶対パスのどちらかを使用することができます。

    インポートしたライブラリは、DSL エクスプローラーに読み取り専用モードで表示されます。

  3. インポートしたクラスを基底クラスとして使用できます。 インポートする DSL でドメイン クラスを作成し、プロパティ ウィンドウで、[基底クラス] をインポートしたクラスに設定します。

  4. [すべてのテンプレートの変換] を選択します。

  5. DSL ライブラリ プロジェクトによってビルドされたアセンブリ (DLL) への参照を、DSL プロジェクトに追加します。

  6. ソリューションをビルドします。