martes, 9 de agosto de 2011

Asociar Menu a un Window por PowerScript

Un Menu Object puede ser asociado a un Window Object con la siguiente sintaxis:

w_nombre_window.ChangeMenu(m_nombre_menu)

domingo, 7 de agosto de 2011

Migrando de Versión a Aplicaciones PowerBuilder

En los últimos años he participado en migraciones de Aplicaciones PowerBuilder desarrolladas en versiones 6.5, 7.0, 8.0 y 9.0 a versiones 10.5, 11.0 y 11.5.

Pero hay un detalle que se debe tener en cuenta antes de comenzar a migrar de versión, si es mejor desarrollar un nuevo software o migrar de versión las Aplicaciones PowerBuilder. Algunos clientes no solo quieren migrar de versión sus Aplicaciones PowerBuilder, también quieren migrar de Base de Datos sea a una nueva versión, a una Base de Datos de distinta tecnología Licenciada o Libre. Algunos clientes prefieren migrar de versión sus Aplicaciones PowerBuilder porque piensan que se ahorra mas tiempo, es mas barato, van a poder utilizar las nuevas bondades de ultima versión migrada, etc.

He tenido la oportunidad de migrar distintas Aplicaciones PowerBuilder encontrándolas sin estándares de programación, con exagerado SQL Embebido, sin POO, etc y en estos casos es donde aplico Refactoring (dedicare un post sobre mi experiencia en Refactoring a Aplicaciones PowerBuilder).

PowerBuilder cuenta con un asistente que nos permite ver que sintaxis es obsoleta y lo encontraremos seleccionando File - New

sábado, 6 de agosto de 2011

Programación Orientada a Objetos en PowerBuilder

El día de ayer recomendaron (En clases) un libro muy bueno que de verdad me gusto leer ya hace un buen tiempo atrás (Enero del 2009) Programación Orientada a Objetos de Luis Joyanes Aguilar, recordé entonces el primer libro que leí sobre Programación Orientada Objetos, Aprendiendo Programación Orientada A Objetos en 21 Lecciones (Octubre 2008), ambos me ayudaron mucho para entender sobre la Programación Orientada a Objetos.

Antes de leer estos libros solo tenia la idea de heredar es por eso que en el 2007 publico este post Herencia en PowerBuilder, pero faltaba Encapsulación y Polimorfismo, entonces no aplicaba POO en PowerBuilder siendo una herramienta Orientada a Objetos.

El punto de partida y que me cambio totalmente la idea sobre POO en PowerBuilder fue cuando di mantenimiento a una aplicación desarrollada con PFC, sinceramente fue muy complejo todo al comienzo, luego empece a entender y a manejar las PFC pero jamas me agrado, es así que en el 2008 publico este post PowerBuilder Foundation Class.

Trabajar con aplicaciones desarrolladas con PFC y el querer aplicar POO en PowerBuilder me lleva a buscar en la web sobre POO y es cuando me encuentro los libros ya mencionados anteriormente y también con documentación en ingles sobre POO en PowerBuilder aunque muy poca.

Bueno llego el momento de explicar lo que me faltaba aplicar o lo que se no sabia aplicar:

Encapsulación

La encapsulación es un proceso de ocultar el funcionamiento interno de un objeto.

PowerBuilder soporta la encapsulación de variables, eventos y funciones a nivel de objeto para las ventanas, menus y user object. Mediante el uso de variables instancia, eventos definidos por el usuario y funciones de nivel de objeto.
Polimorfismo

El polimorfismo permite que una operación se comporte de manera diferente, dependiendo del contexto en el que se llama a la operación.
PowerBuilder soporta Overloading y Overriding
  • Overloading: funciones con el mismo nombre en el mismo objeto.

  • Overriding: funciones descendientes suelen tener los mismos argumentos, pero el código dentro de la función es diferente.