
Conferencias 13 de Octubre
- Trabajando con Objetos en Visual FoxPro
- XML Webservices para desarrolladores Visual FoxPro
Trabajando con Objetos en Visual FoxPro
Presentado por: Andy Kramek
Ted Roche & Associates Inc.La Programación Orientada a Objetos (OOP por sus
siglas en ingles) ha estado disponible en Visual FoxPro desde su lanzamiento en
1995 (con la versión 3.0), desde entonces, los programadores se han visto
recomendados (y muchas veces obligados?) a cambiar hacia esa "nueva" tendencia.
Han pasado mucho tiempo y parece que todavía no se nos queda bien grabado el
como se puede llevar a buen rumbo este tipo de programación, seguimos usando
programación estructurada, ignorando las ventajas (y "desventajas") de la OOP.
En esta sesión Ted Roche nos dio una breve lección (el tiempo de las sesiones
no da para mas) de sobre que es y como se debe programar en OOP, las
características básicas y algunos tipa para evitar hacer las cosas de la manera
no correcta. Ted definió algunos conceptos básicos:
| Objetos y Clase |
| Las clases son el modelo para crear objetos |
Las clases son análogas a un Recipiente:
- Define como hacer algo
- Por si mismo no es usable
Las clases son definidas jerárquicamente.
Los Objetos son una INSTANCIA de una Clase
- Creadas como una referencia a la clase padre
- Los cambios en las clases son heredados por los objetos
|
|
También definir una clases en forma de rápida explicación:
- Identificar Responsabilidades
- Clasificar Responsabilidades:
- Debe: Pertenecerá a la clase Raíz, es decir, requiere acción de parte de
la clase, ninguna otra clase puede hacerlo, además de que la clase no
funcionara si no puede hacerlo, como ejemplo: Una clase de botones de
navegación debe iniciar el proceso que mueve el puntero de registro
- Podría: Pertenece a las Subclases, las acciones requeridas por esta
clase pueden no ser de funcionalidad mayor dentro de la clases, es decir,
podrían o no podrían estar a.C.. Por ejemplo: El botón "Siguiente" podría
deshabilitarse a si mismo cuando se llegue a EOF().
- Quizás: No tiene lugar en la clase, es decir, cuando alguna
responsabilidad es única a una sola clase puede prescindirse, ya que no será
única a la clase. Ejemplo: tabla quizás debería estar abierta antes de que
los botones se habiliten.
- Definir la estructura, que métodos usara, propiedades, axial como también
sus valores default, etc.
Se hizo una pequeña introducción a dos conceptos básicos del OOP...
Composición:
- Es agregar objetos a contenedores dichos objetos compartirán el alcance de
la clase contenedora.
- Se agregan automáticamente a las colección del contenedor.
- Se puede realizar en tiempo de diseño para las clases visuales
- En tiempo de ejecución usar AddObject() y RemoveObject()
- Entre algunas de sus limitaciones es que no todas las clases pueden ser
contenedoras.
- Como ventaja no técnica: Es la manera mas obvia de crear clases del "Mundo
Real"
Agregación:
- Es mantener referencia a otro objeto
- Cada objeto retiene su existencia independientemente
- No hay dueños o contenedores
- Solo es en tiempo de ejecución: NewObject() y CreateObject()
- No tiene limitaciones
- Cada objeto puede mantener una referencia a cualquier otro
- El tema importante en su uso es el "Garbage Collection"
- Se deben borrar las referencias explícitamente
Un tema que fue de sumo interés fue el del Garbage Collection, este guru de VFP
explico que este método evita muchas veces los tan temidos errores C0000005, ya
que se producen al dejar referencias "muertas" hacia objetos que después
intentar librar su espacio en memoria, pero no les es posible así es como se
empiezan los problemas. Explico también que muchas veces cometemos el error
común de crear un objeto, y nunca liberar su referencia, estos errores se
acumulan y acumulan y son difíciles de revisar ya que frecuentemente nuestro
código "trabaja bien las primeras veces", así pues dio muchos ejemplos de como
trabajar pensando en la Garbage Collection, uno de ellos:
LOCAL loObject
loObject = CREATEOBJECT(lcMiClase)
....
....
loObject = NULL
RELEASE loObject
XML Webservices para desarrolladores Visual FoxPro
Presentado por: Doug Hennig
Stonefield Systems Group Inc.
Microsoft MVP VFPDebido a la importancia que ha tomado el uso de XML como
plataforma de comunicación universal entre plataformas y aplicaciones el Fox
team se ha dedicado a mejorar cada día mas el uso y manejo de XML dentro de
Visual FoxPro, en esta sesión, se mostró que tan fácil puede ser el uso de los
Wizards de XML para generar tanto Clientes como Servidores de WebServices.
Como apertura, se trato un poco de que son los WebServices:
- Un WebService XML solo es un componente almacenado en un servidor Web
- Los clientes hacen llamados a los métodos expuestos por el WebService
- SOAP es el mecanismo de transporte para las llamadas, paso de parámetros y
devolución de resultados
- Los clientes harán algo con el resultado dado.
Se nos mostró como se pueden ejecutar los distintos métodos para crear (en
primera instancia) clientes de WebServices. El método es un poco largo para
explicarlo resumidamente, pero si se puemos revisar por un mismo, como usarlo?
Simplemente utilizar el WS Handler que viene en el ToolBox, arrastrarlo a tu
formulario, botón derecho y Builder, es fácil y hasta divertido!!.
La parte de crear un servidor de WebServices no es mas difícil que eso, hasta
pareciera receta de cocina:
- Cree su COM DLL como normalmente crearía una clase, solo que a la hora de
compilar escoger MultiThread COM/DLL
- Antes de querer lanzar todo, revise que funciona localmente y sin errores
- Vaya a Tools (Herramientas) -> Wizards (Asistentes) -> WebServices
- Siga las instrucciones del Asistente, no puede ser mas fácil, como nota
adicional, debe tener instalado IIS 5.0
Obviamente todo lo anterior puede hacerse "a mano", Doug reviso rápidamente como
hacerlo, y para ser sincero, prefiero el Asistente y los Builders, ya que al
momento de escribir esto, todavía me duele la cabeza al querer acordarme de
todas las consideraciones a tomar (me estaré volviendo viejo?). Además, este MVP
lo recomienda para dar los primeros pasos después de esto, revisar el código
generado, entenderlo y cuando sea necesario, mejorarlo.
InstallFest
El evento preparado para este día fue el InstallFest, en el se invito a todos
los asistentes a que llevaran sus PCs para que les mostraran como instalar Linux
RedHat 9.1 en sus equipos. Hubo varios que pasaron a instalarlo, se presento a
las personas de la comunidad local de usuarios Linux. Fue una sesión divertida,
algunos le entraron con miedo, otros decididos a ver "Que es y como funciona", y
los demás definitivamente se negaron a instalarlo. Vea en la galería de fotos
(en cuanto este terminada) como se llevo este momento.
|