Altova UModel 2024

En este ejemplo se muestra cómo generar código C# con UModel. Para ello primero debe crear un espacio de nombres C# de muestra que contenga unas cuantas clases, después configurar el proyecto para la generación de código y por último generar el código.

 

En este ejemplo la plataforma de destino es .NET Standard 2.0 for C# 7.1. Como se muestra a continuación, esto es posible gracias a un perfil integrado en UModel que define todos los tipos de .NET Standard 2.0 for C# 7.1. UModel también incluye perfiles integrados para versiones específicas de .NET Framework por si los necesita (véase también Incluir otros proyectos de UModel).

 

Crear un proyecto de UModel nuevo y su estructura

En el menú Archivo haga clic en Nuevo. Esto crea un proyecto vacío con dos paquetes predeterminados ("Root" y "Component View"). A continuación haga clic con el botón derecho en el paquete "Root" y cree más paquetes, como se muestra más abajo. (Si no conoce la interfaz gráfica de UModel consulte primero los apartados Tutorial de UModel y Cómo modelar.)

um_cs_codegen_01

En este ejemplo el paquete Vista diseño actúa como contenedor de la parte del proyecto que corresponde al diseño (por ejemplo, clases y diagramas de clases), mientras que el paquete EspacioNombresEjemplo actúa como espacio de nombres para todas las clases que se van a crear. Sin embargo, la estructura de los paquetes en general no es prescriptiva y puede organizar los paquetes de otra manera si lo prefiere.

 

Ingeniería de código

Haga clic con el botón derecho en el paquete Vista diseño y seleccione Ingeniería de código | Establecer como raíz de espacio de nombres C# en el menú contextual. Cuando UModel le pregunte si quiere aplicar el perfil C# al paquete, haga clic en Aceptar para confirmar. Esto incluye el perfil C# integrado de UModel en el proyecto.

um_cs_codegen_02

Definir EspacioNombresEjemplo como espacio de nombres

 

A continuación, haga clic en el paquete EspacioNombresEjemplo y marque la casilla <<namespace>> en la ventana Propiedades. Esto aplica el estereotipo namespace al paquete y cambia su icono a ic-code-pack. Ahora puede crear clases bajo este espacio de nombres.

 

Incluir un subproyecto

En este punto el modelo incluye el perfil C#, que contiene los tipos de datos aplicables para C#, pero no los tipos específicos para .NET Standard 2.0, que se encuentran en un perfil distinto de UModel. Para añadir ese perfil al proyecto:

 

1.En el menú Proyecto haga clic en Incluir un subproyecto.

2.En la pestaña C# seleccione .NET Standard 2.0 for C# 7.1 (types only).

3.Haga clic en Aceptar.

4.Cuando la aplicación le pregunte cómo debe incluir el subproyecto, seleccione Incluir mediante referencia.

 

Ahora el proyecto incluye también este otro perfil.

um_cs_codegen_03

 

Crear clases C#

Puede crear clases directamente desde la Estructura del modelo o desde un diagrama de clases. Para este ejemplo vamos a crear un diagrama de clases desde la ventana Árbol de diagramas:

 

1.Abra el panel Árbol de diagramas.

2.Haga clic con el botón derecho en Diagramas de clases y seleccione Diagrama nuevo | Diagrama de clases.

 

En este ejemplo se asume que todas las clases se generan bajo el espacio de nombres EspacioNombresEjemplo. Por tanto, cuando la aplicación le pida que seleccione un propietario para el diagrama debe seleccionar el paquete EspacioNombresEjemplo. Si escoge un paquete distinto, cualquier elemento que añada al diagrama pertenecerá al mismo paquete que el diagrama (lo cual puede no ser su intención).

 

Crear las clases y su estructura

A continuación, cree las clases, los tipos y demás elementos necesarios para su modelo, como un diagrama simple que contenga la clase Artist y la clase MusicStore (imagen siguiente). Para ello siga estas instrucciones:

 

1.Haga clic con el botón derecho en la ventana pkg SampleNamespace y seleccione Nuevo | Clase.

2.Llame a la clase Artist.

3.Haga clic con el botón derecho en la caja Artist y cree dos propiedades: ID, de tipo int, y Name, de tipo string.

4.Cree la segunda clase, MusicStore.

5.Cree una propiedad llamada LastUpdated de tipo DateTime.

6.Cree una operación e introduzca su nombre y definición como se ve a continación.

um_cs_codegen_05

Para las instrucciones paso a paso sobre cómo diseñar clases y sus miembros consulte los apartados Diagramas de clases y Cómo modelar.

 

Sobre las propiedades C# autoimplementadas

En UModel puede ver si las propiedades C# se han autoimplementado. La opción de autoimplementación se habilita al marcar la casilla property (en este ejemplo para CreateTestArtist ()) en la ventana Propiedades (imagen siguiente).

UM_GenCSCode01
UM_GenCSCode02

Agregar documentación (opcional)

También puede hacer clic en la clase MusicStore del diagrama y añadir documentación tecleando el texto en el panel Documentación, donde puede generar comentarios en el código para esta clase.

um_cs_codegen_06

 

Configurar el proyecto para la ingeniería de código

Ahora vamos a configurar las opciones de la ingeniería de código. Para ello siga estos pasos:

 

1.Guarde el proyecto en un directorio, si no lo ha hecho ya.

2.A continuación haga clic con el botón derecho en el paquete Component View en la Estructura del modelo y añádale un nuevo Componente um_ic_component (es decir, un componente de software).

3.Haga clic en ese componente de software nuevo y configure así las opciones del panel Propiedades:

 

Lenguaje del código del componente ("C# 7.1" en este ejemplo)

Directorio para la generación de código (C:\codegen en este ejemplo).

Asegúrese de que la propiedad usar para ingeniería de código está activada.

um_cs_codegen_07

Crear una relación ComponentRealization

A continuación cree una relación ComponentRealization um_ic_realization entre las clases a partir de las cuales se genera el código C#. Para ello: en el panel Estructura del modelo haga clic en la clase que debe realizar el componente (Artista en este ejemplo) y arrástrela hasta el componente de ingeniería de código (Componente1) (imagen siguiente). Repita este paso con la clase MusicStore.

um_cs_codegen_08
Nota: si olvidó crear una relación RealizaciónDeComponente um_ic_realization para una clase, UModel sigue generando el archivo de código correspondiente, aunque aparecerán advertencias en la ventana Mensajes. Esta configuración puede cambiarse en Herramientas | Opciones | Ingeniería de código (en la casilla Generar las realizacionesDeComponente que falten).

 

Generar código C#

El último paso consiste en generar el código C#. Para ello siga estos pasos:

 

1.En el menú Proyecto haga clic en Combinar el código de programa con el proyecto de UModel (o pulse F12). Aparecerá un cuadro de diálogo en el que puede ajustar si los cambios en el modelo se deben combinar con los cambios en el código o sobrescribirlos (si procede). Para este ejemplo puede seleccionar Sobreescribir porque que estamos generando un proyecto nuevo.

2.Para incluir la documentación de la clase como comentarios en el código generado haga clic en Proyecto | Configuración del proyecto y después marque la casilla Escribir documentación como DocComments. Para más información consulte el apartado Opciones de generación de código.

3.Haga clic en Aceptar. El resultado de la ingeniería de código aparecerá en la ventana Mensajes (imagen siguiente).

um_cs_codegen_09

Si añadió documentación a la clase TiendaMúsica verá que aparece en forma de comentarios en el código generado:

 

using System;
using System.Collections.Generic;
namespace SampleNamespace
{
  /// Esta clase ilustra una tienda de música y contiene métodos para gestionar, por ejemplo, pistas musicales o artistas.
  public class MusicStore
  {
    public DateTime LastUpdated;
    public List<Artist> CreateTestArtists()
    {
        // PENDIENTE añadir implementación
    }
  }
 
}

© 2017-2023 Altova GmbH