Articulo de referencia

Visual FoxPro

{{cite web|title=Visual FoxPro 9.0 Updates|url=http://www.microsoft.com/en-us/download/details.aspx?id=13959|work=Visual FoxPro Developer Center|publisher=Microsoft|access-date=...

Visual FoxPro es un lenguaje de programación desarrollado por Microsoft . Es un lenguaje de programación procedimental y centrado en datos , con características de programación orientada a objetos (POO).

Se derivó de FoxPro (que a su vez descendía de FoxBASE), desarrollado por Fox Software a partir de 1984. Fox Technologies se fusionó con Microsoft en 1992, tras lo cual el software adquirió más funciones y el prefijo "Visual". [ 5 ] FoxPro 2.6 funcionaba en Mac OS , DOS , Windows y Unix .

Visual FoxPro 3.0, la primera versión "Visual", limitó la compatibilidad a plataformas Mac [ 6 ] y Windows, y las versiones posteriores 5, 6, 7, 8 y 9 solo estaban disponibles para Windows. La versión actual de Visual FoxPro se basa en COM y Microsoft ha declarado que no tiene intención de crear una versión para Microsoft .NET .

La versión 9.0, lanzada en diciembre de 2004 y actualizada en octubre de 2007 con el parche SP2, fue la versión final del producto. El soporte finalizó en enero de 2010 y se extendió en enero de 2015. [ 7 ]

Historia

Visual FoxPro se originó como un miembro de la clase de lenguajes comúnmente conocidos como lenguajes " xBase ", cuya sintaxis se basa en el lenguaje de programación dBase . Otros miembros de la familia de lenguajes xBase incluyen Clipper y Recital (base de datos).

Visual FoxPro, comúnmente abreviado como VFP, está estrechamente integrado con su propio motor de base de datos relacional, que amplía las capacidades de xBase de FoxPro para admitir consultas SQL y manipulación de datos. A diferencia de la mayoría de los sistemas de gestión de bases de datos , Visual FoxPro es un lenguaje de programación dinámico y completo que no requiere el uso de un entorno de programación de propósito general adicional. Puede utilizarse para escribir no solo aplicaciones tradicionales de cliente pesado , sino también middleware y aplicaciones web .

A finales de 2002, se demostró que Visual FoxPro podía ejecutarse en Linux bajo el paquete de compatibilidad Wine para Windows. En 2003, esto provocó quejas por parte de Microsoft: se alegó que la implementación del código de tiempo de ejecución de FoxPro en máquinas que no fueran Windows infringía el Acuerdo de Licencia de Usuario Final . [ 8 ]

Visual FoxPro tuvo un rápido ascenso y caída en popularidad según lo medido por el Índice de la Comunidad de Programación TIOBE . [ 9 ] En diciembre de 2005, VFP entró por primera vez en el top 20. En junio de 2006 alcanzó su punto máximo en la posición 12, lo que lo convirtió (en ese momento) en un lenguaje "B". A mayo de 2025 Visual FoxPro ocupa la posición 29 en el índice TIOBE. [ 10 ]

En marzo de 2007, Microsoft anunció que no habría VFP 10, [ 11 ] convirtiendo así a VFP9 (lanzado a fabricación el 17 de diciembre de 2004) en el último lanzamiento comercial de VFP de Microsoft. El Service Pack 2 para Microsoft Visual FoxPro 9.0 se lanzó el 16 de octubre de 2007. [ 12 ] El soporte para la versión 9 finalizó el 13 de enero de 2015. [ 7 ]

En el momento del anuncio del fin de vida útil, el trabajo en la siguiente versión, cuyo nombre en clave era Sedna (en honor a un planeta enano descubierto recientemente ), que se construyó sobre el código base de VFP9, ya había comenzado. "Sedna" es un conjunto de complementos para VFP 9.0 de componentes xBase para admitir varios escenarios de interoperabilidad con diversas tecnologías de Microsoft, incluyendo SQL Server 2005, .NET Framework , Windows Vista, Office 2007, Windows Search y Team Foundation Server (TFS). Microsoft publicó Sedna bajo la licencia de código fuente compartido en el sitio CodePlex . Microsoft ha aclarado que el núcleo de VFP seguirá siendo de código cerrado. Sedna se publicó el 25 de enero de 2008. [ 13 ] A partir de marzo de 2008, todos los componentes xBase de VFP 9 SP2 (incluido Sedna) estaban disponibles para el desarrollo de la comunidad en CodePlex.

A finales de marzo de 2007, la comunidad hispanohablante de FoxPro inició una campaña popular en MásFoxPro [ 14 ] ("MoreFoxPro" en inglés ) para firmar una petición a Microsoft para que continuara actualizando Visual FoxPro o lo liberara a la comunidad como software de código abierto . El 3 de abril de 2007, la prensa técnica se hizo eco del movimiento. [ 15 ]

El 3 de abril de 2007, Microsoft respondió a la petición con esta declaración de Alan Griver: [ 15 ]

"Somos muy conscientes de la comunidad de FoxPro y eso influyó mucho en lo que anunciamos el 13 de marzo. Nunca es una decisión fácil anunciar que no vamos a lanzar otra versión de un producto y es una decisión que consideramos con mucho cuidado."

No estamos anunciando el fin de FoxPro: obviamente, las aplicaciones de FoxPro seguirán funcionando. Según algunas de nuestras estimaciones internas, hay más aplicaciones ejecutándose en FoxPro 2.6 que en VFP, y FoxPro 2.6 lleva muchos años sin soporte. Microsoft seguirá ofreciendo soporte para Visual FoxPro 9 hasta 2015.

Para que Microsoft continúe desarrollando la base de FoxPro, necesitaríamos crear un entorno de desarrollo de 64 bits, lo que implicaría una reescritura casi completa del producto principal. También hemos invertido en la creación de una base de datos escalable con SQL Server, incluyendo la edición gratuita SQL Server Express Edition. En cuanto a la posibilidad de asociarnos con un tercero, varios clientes importantes de FoxPro nos han comentado que esto les impediría seguir utilizando FoxPro, ya que dejaría de ser un proveedor homologado. Consideramos que publicar el entorno como código abierto en CodePlex , lo que equilibra las necesidades tanto de la comunidad como de los grandes clientes, era la mejor opción.

Cronología de versiones

Todas las versiones enumeradas son para Windows. [ 16 ]

Ejemplos de código

El lenguaje FoxPro contiene comandos bastante similares a otros lenguajes de programación como BASIC.

Algunos ejemplos de sintaxis básica:

PARA i = 1 a 10 x = x + 6.5 SIGUIENTE && En lugar de "SIGUIENTE" también se puede usar "FIN PARA"SI i = 25 i = i + 1 SINO i = i + 3 FIN SIx = 1 HACER MIENTRAS x < 50 x = x + 1 FIN HACERx = 1 HACER MIENTRAS .T. x = x + 1 SI x < 50 BUCLE SINO SALIR FIN SI FIN HACERnMes = MES ( FECHA ()) HACER CASO CASO nMes <= 3 CUADRO DE MENSAJE ( "Q1" ) CASO nMes <= 6 CUADRO DE MENSAJE ( "Q2" ) CASO nMes <= 9 CUADRO DE MENSAJE ( "Q3" ) DE LO CONTRARIO, CUADRO DE MENSAJE ( "Q4" ) FIN DE CASOPARA CADA o Control EN ESTE FORMULARIO .Controles MESSAGEBOX (o Control .Name ) FIN PARAf = Factorial(10) FUNCIÓN Factorial(n) LOCAL i, r r = 1 PARA i = n HASTA 1 PASO -1 r = r * i SIGUIENTE && También se puede usar "FIN PARA" aquí en lugar de "SIGUIENTE" DEVOLVER r FIN FUNCIÓN

Ejemplos de "Hola Mundo":

* ¿Salida en la ubicación actual ? "Hola Mundo"* Salida en una ubicación específica @ 1,1 DI "Hola Mundo"* Salida en una ventana separada, borrada al introducir WAIT WINDOW "Hola Mundo"* Salida en un cuadro de diálogo estándar, borrado al aceptar MESSAGEBOX ( "Hola Mundo" ) 

Objeto

Salida del programa Hola Mundo .
* Salida en una ventana definidaloForm = CREATEOBJECT ( "HiForm" )loForm . Mostrar ( 1 )DEFINIR CLASE HiForm COMO FormularioAutoCentro = . T .Leyenda = "Hola, mundo"AÑADIR OBJETO lblHi como etiqueta ;CON Leyenda = "¡Hola, mundo!"FIN DEFINIR
loMine = CREAROBJETO ( "MiClase" ) ? loMine.cProp1 && Esto funcionará. (El doble ampersand marca un comentario de fin de línea)? loMine.cProp2 && Error de programa: No se encuentra la propiedad CPROP2 porque está oculta externamente.? loMine.MyMethod1() && Esto funcionará.? loMine.MyMethod2() && Error del programa: No se encuentra la propiedad MYMETHOD2 porque está oculta externamente.DEFINIR CLASE MyClass COMO PersonalizadacProp1 = "Mi propiedad" && Esta es una propiedad públicaOCULTO cProp2 && Esta es una propiedad privada (oculta)dProp3 = {} && Otra propiedad públicaPROCEDIMIENTO Init() && Constructor de claseEste .cProp2 = "Esta es una propiedad oculta."PROCEDIMIENTO dProp3_Access && Property GetterRETURNDATE() PROCEDURE dProp3_Assign(vNewVal) && Property Setter uses the "_assign" tag on the property nameIFVARTYPE(vNewVal) = "D"THIS.dProp3 = vNewVal ENDIFPROCEDURE MyMethod1() * This is a public method, calling a hidden method that returns* the value of a hidden property.RETURNThis.MyMethod2() HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) methodRETURNThis.cProp2 ENDDEFINE
  • VFP has an extensive library of predefined classes and visual objects which are accessed in the IDE by a Property Sheet (including Methods),[17] so code such as the above defining classes and objects are only needed for special purposes and the framework of large systems.

Data handling

The language also has extensive database manipulation and indexing commands. The "help" index of commands in VFP 9 has several hundred commands and functions described. The examples below show how to code the creation and indexing of tables, however VFP has table and database builder screens which create the tables and indexes without making you write code.

Output of the Data handling program.
* Create a tableCREATE TABLE randData (iData I) * Populate with random data using xBase and SQL DML commandsFOR i = 1 TO 50 APPEND BLANK REPLACE iData WITH (RAND() * 100) INSERT INTO randData (iData) VALUES (RAND() * 100) ENDFOR* Place a structural index on the dataINDEX ON iData TAG iData CLOSE DATA && Do not close open libraries etc* Display ordered data using xBase-style commandsUSE randData SET ORDER TO iData LOCATE&& In place of GO TOP. Enforces use of index to find TOP LIST NEXT 10 && First 10GO BOTTOM SKIP -10 LIST REST && Last 10CLOSE DATA * Browse ordered data using SQL DML commandsSELECT * ;FROM randData ;ORDER BY iData DESCENDING 

ODBC access using SQL passthrough

PRIVATE cAuthorID, cAuthorName && Private variables supplant any previous global or private variable of the same nameLOCAL nHnd, nResult && Las variables locales solo son visibles aquí.* Conectarse a una fuente de datos ODBCnHnd = SQLCONNECT ( "ODBCDSN" , "usuario" , "contraseña" ) * Introducir un bucle para poder salir al código de cierre de conexión si hay un error.HACER MIENTRAS .T.* Ejecutar un comando SQLnResultado = SQLEXEC (nHnd, "USE master" ) SI nResultado < 0 MESSAGEBOX ( "¡La base de datos MASTER no existe!" ) SALIR && Para cerrar la conexiónFIN SI* Recupera datos del servidor remoto y los almacena en un cursor de datos local.nResultado = SQLEXEC (nHnd, "SELECT * FROM authors" , "QAUTHORS" ) SI nResultado < 0 MESSAGEBOX ( "¡No se puede ejecutar el comando SQL SELECT remoto!" ) SALIR && Para cerrar la conexiónFIN SI* Actualizar un registro en una tabla remota usando parámetroscAuthorID = "1001"cAuthorName = "Nuevo nombre"nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID" ) SI nResultado < 0 MESSAGEBOX ( "¡No se puede ejecutar el comando SQL UPDATE remoto!" ) SALIR && Para cerrar la conexiónFIN SI* Si llegamos aquí, habremos recuperado todo correctamente.SALIDA && Salida incondicionalENDO* Cerrar la conexiónSQLDISCONNECT (nHnd) 

Bibliografía

  • Akins, Marcia; Kramek, Andy; Schummer, Rick (junio de 2000). Hosier, John (ed.). 1001 cosas que siempre quisiste saber sobre Visual FoxPro . Milwaukee: Hentzenwerke Publishing. ISBN 0-96550-933-8.
  • Chazottte, Kenneth (marzo de 2004). Johnston, Joe (ed.). Cree su propio marco de trabajo con Visual FoxPro . Milwaukee: Hentzenwerke Publishing. ISBN 1-930919-53-0.
  • Granor, Tamar E; et  al. (Abril de 2002). Guía del hacker para Visual FoxPro 7.0 . Milwaukee: Editorial Hentzenwerke. ISBN 1-930919-22-0.

Véase también

Referencias

  1. "Actualizaciones de Visual FoxPro 9.0" . Centro para desarrolladores de Visual FoxPro . Microsoft . Consultado el 7 de junio de 2013 .
  2. "Descargar Microsoft Visual FoxPro 9.0 Service Pack 2.0" . Centro de descargas . Microsoft. 16 de octubre de 2007. Consultado el 7 de junio de 2013 .
  3. "Requisitos del sistema" . Centro para desarrolladores de Visual FoxPro . Microsoft . Consultado el 7 de junio de 2013 .
  4. "Preguntas frecuentes" . Centro para desarrolladores de Visual FoxPro . Microsoft . Consultado el 7 de junio de 2013 .
  5. Pollack, Andrew (25 de marzo de 1992). "Microsoft intentará entrar en un nuevo mercado adquiriendo Fox Software" . The New York Times . pág. D1. 
  6. Microsoft Visual FoxPro 3.0 para Power Macintosh ya está disponible , 25 de julio de 1996, news.microsoft.com
  7. 1 2 "Microsoft Visual FoxPro 9.0" . learn.microsoft.com .
  8. Visual FoxPro para Linux: ¿Una violación del EULA?, 13 de mayo de 2003, por Ed Leafe, Linux Journal
  9. Historial del índice Tiobe para FoxPro
  10. "Índice | TIOBE - la empresa de calidad de software" .
  11. Un mensaje a la comunidad
  12. Microsoft Visual FoxPro 9.0 Service Pack 2.0
  13. Descarga de Microsoft SEDNA
  14. Más FoxPro - Visual FoxPro Wiki
  15. 1 2 Los desarrolladores solicitan a Microsoft que reconsidere la eliminación gradual de FoxPro Publicado por Mary Jo Foley (3 de abril de 2007) - Todo sobre Microsoft - ZDNet.com
  16. La historia de FoxPro
  17. "Herramientas de productividad para el desarrollo visual de FoxPro" . Microsoft . Consultado el 20 de diciembre de 2014 .

Páginas de Microsoft

  • Página principal de Visual FoxPro en Microsoft
  • Foro de soporte de MSDN FoxPro
  • Ayuda en línea de VFP

Otras páginas

  • Un sitio web dedicado a la historia de FoxPro.
  • VFPx: Un esfuerzo de la comunidad de Visual FoxPro para crear complementos de código abierto para VFP 9.0.
  • Página de inicio del clon en línea de Fox In Cloud