GLGDW 2003
Inicio

KeyNote

Domingo 12/10

Lunes 13/10

Martes 14/10

Miércoles 15/10

 

... a Conferencias

 
Anuncios




 
© PortalFox

GLGDW 2003

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 VFP

Debido 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.

 

 




Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2007 PortalFox. Todos los derechos reservados.