ShouthwestFox
Inicio

PreConferencia

Encuentros

Vie 14 Mañana

KeyNote

Vie 14 Tarde

Drew Speedie

Sáb 15 Mañana

Sáb 15 Tarde

Dom 15 Mañana

Galerías

... a Conferencias

 
Anuncios






 
© PortalFox

Southwest Fox 2005

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

 


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.