Compartir clases entre DSL
En el SDK de modelado y visualización de Visual Studio, puede crear una definición de DSL incompleta que puede importar a otro DSL. Este enfoque le permite factorizar partes comunes de modelos similares.
Nota:
El componente Transformación de plantilla de texto se instala de forma automática como parte de la carga de trabajo Desarrollo de extensiones de Visual Studio. También lo puede instalar desde la pestaña Componentes individuales del Instalador de Visual Studio, en la categoría SDK, bibliotecas y marcos. Instale el componente SDK de modelado desde la pestaña Componentes individuales.
Creación de un proyecto DSL
Cree un proyecto DSL y elija la plantilla de solución Biblioteca DSL.
Se crea un único proyecto DSL con un modelo vacío.
Puede agregar clases de dominio, relaciones, formas, etc. Los elementos de la biblioteca no tienen que formar un único árbol de inserción. Para definir una relación que los importadores pueden usar, cree dos clases de dominio y cree la relación entre ellos.
Considere la posibilidad de establecer el valor del Modificador de herencia de las clases de dominio a
Abstract
.Puede agregar elementos que defina en el Explorador de DSL, como generadores de conexiones.
Puede agregar personalizaciones que requieran más código, como restricciones de validación.
Seleccione Transformar todas las plantillas.
Compile el proyecto.
Al distribuir el DSL para que otros usuarios lo usen, debe proporcionar el ensamblado compilado (DLL) y el archivo DslDefinition.dsl. Puede encontrar el ensamblado compilado en una carpeta en Dsl\bin*.
Importación de una biblioteca DSL
En otra definición de DSL, en DSL Explorer, haga clic con el botón derecho en la clase raíz del DSL y, a continuación, seleccione Agregar nueva importación de DslLibrary.
En la ventana Propiedades, establezca la ruta de acceso del archivo de la biblioteca. Puede especificar una ruta de acceso relativa o absoluta.
La biblioteca importada aparece en el Explorador DSL, en modo de solo lectura.
Puede usar las clases importadas como clases base. Cree una clase de dominio en el DSL de importación y, en el ventana Propiedades, establezca Clase base en una clase importada.
Seleccione Transformar todas las plantillas.
Agregue al proyecto DSL una referencia al ensamblado (DLL) creado por el proyecto de biblioteca DSL.
Compile la solución.