Viernes 14 de Octubre - Jornada de la tarde
PorAmby
Temas:
Las
grandes cosas de VFP 9.0 vienen en paquetes pequeños (Drew Speedie)
presentado por Andy Kramek
FoxPro ha muerto ¿Qué decir ahora? El caso de negocio para desarrollar una
nueva aplicación con FoxPro - Steven Black
Crear interfaces de
usuario útiles - Tamar E. Granor
Vuelvo a encontrarme con Andy Kramek quien ha tenido la generosidad
de presentar una de las sesiones de Drew Speedie. La otra sesión la
presentó Marcia Akins, su esposa. ¡¡ Gracias Andy y Marcia !! El trabajo de
Drew y el esfuerzo de ustedes para preparar la presentación en tiempo
record ha valido mucho la pena.
Andy Kramek nos muestra que
Las
grandes cosas de VFP 9.0 vienen en paquetes pequeños (Big VFP 9
Things Come In Small Packages) Los ejemplos fueron presentados al estilo
propio de Drew Speedie con toda la pasión puesta por Andy, ¡¡ qué
combinación !! Veamos la forma habitual de Drew para presentar sus
sesiones.
Se trata de un formulario donde se puede ejecutar y revisar el código de
los ejemplos, que además aparecen suficientemente comentados. Se pueden
ordenar por número o categoría. Esto significa que Drew tenía todos sus
tips numerados y los presentaba según fuera el tema indicado. La última
columna muestra la versión de VFP a la que corresponden.
Estamos autorizados por Andy Kramek y Russ Swall (CEO de Visionpace,
la empresa para la que trabajaba Drew Speedie -
http://www.visionpace.com) a traducir esta sesión, como tributo a tanta
dedicación y para que Drew siga siéndonos útil mucho más tiempo.
Así vemos, entre otros:
- Nueva cláusula ADDITIVE para SET PATH Por ejemplo:
"C:\Projects\MyApp\Data" ADDITIVE agrega esta ruta a la que existía ates.
- Nueva posibilidad (Buffering = <lExpr>) en la cláusula WITH de las
sentencias SQL. Esto permite especificar si la consulta creada por SELECT
SQL utilizará los registros que se encuentren en el buffer WITH
(Buffering = .T.) en lugar de físicamente en el disco. Hay algunos
detalles sobre esto, si se iguala a .F. es igual que si no se pusiera, si
la tabla no tiene asignado buffer, se ignora esta indicación.
- Las transacciones son posibles para las tablas libres y cursores
creados con CREATE CURSOR, gracias a las dos funciones nuevas:
MAKETRANSACTABLE() y ISTRANSACTABLE(). Se recomienda especial cuidado con
MAKETRANSACTABLE()
- NEWOBJECT(ClassName,ClassLibrary,0) especialmente utilizada para los
que crean frameworks y generadores ya que instancia la clase sin
necesidad de ejecutar Init y la libera sin el Destroy.
- Posibilidad de crear generadores para propiedades desde la propiedad
_MemberData y el editor de MemberData. Sobre este tema hay un
artículo de Drew Speedie traducido en PortalFox, se titula "VFP 9.0.
Mejoras en diseñador de formularios y clases" y se puede ver en:
http://www.portalfox.com/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=43
- SET COVERAGE disponible en tiempo de ejecución brinda la posibilidad
de obtener un log de los procesos ocurridos en tiempo de ejecución y es
especialmente útil cuando se desea depurar un error informado por el
usuario.
- Nuevo Explorador de datos en el Administrador del Panel de tareas. Es
una aplicación DataExplorer.APP que vemos en el directorio raíz de VFP:
Drew incluyó este punto, porque es totalmente novedoso y no se está
explotando en toda su magnitud. Por su parte, Andy recorrió las opciones
de menú , arrastró los componentes para mostrar el código que se genera y
comentó de las distintas posibilidades.
- Los campos Memo admiten sintaxis en colores. Esto ofrece muchas
posibilidades, sobre todo porque con IntelliSense se pueden extender
mucho las aplicaciones escribiendo código sobre sus campos memo y de esta
forma es mucho más legible y mejor para depurar. Lo que ocurre es que
viene desactivado por compatibilidad con versiones anteriores. Para
activarlo para todos los campos memo Herramientas-Opciones- Ficha IDE
Tipo - Campos memo y marcar la casilla Colorear la sintaxis.
- Muestra el contenido de los campos memo al desplazar el ratón sobre
ellos. Muy buena funcionalidad, ahorra mucho tiempo.
- Sobre el MENUHIT también expuso un ejemplo, aunque este tema está muy
detallado en un artículo de Doug Hennig "Extender el IDE de VFP 9 con
MENUHIT y MENUCONTEXT"
http://www.portalfox.com/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=54
- Otras mejoras son: la posibilidad de imprimir código en colores, la
nueva opción para ordenar por nombre o localización en el Visor de
documentos, y otras muchas.
Muchas gracias a Andy Kramek. Se acaba la sesión y paso a ver un tema
que me ha llamado la atención por su título, creo que esta vez no veremos
ni una línea de código. Voy a tomar algo, o más bien a buscar algo para
tomarlo en la sesión, porque, para variar, no estamos sobrados de tiempo.
Steven Black hace este planteamiento:
FoxPro ha muerto ¿Qué decir ahora? El caso de negocio para desarrollar
una nueva aplicación con FoxPro (FoxPro is dead! Now what do I say?
The Business case for developing a new application using FoxPro)
Pues bien, lo primero es examinar ¿Qué es un caso de negocios?
Un caso de negocios es la identificación y el análisis cualitativo y
cuantitativo de las necesidades del negocio, las oportunidades, objetivos a
alcanzar, costos, beneficios y riesgos, sensibilidad a factores externos,
estimados de la inversión, tiempo de desarrollo, recuperación de la
inversión, etc.
Lógicamente propondremos Visual FoxPro como herramienta de desarrollo;
pero ... ¿en qué nos basamos para fundamentar nuestra propuesta? Aquí
tendremos las respuestas. Steven Black ha basado su disertación en 4
categorías: aspectos fundamentales en los que debemos ganar, puntos en los
que esperamos ganar, aspectos complicados; pero en los que probablemente
vamos a ganar, aspectos en los que no vamos a ganar
Entre los aspectos en los que debemos ganar están: Nuestra calidad como
desarrollador, hacer el caso técnico para VFP, dar solución a cualquier
aspecto complicado de VFP y disponer de experiencias y habilidades.
Entre los que esperamos ganar están: Educar a nuestros usuarios sobre
VFP, evaluar los riesgos de la herramienta de desarrollo, costos de
licencia, madurez del producto, apoyo de la comunidad y de los compañeros,
ciclo de vida previsto para el VFP, interoperabilidad, y otros.
Aquí se detiene a hablar de los riesgos que conlleva una nueva
aplicación y como vienen indisolublemente ligados al tiempo. Steve Black
emplea varios modelos de riesgos en los que vamos descubriendo como VFP se
encuentra en posición privilegiada por la menor cantidad de riesgos y menos
influencia de los mismos en el resultado final. ¡¡ Interesantísimo !! Si
necesitamos ampliar un poco sobre estos temas, ver:
Pero ... lo más probable es que el usuario no haya escuchado nada sobre
VFP, Microsoft no le ha comentado, así que es usted quien lo debe educar.
Aquí vamos a abarcar tres aspectos fundamentales:
Producto - Los aspectos son: Entorno de desarrollo Windows, no requiere
de licencias a nivel de usuario final, es un lenguaje de programación muy
completo y expresivo, es muy cómodo para conectar con los orígenes de
datos, tiene un control nativo de registros, hay muy pocas diferencias
entre los entornos de desarrollo y de producción, compatible hacia atrás
... hasta el lejano 1985.
Personalidad - VFP es rápido, es una herramienta sólida, madura, orientada
a objetos, centrada en datos, muy extensible. Es una herramienta que se
actualiza; pero sin perder las cualidades anteriores.
Promesas - Usted, el desarrollador, será mucho más productivo. Tendrá el
apoyo de sus compañeros. Generará con VFP, mucho más rápido que con
cualquier otra herramienta, una aplicación fuerte, estable, centrada en
datos. Aunque ... cuente también conque no será apoyado por Microsoft,
probablemente habrá quien le ridiculice por utilizar esta herramienta y no
recibirá el respeto de la prensa.
Además, .... sepa que no va a ganar una discusión sobre la
vulnerabilidad de los archivos DBF, (solucionable con VFP + SQL Server) ni
sobre la programación para dispositivos móviles y ni con aquellos que
aplican la política de Microsoft de vivir con la última tecnología.
En fin que hay que conocer las necesidades del usuario, conocer la
fuerza de VFP, no desgastarse ante las debilidades de VFP y ser conscientes
de que "Utilizar VFP" significa "Tener una relación de negocios conmigo"
¡¡ WOW !! Como dicen en España, se puede decir más alto; pero no más claro.
Se ha creado un debate espontáneo sobre diferentes experiencias que
han tenido los presentes con obstáculos que se les ha presentado al tratar
de emplear VFP como herramienta de desarrollo. Parece como si nadie
quisiera ser el primero en levantarse. Es un tema que da para mucho. Todos
hemos salido muy complacidos. Steve Black ha expuesto de forma magistral
los "muchos pro" y los "algunos contra" que tiene el empleo de Visual
FoxPro. Me parece de gran importancia este trabajo, nos va a permitir
responder a muchas preguntas y ataques que recibimos de la gente que no
tiene ni idea del VFP.
Dice Steve que al Fox solo lo conocen los foxeros y es verdad. Le
pido a Steve Black que nos autorice a traducirlo. Y lo ha hecho... y es más
... ha prometido enviarnos también otra presentación que está preparando
sobre este tema. Esto es lo que se llama en inglés un "Bonus Track", ¡
Gracias Steve ! Ha estado verdaderamente genial, estoy impresionada. Me ha
gustado que ha dicho "No hay que disculparse por usar Visual FoxPro, de
hecho hemos escogido la mejor opción". Varios gurús en sus memorias sobre
este encuentro se han referido a esta presentación dándole una altísima
valoración. Ver la opinión de Andy Kramek en:
http://weblogs.foxite.com/andykramek/archive/2005/10/19/950.aspx
Pues queda otra sesión, la última de la tarde. Hoy habrá una sesión
extra en la noche dedicada a Drew Speedie. Pero antes, nos vamos con Tamar
Granor, a ver código de VFP, consejos de diseño, trucos, sugerencias, allá
vamos.
Esta presentación es muy interesante, Tamar E. Granor nos va a
desvelar ideas para Crear
interfaces de usuario útiles Creating Helpful User Interfaces
Tamar nos pregunta, ¿Cómo podemos definir una interfaz de usuario útil?
y allá vamos: lo más simple posible, empleando controles de teclado rápido,
intuitiva (aquí nos dijo Tamar que le encantaba esa palabra, que la
interfaz de Windows no lo es y todos la utilizamos), familiar... Eso !!!
Uno de los secretos del éxito de Windows es que su interfaz nos es
familiar, independientemente de la aplicación donde nos encontremos. Eso es
bueno, porque nos podemos orientar rápidamente sobre dónde estén las
opciones que buscamos. ¡ Eso es una interfaz de usuario útil !
Algunas de las ideas para crear interfaces útiles son:
- Auto completar en textos. Antes de VFP era muy difícil, había que
estar inventando; pero VFP 9.0 ha solucionado ese tema. Por cierto que
podemos ver ejemplos y explicaciones detalladas sobre cómo implementar
esta funcionalidad en los artículos
http://www.portalfox.com/article.php?sid=1909 y
http://www.portalfox.com/article.php?sid=1265
- Llenado rápido. Según Tamar, es el primo hermano del autocompletar.
Muy bueno para utilizar en combos. Por una parte va mostrando las teclas
que estamos escribiendo, mientras por otro, con otro color, va mostrando
la propuesta en dependencia de los datos que guarda, como en el ejemplo
siguiente:
De momento, no hay un comportamiento nativo para esto, Tamar propone
emplear el método KeyPress para ir examinando lo que ya hemos escrito y
el contenido del origen de datos que se está utilizando. Hay que
determinar si se acaba de oprimir una tecla de inicio (En este ejemplo,
la R) o una tecla que da continuidad a una palabra o frase (por ejemplo
la "u" o cualquier otra, menos la R inicial), para buscar por toda la
cadena que tenemos guardada en algún sitio y limpiamos al paso de un
tiempo o si buscamos el primer elemento solamente.
-
Fácil
manipulación de fechas. En este caso Tamar menciona una aplicación muy
común, al parecer, en EEUU para llevar las cuentas bancarias, los gastos,
etc. Se llama "Intuit's Quicken ", casi todos dijeron que la utilizan, en
fin ... a lo que vamos, el caso es que en la fecha, específicamente en el
mes te admite 5 para mayo, 05 para mayo m para March o May... en fin...
que te da muchas oportunidades. Y eso está bien. Además permite el empleo
de las teclas de movimiento + y - y por supuesto se puede utilizar la
forma tradicional de escribir la fecha ... ah y si se oprime una T (Today
= Hoy) en el día pone la fecha (día+mes+año) de la fecha actual. Tamar ha
escrito una clase para ello, basada en la clase acxDTPicker publicada por
Marcia Akins en "MegaFox: 1002 Things You Wanted to Know about Extending
Visual FoxPro." La figura a la derecha muestra la apariencia final de
esta clase.
- Menús adaptables que mantengan activas sólo las opciones más
utilizadas. Veamos estas dos imágenes, ¿Cuál prefieres?. De nuevo se creó
el debate y esto es a gusto del consumidor, tanto es así que Tamar
propone que pongamos esta opción parametrizable en nuestras aplicaciones
para que el usuario determine si quiere ver el menú en su totalidad o
solo aquellas n (también configurable). Para algunos esta versión
reducida es mejor, porque elimina todo lo que no empleamos con
frecuencia, y para otros, la mejor idea es la imagen de mas abajo, porque
siempre sabemos en qué lugar dentro de la pantalla se encuentra la opción
y no hay que estar buscando.


Bien, pues en VFP 7.0 al comando DEFINE BAR se agregaron las cláusulas
MRU e INVERT; pero el Generador de menú no lo admite de forma nativa.
Tamar se basó en el estudio del ejemplo ("Add personalized menus") de
los Ejemplos Solution (se pueden ver desde el Administrador del Panel de
tareas o DO HOME()+'\Samples\Solution\Solution.app' desde la ventana de
comandos). Luego, Tamar empleó todo su ingenio y obtuvo un generador
GenMenuX.
En su idea creó un elemento de menú con MRU (las flechitas), se
expande sólo si hace clic sobre este elemento o se pasa el ratón sobre
el.

Esta sesión no la podemos traducir; pero no quise desaprovechar la
oportunidad de mostrar estas ideas. Es muy importante aceptar que muchas
veces los errores que cometen los usuarios se podrían solucionar brindando
mejores diseños de interfaces de usuario. Gracias Tamar, ha estado
interesante.
Bueno, pues, terminamos hoy las sesiones ... nos estamos reuniendo en
los pasillos para ir a cenar. Esparta me cuenta que ha dedicado la tarde a
sesiones con Calvin Hsia y Ken Levi, por su entusiasmo parecen haber estado
muy interesantes. Aun no termina la jornada, es temprano aun ...mi dolor
de cabeza que no me quiere abandonar ... por suerte, Vera está mejor
preparada y me alcanza, un vaso de agua y un par de Tylenol ... Estamos
todos los latinos y Vera, cenamos otra hamburguesa para variar... pues ya
está!!. Listos para lo que queda de jornada.
Nos vemos en la próxima entrega, Reporte de la Conferencia Southwest
Fox 2005 - Día 14 de Octubre - Sesión dedicada a Drew Speedie.
Saludos,
Ana
www.amby.net
|