Las Novedades de Visual FoxPro 7.0
Redacción de FoxPress
Si en el
número de Marzo de esta revista comentábamos
las novedades de VB 7.0 ahora le toca el turno a las novedades de VFP
7.0
Un adelanto de esas novedades ya salió en la
lista de correo del FoxBoard de Junio de 1999 pero poco a poco van surgiendo
nuevos datos que complementan esa información:
1.- El producto se integra más en el Visual
Studio, de hecho podrás crear nuevos proyectos Fox desde el IDE de Visual
Studio.
Esto no es más que un paso más en la
estrategia de integración de los productos. Microsoft sigue el mismo camino que
siguió con el Office. En la actualidad Microsoft vende el Office y no los productos sueltos (Word, Excel, etc...)
Lo que Microsoft llama DNA no es más que la
implementación en su estructura de productos del desarrollo en tres capas. Una
de las premisas de ese tipo de desarrollos es que una capa realizada con una
herramienta de desarrollo puede dialogar con otra capa o componente realizado
con otra herramienta: el hecho de que estés trabajando en el mismo IDE con
todas las herramientas del Visual Studio
te permitirá coger la herramienta más interesante en cada caso.
2.- El Depurador de Visual Studio se podrá
llamar desde dentro del Fox y así podremos
depurar un objeto realizado en VB y viceversa (en VB depurar un objeto Fox). Si
has trabajado con COM ya sabrás las dificultades de depuración que tienen.
1.- Muchas
de las ventanas son ahora anclables
(ventana de órdenes, ventana de
entorno de datos, etc...) y anclables entre sí.
2.- El
depurador es también anclable con la posibilidad de que se muestre en una
ventana con pestaña al estilo de la que te sale cuando pulsas CTRL+ALT+SUPR con
una pestaña para cada una de las opciones.
3.- El editor
de programas y métodos tiene una línea gris vertical a la izquierda en la que
podrás establecer puntos de ruptura.
4.- Podrás
Iluminar una palabra en un editor y con una tecla rápida (CTRL+ F3) buscar
otras incidencias de la misma palabra.
Con soporte de comodines.
5.- Se
pueden ver espacios en blanco, tabuladores, etc.. en los editores de programas
y métodos con la opción "View Code". Esto que parece una tontería es
muy interesante cuando copias y pegas código que viene de Internet pues muchas
veces mete caracteres no legibles por el Fox que hace que los programas fallen
y tardas un tiempo en localizar cual es el problema que está haciendo que un
código muy sencillo y bien escrito esté fallando.
8.-
Hyperlinks en comentarios.
9.- Para
editar una página de un pageframe no tendrás que pulsar con el botón derecho
del ratón y buscar la opción de editar
pues habrá una tecla rápida que permitirá hacer eso.
10.-
Cierre de paréntesis. No tendrás que contar cuantos parámetros te faltan para
cerrar un paréntesis: VFP te lo dirá.
11.- Un
parámetro de TIMEOUT añadido a la función Messagebox()
12.-
Intellisense como en VB pero mejor. Si escribes USE se te mostrarán las tablas
recientemente usadas, o las tablas de la Base de Datos.
13.- La
ventana de Procedimientos/funciones se sustituye por una ventana sin modo.
14.-
Word-wrap en las cabeceras del Grid.
15.-
Colores alternativos en las propiedades de la ventana de propiedades.
16.-
Mejora de las teclas rápidas: escribiendo MC (Modif Command) se te abrirá un
nuevo .PRG, etc... y podrás configurarlo a tu gusto. MRU mostrará los
formularios más recientemente
utilizados.
1.- Incorpora un Driver OLE DB para Fox (no el
genérico ODBC que se usa ahora)
Este driver te permitirá una mejor integración
con OLE/DB sobre todo a la hora de acceder a informaciones no estructuradas y
una mejor integración con el ADO, sus recordsets, generación de XML, etc...
El Driver controlará los eventos del DBC.
También y muy importante en
este campo es que podrás ponerle al driver OLE_DB de VFP un proveedor hecho con
VFP (con lo que puedes hacer
proveedores para OLE_DB)
2.- Hay una nueva Splash Screen
(pantalla de logotipo de entrada de tus aplicaciones) con un timeout que se carga inmediatamente que el
usuario hace click sobre el producto. Es muy útil pues sale muy rápidamente sin
que se tenga que cargar toda la runtime y
no haga dudar al usuario sobre la conveniencia de volver a pulsar en el
icono de la aplicación.
1.- Los nuevos COM de Fox implementarán interfaces. Los interfaces, en el lenguaje
de
Microsoft, no son pantallas sino que desde dentro de una clase de un COM puedes
llamar a otra clase de otro COM que está en otro fichero.
2.- Soporte de Eventos COM+ para diálogos entre aplicaciones COM. Por
ejemplo, para dialogar con ADO y saber si el contenido de un campo ha cambiado.
3.- Aunque no figura en el documento parece que los COM soportarán el
COM+, Component Sharing.
4.- Parece que no hay planes de incorporar los FREE Thread. La versión
6.0 +SP3 ya soporta múltiples Thread pero los crea la propia aplicación (tú no
los gestionas). Incorporar FREE Thread te permitiría decidir por programa
cuando lanzar los thread. De momento parece que no hay planes para esto.
5.- Soporta lo que llaman strong typing que te permite en tiempo de diseño cargar en una variable un objeto y que se te vayan mostrando las diversas propiedades y métodos de ese objeto a medida que vas escribiendo. Puedes escribir lo siguiente:
LOCAL oExcel AS excel.application
oExcel.visible=.t. (Intellisense te dará un popup con las opciones disponibles
del oExcel. )
Mejoras en la Base de Datos
1.-La Base de Datos soportará
Eventos. La lista es muy larga, pero
adjunto los más representativos:
BeforeModifyProc (y AfterModifyProc)
BeforeDropRelation (y After..., etc)
BeforeRemoveTable
DBC_Closedata
DBC_Deactivate
Esto te permitirá por ejemplo encriptar y desencriptar tablas según los
privilegios de los usuarios, enterarte cuando se abre una tabla, etc... Tienes
métodos como "AfterOpenTable" ó "BeforeModifyTable" con lo
que puedes hacer que al abrir una tabla automáticamente te haga un browse y en
otra ventana otro browse del memo...
a partir de aquí puedes dejar volar tu imaginación.
2.- Un interesante
INPUTBOX(...) dentro de las vistas parametrizadas nos permitirá recibir una
cadena de texto cuando el usuario haga algún cambio, con un tiemout.
Interesante novedad a la que hay que seguirle la pista.
1.- Los menues se mejoran para incorporar iconos y personalización como
en Office 2000 y Win 2000. (se levantan cuando el ratón pasa por encima de ellos)
Funciones
1.- Ahora los cursores son actualizables. Tendrás la opción de READWRITE en el SELECT
SELECT * FROM MiTabla INTO CURSOR MiCursor READWRITE
2.- Podrás sobreescribir una cadena
de conexión con otra en una Vista Remota con la nueva cláusula "CONNSTRING"Asi:
USE MyRemoteView CONNSTRING
"Driver=... blah, blah"
3.- Una nueva función para el
tratamiento de Array’s te permitirá recoger toda la información de los índices
de una tabla
ATAGINFO(MyArrayName, "MyTable.cdx")
4.- BROWSE NOCAPTION te mostrará
los nombres de los campos, no los que figuran en el DBC.
5.- SYS(3054) te dará información sobre la optimización de los
filtros, los join y el rushmor.
6.- ASCAN(...) soporta un
parámetro para indicar la columna del Array que se desea que se escanee, con la
opción de que sea sensible a mayúsculas o no.
7.- ASORT(...) también incorpora
un flag para ser sensible a mayúsculas.
8.- GETDIR() podrá añadir
nuevas carpetas, se le podrá añadir un menú al botón derecho y será
redimensionable.
9.- La cantidad de polémicas que
ha dado el DISKSPACE() que se ha ‘arreglado’ para que lea bien la información
con discos duros de gran tamaño o con formatos NTFS.
10.- OS() dará más información sobre la versión en la que
está corriendo la aplicación como:
Service Pack, Win 2000 Professional, Server, Advanced Server, Terminal Server,
etc.
11.- Nuevas formas de crear
cadenas HTML o XML, o foxscript
mediante nuevas cláusulas añadidas a:
TEXT/ENDTEXT:
TEXT TO cMiString NOSHOW TEXTMERGE
.... HTML aquí ....
ENDTEXT
Esto te permite nuevas formas de crear páginas HTML ó XML sin tener que acudir a los ‘pesadicos’
+CHR(13)+CHR(10).
12.- Algo muy similar en el SET
TEXTMERGE TO MEMVAR cMiString NOSHOW.
13.- La función
EXECSCRIPT(cMyString) ejecutará el código de la cadena que tiene dentro de los
paréntesis. Es la misma funcionalidad que seleccionar una líneas en la Ventana
de órdenes, hacer click con el botón derecho y Ejecutar pero disponible para
usarlo por programa.
14.- APROCINFO(aMyArray,
"genmenu.prg") creará un array con 4 columnas, dos de las cuales son
Nombre del Procedimiento y Número de Línea.
15.- EDITSOURCE(nShortcutID |
cFileName [,nLine] [,cClassName] [,cProcName]) te abrirá el editor con el
programa abierto en una línea concreta, o en un procedimiento o en una clase.
16.- Todos los que han sufrido con los Grid y en concreto con el AfterRowColChange la gozarán al saber que se incorpora una nueva propiedad llamada RowColChange que contendrá un valor numerico indicando qué es lo que ha cambiado:
0 - nada
1 - fila
2 - columna
3 – fila y columna
Esta es una de esas novedades que justificaría por sí misma cambiarse a esta versión.
17.- Todos los formularios, incluidos los
"_screen", tiene ahora una nueva propiedad
identificadora del Hadle de la ventana.
18.- ADLLS(aMyArray) construirá un
Array con información sobre la dll que se ha declarado.
19.- ALANGUAGE(aMyArray, nOption)
te cargará un Array con información según la opción que se especifique:
1 - comandos
2 - funciones, con número de parámetros
3 – clases
base
4 – Eventos del DBC
20.- No te has peleado algún vez con el API de Windows... ¡Pues mira esto!
PROCEDURE MyProc(cParam1 AS String,
nParam2 AS Number @) AS Boolean
El valor de retorno puede ser Boolean, String, o de cualquier otro tipo
incluido AS VOID para indicar que el valor NULL es Correcto. El tipo VOID se
necesita para los componentes COM+
Queued Component.
21.- El VFPCOM.DLL queda integrado dentro de la Runtime. Si no lo sabes Microsoft liberó un código que permite convertir cursores a Recordsets y vicebersa y también capturar eventos de los COM que ahora ha sido integrado dentro dentro de la runtime
Que no tiene ó no hemos visto
No poder vincular un recodset a un Grid (por ejemplo) de la misma forma que
ahora vinculas una tabla en el entorno de datos.
Las menciones a lo que Microsoft llamó, cuando presentó Visual Basic, Servicios Web son muy vagas y genéricas .
Da la impresión de que el InterDev (que sigue sin aparecer por ningún
lado), cuando te decidas a crear una aplicación Web, será el que cree de forma
automática (sin que te enteres de que lo usas) las pantallas en formato HTML.
El COM hecho en Fox o cualquier otro lenguaje que da soporte a ese formulario
pasaría a llamarse Servicio Web. Da la impresión de que más que un Conversor de
formularios a HTML (como ahora) sería un auténtico generador (una segunda
generación). De todos modos, cuando al equipo de desarrollo se le preguntó
sobre los Servicios Web contestaron que seguramente, en esta versión, no les
dará tiempo a incorporar todas las funcionalidades que incorporará Visual Basic
pero sí que podrían incorporar algunas.
Pero lo mejor es...
Y lo mejor.... Es que todavía les queda un año de trabajo para ir 'metiendo' nuevas features pues las que hemos comentado ya están incorporadas y funcionando.
¿Cuáles serán esas nuevas opciones que se incorporarán? No se sabe, pero sí que irán en la línea de integrarlo con el COM+, MSMQ, adaptaciones al Win2000, mejor gestión de threads y nuevas funcionalidades en la sintaxis tradicional para adecuarse a las necesidades de Internet.
De momento,
las cosas que se conocen ya son un cúmulo de mayores novedades que las que
aportó VFP 6.0 sobre VFP 5.0 y algunas cosas como el driver OLE DB ó los
cursores actualizables, ó un evento en el Grid que te avise de los cambios en
las filas o columnas ya justifica de por sí el ‘pasarse’ a esta futura versión.
FoxPress – Junio de 2000
© 1993-2000 FoxPress. All rights
reserved