Usando marcadores de Microsoft Word con Velneo V7

Hace unos dias me pedían un ejemplo de cómo usar marcadores en Microsoft Word y sustituirlos desde Velneo V7. Buceando por Google encontré estos ejemplos en vbScript, así que usando el Tutor vxWinScript (además se ha actualizado de versión corrigiendo algún bug) que está en el catálogo de Open Apps, me puse manos a la obra.

Lo primero fue crear un documento Microsoft Word y añadir un marcador

Metí el ejemplo vbScript del marcador y lo adapté a mi documento y al nombre de mi marcador. Probé y voila!! Vemos el documento Word con la sustitución que le hemos indicado justo donde estaba el marcador.

Este componente es realmente útil para incorporar scripts realizados en vbScript y apoyarse en la ingente cantidad de ejemplos que hay en la web.

Life is soft 2011. No te lo puedes perder

Llevo tiempo sin escribir en el blog, pero este asunto merece la pena. El 11 el 11 del 11 se celebra el primer evento Velneo Life is Soft.

Continuar leyendo

Nueva versión Velneo 7.3

Hoy ha salido a la luz la nueva versión 7.3 de Velneo V7. Trae multitud de novedades.

Puedes descargar la nueva versión y ver la lista de novedades.

Usando dlls de Windows desde Velneo V7

Hace algún tiempo que quería escribir sobre cómo usar las dlls nativas de Windows (user32, kernel, etc) desde Velneo V7 usando el objeto librería externa.

No voy a pararme en como crear el objeto, las funciones y sus parámetros, ya que eso está perfectamente explicado en la zona info de www.velneo.es. En este artículo mostraré un par de ejemplos de uso de la dll user32 y doy acceso a la Velneo Open App que he creado para este artículo.

Lo primero que hay que tener en cuenta en la declaración del objeto Continuar leyendo

Constantes de Windows

Ahora que estoy enfrascado en hacer un artículo de cómo llamar a las dlls de Windows desde Velneo V7 usando el objeto librería externa, me surge la necesidad de mirar una y otra vez cual es el valor de las constantes que usa Windows en las llamadas a las dlls.
Así que las he buscado y aquí tenemos la lista casi completa. Si falta alguna no dudes en añadirla.

Continuar leyendo

Nueva versión Velneo 7.2

Ayer martes aparecía la nueva versión de Velneo, la 7.2, con numerosas novedades.

Aquí puedes ver una presentación y un video con las novedades. Además puedes ver un listado completo de las novedades y bugs solucionados.

Además se abre el primer concurso de Open Apps para Velneo V7. Apúntate y muestra lo que puedes hacer con Velneo V7.

Espero que disfrutes tanto de esta nueva versión como lo estoy haciendo yo.

Desarrollar para Mac

Ahora que está tan de moda Apple, y sus Mac, ha llegado el momento de encontrar una herramienta sencilla para desarrollar para ese S.O. La recién aparecida versión de Velneo V7 permite la edición y ejecución de aplicaciones tanto en Windows, Linux y Mac sin variar una sólo línea de código.

Ya no tienes excusa para desarrollar aplicaciones de gestión o de cualquier otro tipo para este sistema operativo.

Ya está aquí: Velneo V7

Recientemente ha salido a la luz la primera versión de Velneo V7. Después de un período en fase beta, sale la primera versión pública de esta plataforma de desarrollo.

Esta nueva plataforma permite el desarrollo rápido de aplicaciones utilizando una base de datos propietaria y un lenguaje visual de alto nivel. En esta primera versión sólo se ha sacado la versión de la nube (on the cloud), y confirman que para Junio dispondrán de solución para desarrollo y ejecución en local (on the LAN).

Incorpora varias características la mar de interesantes:

  • Es multiplataforma. Tango la edición como la ejecución puede realizarse en Windows, Linux y Mac, sin tener que tocar una sola línea de código ni librerías ni cosas raras. En ejecución utiliza un runtime para ejecutar las aplicaciones. Si, se lo que estás pensando… “un runtime… no me gusta”, pero no lo es también Java, Adobe Air o Microsoft Silverlight?. Esto se hace posible porque hacen uso de las famosas librerías Qt adquiridas recientemente por Nokia.
  • Funciona tanto on the cloud como en local: El mismo desarrollo sirve tanto para su ejecución en la nube como para la ejecución en local. Esto es una ventaja competitiva sobre otros sistemas de desarrollo en la nube (tienes más info en http://www.saasmania.com/2009/02/24/como-acertar-en-la-eleccion-de-una-paas/)
  • Introduce el concepto de herencia: La herencia guarda una similitud con las librerías que se utilizan en otros lenguajes tipo Java o Delphi, pero van un paso más allá. Por ejemplo, podemos tener 3 o 4 aplicaciones finales que heredan de una misma caja y poder cambiar la funcionalidad o el aspecto de todas las aplicaciones sólo tocando la caja padre. Os recomiendo la lectura de este documento
  • Añade el concepto de instancia de una aplicación. Podemos tener el mismo “código fuente” final y crear tantas instancias de esa aplicación como queramos. Es un concepto similar al término de moda en la nube: multitenancy. Más info en wikipedia o en saasmania.
  • Es multi-idioma: Desarrollamos una sóla vez y directamente con la herramienta de desarrollo o utilizando la herramienta externa Velneo vTranslator V7, podemos traducir toda nuestra aplicación fácilmente.

La he probado y aunque tengo que reconocer que le falta un poco de madurez sinceramente se convierte en un serio candidato a ser una herramienta revolucionaria en la creación de aplicaciones.

Velneo, dll’s y cadenas

Cuando trabajamos con Velneo y necesitamos hacer una llamada a una dll que retorna una cadena (string) nos encontramos con la tesitura de como liberar el espacio de memoria alojada para la cadena en cuestión en la dll. Veamos un método, que no el único, para liberar esa memoria. Este método sólo va a servir para las dlls que creemos nosotros, ya que debemos añadir un par de funciones extra.

El escenario

Veamos el escenario que vamos a utilizar para poner en funcionamiento nuestra técnica. Tenemos un mapa en Velneo desde el que necesitamos llamar a una función de una dll que debe retornar una cadena de caracteres (un char*). La cadena no tiene una longitud fija, por lo que nos interesa alojar el espacio en memoria en la propia función de la dll y retornar la cadena completa.

La solución

Lo primero que se nos ocurre es hacer una función que retorne un char* y recogerlo en Velneo, pero tenemos que ser conscientes de que ese espacio en memoria no se a a liberar, por lo que estamos dejando un motón de basura.

Lo que vamos a hacer es retornar el puntero a ese char*, y nos creamos dos funciones extra en la dll, getString y freeString. El código en C sería algo así:
unsigned long test(int variables, ...)
{
char* cadena = (char *) malloc(1024);
// Procesamos la cadena y retornamos su direccion de memoria
return (unsigned long)cadena;
}


char* getString(unsigned long address)
{ // Retornamos el contenido de esa dirección
return (char*) address;
}


void freeString(unsigned long address)
{ // Liberamos esa dirección de memoria
free((void *)address);
}

Desde Velneo haremos las llamadas en el siguiente orden:

Set ptr_cadena, testDll.test('variables')
// En esta variable local tenemos la direccion de memoria. Obtengamos el contenido
Set cadena, testDll.getString('ptr_cadena')
// Liberemos ese espacio reservado
Set void, testDll.freeString('ptr_cadena')

Con esta sencilla artimaña nos aseguramos de que no quede espacio en memoria ocupada sin liberar.

Esta es la opción que yo utilizo. Si usas algún otro truco, aprovecha para compartirlo con la comunidad escribiendo un comentario.

Mantener una aplicación en producción y no morir en el intento

Al hilo de lo que comentaba en mi anterior post sobre mis experiencias en mi antiguo trabajo con Java y MySQL, os cuento la parte relativa al mantenimiento de la aplicación en producción.

Aplicación en producción

Los que nos dedicamos al desarrollo de software conocemos las dificultades que implica mantener una aplicación que ya está en producción, o sea, el clientes ya está trabajando con ella.

Si sólo se trata de una actualización a nivel visual o de código no es significativo. El problema viene cuando cambia la estructura de la base de datos.

En otros entornos

Cuando la actualización de una aplicación incluye cambios en la estructura de datos normalmente recurrimos a scripts SQL que se encargan de realizar el cambio estructural y de algunos procesos si tuviéramos que realizar alguna actualización a nivel de datos.

Esto, queramos o no, es un proceso manual, aunque nos podamos ayudar de herramientas que permitan la sincronización entre dos bases de datos.

En Velneo

Afortunadamente los que desarrollamos con Velneo estamos de enhorabuena y la plataforma de desarrollo se encarga automáticamente de realizar la actualización/conversión de la base de datos antigua a la nueva versión. Además crea copia de seguridad de todas las tablas que “sufren” cambios.

Y cuando hablo de conversión me refiero a que si p.e. he cambiado el tipo de un dato en una tabla Velneo se encarga de realizar la conversión (siempre que sea posible).

De verdad que os animo a que probéis esta herramienta de desarrollo porque vale la pena.

Hasta el próximo artículo!!

Seguir

Get every new post delivered to your Inbox.