¿En el proyecto de datos o en el proyecto de aplicación?

En Velneo V7 hay objetos que podemos crear tanto en el proyecto de aplicación como en el proyecto de datos, y la pregunta que te estarás haciendo es: “¿Dónde es mejor crearlos? ¿Dónde será más óptimo?”.

En este post vamos a despejar esas dudas.

¿EN EL PROYECTO DE DATOS O EN EL PROYECTO DE APLICACIÓN-

Antes de enumerar esos objetos comunes a ambos proyectos, vamos con un par de consideraciones previas:

  • 1.- Herencia: Hay que tener presente que mientras un proyecto de aplicación puede heredar, además de otros proyectos de aplicación, uno de datos; un proyecto de datos SÓLO hereda de otros proyectos de datos.
  • 2.- Interacción con el usuario: En el proyecto de datos no podemos poner ningún objeto que pida interacción con el usuario puesto que se lanzará en el vAdmin.

De momento no hay ningún estudio, al menos que yo conozca, que diga si es más óptimo crear un determinado objeto en un proyecto o en otro.

Objetos disponibles en ambos proyectos

Búsqueda

BusquedasAunque podemos incluirlas en ambos proyectos, yo me decanto por crearlas en el proyecto de aplicación.

Normalmente las uso desde manejadores de objeto para poder asignarle valor a las variables que tengo para alimentar los componentes de búsqueda.

Hay que tener en cuenta que si una búsqueda la vamos a utilizar, por ejemplo, en un trigger, tendremos que crearla obligatoriamente en el proyecto de datos.

Además si en la búsqueda hemos asignado un formulario de petición de datos, además de tener que crear dicha búsqueda en el proyecto de aplicación, tendremos que lanzar dicha búsqueda en primer plano puesto que si no, el usuario no vería el formulario.

Cola

Cola de procesos

En este caso, las colas al usarse para permitir ejecutar procesos de forma secuencial (normalmente se usan para importar ficheros o procesar registros), me decanto por crearlas en el proyecto de datos.

Constante

Constante

En este caso, como diría un gallego… “depende”.

Si son constantes de nombre de módulos o tablas (que luego, por ejemplo las puedo poner como título en los formularios) las suelo crear en el proyecto de datos.

Si las constantes son de mensajes, nombre de botones o todo lo que tenga que ver con interfaz, las creo en el proyecto de aplicación.

Incluso en algunas soluciones tengo un proyecto “Recursos” donde guardo tanto constantes como dibujos comunes (proyecto de aplicación heredado por el resto de proyectos).

Dibujo

Dibujo

Pues con los dibujos sigo la misma filosofía que con las constantes.

Aquellos dibujos que utilizo como iconos de los módulos o los dibujos que asigno a las tablas estáticas (en este caso no hay mas remedio) van al proyecto de datos.

El resto de dibujos, para los botones, pestañas, logos, etc etc… van al proyecto de aplicación.

Fichero Adjunto

Fichero adjuntoSegún la ayuda de velneo: “Se trata de un objeto que permite distribuir en los clientes de forma automática y desatendida cualquier tipo de archivo que sea necesario para la ejecución de un proyecto, como por ejemplo dll’s, programas de instalación de productos de terceros, datos iniciales, etc“.

En este caso me decanto a incluir los ficheros adjuntos en el proyecto de datos.

Muchas veces incluimos ficheros (*.txt, *.csv) para inicializar alguna tabla de nuestro proyecto o algún archivo para saber en que S.O. se está ejecutando nuestra app por lo que lo mas lógico es incluirlos en el proyecto de datos.

Un par de consideraciones extraídas de la ayuda oficial:

  • El fichero adjunto en este objeto será guardado en el servidor junto con el proyecto y será distribuido de forma automática a cada cliente que ejecute cualquier instancia del proyecto y guardado en la caché local del mismo.
  • Debemos tener en cuenta que si copiamos un objeto de este tipo de un proyecto a otro, solamente se copiará el objeto, pero no el fichero en sí. Por lo tanto, tendremos que asegurarnos también de copiar el fichero en el directorio donde se encuentre ubicado el proyecto de destino.

Función

Función

Yo normalmente las funciones las creo en el proyecto de datos.

¿Por qué? Muy sencillo… podemos llamar a una función desde la propiedad “Contenido inicial” de un campo.

Creedme son muy útiles utilizarlas de esta forma (obtener el usuario que está haciendo una operación; obtener un contador de un documento de compra o venta; etc etc)

Hay que tener en cuenta que las funciones sólo las podemos ejecutar en primer plano.

Librería Externa

Libreria externaAunque este objeto podemos crearlo en ambos proyectos… de momento no hay discusión: tenemos que crearlo en el proyecto de aplicación.

Según la ayuda de la web de velneo: “Este objeto siempre debe ser creado dentro de un proyecto de aplicación; ya que, en la versión actual, las librerías declaradas en proyecto de datos no son funcionales“.

Proceso

ProcesoAquellos procesos que ejecuto en los triggers de las tablas o que son genéricos como por ejemplo asignar permisos, crear registros en tablas, actualizar registros, etc. (en general todos los que tienen que ver con la base de datos), los creo en el proyecto de datos.

El resto de procesos van al proyecto de aplicación.

Espero que este post te haya aclarado las dudas que puedas tener a la hora de crear un objeto de los “comunes” en Velneo V7.

Y tú.. ¿dónde creas los objetos comunes?

Déjame un comentario mas abajo y comenzamos el debate.

Francisco José Vila Martín
ayudavelneo@ayudavelneo.com

Francisco José Vila es programador certificado y formador en la plataforma de desarrollo de aplicaciones empresariales Velneo V7. Es autor del blog Ayudavelneo desde donde ayuda a desarrolladores que se están iniciando en Velneo V7 a acortar su curva de aprendizaje para que obtengan beneficios y sean rentables desde el minuto 1. Ampliar información

2 Comments
  • Syne
    Posted at 10:34h, 29 abril Responder

    Muy buen artículo Vila. Al final el criterio es cuanto más abajo en la herencia, en más proyectos tienes disponible ese objeto. Hay que buscar el equilibrio, pues puedes recargar un proyecto de datos con objetos que solo se usan en un proyecto de aplicación. Por ejemplo, los dibujos que se usan en un proyecto de aplicación que tiene el interfaz adaptado a aplicaciones móviles y que esos dibujos solo se usan ahí. Mejor ponerlos en el de aplicación que en el de datos. La aplicación será más ligera en carga inicial cuando no se use ese acceso móvil.

    Me alegro que retomes estos post.
    Un saludo.

  • Pepeto
    Posted at 12:39h, 29 abril Responder

    Estoy de acuerdo contigo en la mayoría de los casos, pero en el caso de búsquedas, funciones y procesos, depende de cada caso, si no necesito hacer uso de objetos visuales, prefiero ponerlas en el proyecto de datos.

    un saludo
    Pepeto.

Post A Comment