Visual FoxPro - Visual FoxPro
Desarrollador (es) | Microsoft |
---|---|
Lanzamiento final | v9.0 SP2 / 16 de octubre de 2007
|
Sistema operativo | Windows 2000 , Windows XP y Windows Server 2003 |
Plataforma | IA-32 |
Disponible en |
IDE: inglés, alemán, español Tiempo de ejecución: arriba más francés, chino, ruso, checo, coreano |
Tipo | Entorno de desarrollo integrado , lenguaje de programación |
Licencia | Software propietario comercial |
Sitio web | msdn |
Visual FoxPro era un lenguaje de programación procedimental centrado en datos de Microsoft que posteriormente se volvió orientado a objetos .
Se derivó de FoxPro (originalmente conocido como FoxBASE) que fue desarrollado por Fox Software a partir de 1984. Fox Technologies se fusionó con Microsoft en 1992, después de lo cual el software adquirió más funciones y el prefijo "Visual". FoxPro 2.6 funcionó en Mac OS , DOS , Windows y Unix .
Visual FoxPro 3.0, la primera versión "Visual", redujo el soporte de la plataforma solo a Mac y Windows, y las versiones posteriores 5, 6, 7, 8 y 9 eran solo para Windows. La versión actual de Visual FoxPro está basada en COM y Microsoft ha declarado que no tienen la intención de crear una versión de 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.
Historia
Visual FoxPro se originó como miembro de la clase de lenguajes comúnmente denominados lenguajes " xBase ", que tienen una sintaxis basada en el lenguaje de programación dBase . Otros miembros de la familia de idiomas 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 xBase de FoxPro para admitir consultas SQL y manipulación de datos. A diferencia de la mayoría de los sistemas de administración de bases de datos , Visual FoxPro es un lenguaje de programación dinámico con todas las funciones que no requiere el uso de un entorno de programación adicional de propósito general. Se puede utilizar para escribir no solo aplicaciones tradicionales de " cliente pesado ", sino también aplicaciones web y middleware .
A finales de 2002, se demostró que Visual FoxPro puede ejecutarse en Linux con el paquete de compatibilidad Wine Windows. En 2003, esto provocó quejas por parte de Microsoft: se afirmó que la implementación del código FoxPro en tiempo de ejecución en máquinas que no son Windows viola el Acuerdo de licencia de usuario final .
Visual FoxPro tuvo un rápido aumento y caída en popularidad según lo medido por el índice de la comunidad de programación TIOBE . En diciembre de 2005, VFP entró en el top 20 por primera vez. En junio de 2006 alcanzó la posición 12, convirtiéndolo (en ese momento) en un idioma "B". A octubre de 2019, Visual FoxPro ocupa el puesto 51 en el índice TIOBE.
En marzo de 2007, Microsoft anunció que no habrá VFP 10, por lo que VFP9 (lanzado a la fabricación el 17 de diciembre de 2004) es la última versión comercial de VFP de Microsoft. El Service Pack 2 para Microsoft Visual FoxPro 9.0 se lanzó el 16 de octubre de 2007. El soporte de la Versión 9 finalizó el 13 de enero de 2015.
En el momento del anuncio del final de la vida útil, el trabajo en la próxima versión con nombre en código Sedna (que lleva el nombre de un planeta enano descubierto recientemente ) que se construyó sobre la base de código VFP9 ya había comenzado. "Sedna" es un conjunto de complementos para VFP 9.0 de componentes xBase para admitir una serie de escenarios de interoperabilidad con diversas tecnologías de Microsoft, incluidas SQL Server 2005, .NET Framework , Windows Vista, Office 2007, Windows Search y Team Foundation Server (TFS ). Microsoft lanzó Sedna bajo la licencia de fuente compartida en el sitio de CodePlex . Microsoft ha aclarado que el núcleo de VFP seguirá siendo de código cerrado. Sedna se lanzó el 25 de enero de 2008. En marzo de 2008, todos los componentes xBase de VFP 9 SP2 (incluido Sedna) estaban disponibles para el desarrollo comunitario en CodePlex.
A finales de marzo de 2007, la comunidad de FoxPro de habla hispana en MásFoxPro ("MoreFoxPro" en inglés ) inició una campaña de base para firmar una petición a Microsoft para continuar actualizando Visual FoxPro o distribuirlo a la comunidad como código abierto . El 3 de abril de 2007 el movimiento fue notado por la prensa técnica.
El 3 de abril de 2007, Microsoft respondió a la petición con esta declaración de Alan Griver:
"Somos muy conscientes de la comunidad FoxPro y eso jugó un papel importante en lo que anunciamos el 13 de marzo. Nunca es una decisión fácil anunciar que no lanzaremos otra versión de un producto y es una que consideramos muy cuidadosamente.
"No estamos anunciando el final de FoxPro: obviamente, las aplicaciones 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 no ha sido compatible en muchos Visual FoxPro 9 será compatible con Microsoft hasta 2015.
"Para que Microsoft continúe evolucionando la base de FoxPro, tendríamos que considerar la creación de un entorno de desarrollo de 64 bits y eso 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 , incluida la edición gratuita SQL Server Express Edition. En lo que respecta a formar una sociedad con un tercero, hemos escuchado de varios clientes importantes de FoxPro que esto les haría imposible continuar usando FoxPro, ya que ya no sería de un proveedor aprobado. Sentimos que poner el entorno en código abierto en CodePlex , que equilibra las necesidades tanto de la comunidad como de los grandes clientes, era el mejor camino a seguir ".
Cronología de la versión
Todas las versiones enumeradas son para Windows.
Versión | Fecha de lanzamiento |
---|---|
Visual FoxPro 3.0 | Junio de 1995 |
Visual FoxPro 5.0 | Octubre de 1996 |
Visual FoxPro 5.0a | Octubre de 1997 |
Visual FoxPro 6.0 | 18 de mayo de 1998 |
Visual FoxPro 7.0 | 27 de junio de 2001 |
Visual FoxPro 8.0 | 1 de febrero de 2003 |
Visual FoxPro 8.0 Service Pack 1 | 7 de octubre de 2003 |
Visual FoxPro 9 | 20 de diciembre de 2004 |
Visual FoxPro 9 Service Pack 1 | 8 de diciembre de 2005 |
Visual FoxPro 9 Service Pack 2 | 16 de octubre de 2007 |
Muestras de código
El lenguaje FoxPro contiene comandos bastante similares a otros lenguajes de programación como Basic.
Algunas muestras de sintaxis básica:
FOR i = 1 to 10
x = x + 6.5
NEXT && Instead of "NEXT" can also use "ENDFOR"
IF i = 25
i = i + 1
ELSE
i = i + 3
ENDIF
x = 1
DO WHILE x < 50
x = x + 1
ENDDO
x = 1
DO WHILE .T.
x = x + 1
IF x < 50
LOOP
ELSE
EXIT
ENDIF
ENDDO
nMonth = MONTH(DATE())
DO CASE
CASE nMonth <= 3
MESSAGEBOX("Q1")
CASE nMonth <= 6
MESSAGEBOX("Q2")
CASE nMonth <= 9
MESSAGEBOX("Q3")
OTHERWISE
MESSAGEBOX("Q4")
ENDCASE
FOR EACH oControl IN THISFORM.Controls
MESSAGEBOX(oControl.Name)
ENDFOR
f = Factorial(10)
FUNCTION Factorial(n)
LOCAL i, r
r = 1
FOR i = n TO 1 STEP -1
r = r * i
NEXT && Can also use "ENDFOR" here instead of "NEXT"
RETURN r
ENDFUNC
Ejemplos de Hello World:
* Output at the current location
? "Hello World"
* Output at a specified location
@ 1,1 SAY "Hello World"
* Output in a separate window, cleared on input
WAIT WINDOW "Hello World"
* Output in a standard dialog box, cleared on OK
MESSAGEBOX("Hello World")
Objeto
* Output in a defined window
loForm = CREATEOBJECT("HiForm")
loForm.Show(1)
DEFINE CLASS HiForm AS Form
AutoCenter = .T.
Caption = "Hello, World"
ADD OBJECT lblHi as Label ;
WITH Caption = "Hello, World!"
ENDDEFINE
loMine = CREATEOBJECT("MyClass")
? loMine.cProp1 && This will work. (Double-ampersand marks an end-of-line comment)
? loMine.cProp2 && Program Error: Property CPROP2 is not found because it's hidden externally.
? loMine.MyMethod1() && This will work.
? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found because it's hidden externally.
DEFINE CLASS MyClass AS Custom
cProp1 = "My Property" && This is a public property
HIDDEN cProp2 && This is a private (hidden) property
dProp3 = {} && Another public property
PROCEDURE Init() && Class constructor
This.cProp2 = "This is a hidden property."
PROCEDURE dProp3_Access && Property Getter
RETURN DATE()
PROCEDURE dProp3_Assign(vNewVal) && Property Setter uses the "_assign" tag on the property name
IF VARTYPE(vNewVal) = "D"
THIS.dProp3 = vNewVal
ENDIF
PROCEDURE MyMethod1()
* This is a public method, calling a hidden method that returns
* the value of a hidden property.
RETURN This.MyMethod2()
HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) method
RETURN This.cProp2
ENDDEFINE
- VFP tiene una extensa biblioteca de clases predefinidas y objetos visuales a los que se accede en el IDE mediante una hoja de propiedades (incluidos los métodos ), por lo que el código como las clases y objetos que definen anteriormente solo se necesita para propósitos especiales y el marco de grandes sistemas.
Manejo de datos
El lenguaje también tiene amplios comandos de indexación y manipulación de bases de datos. El índice de "ayuda" de comandos en VFP 9 tiene varios cientos de comandos y funciones descritas. Los ejemplos a continuación muestran cómo codificar la creación e indexación de tablas, sin embargo, VFP tiene pantallas de creación de tablas y bases de datos que crean las tablas e índices sin tener que escribir código.
* Create a table
CREATE TABLE randData (iData I)
* Populate with random data using xBase and SQL DML commands
FOR 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 data
INDEX ON iData TAG iData
CLOSE DATA && Do not close open libraries etc
* Display ordered data using xBase-style commands
USE randData
SET ORDER TO iData
LOCATE && In place of GO TOP. Enforces use of index to find TOP
LIST NEXT 10 && First 10
GO BOTTOM
SKIP -10
LIST REST && Last 10
CLOSE DATA
* Browse ordered data using SQL DML commands
SELECT * ;
FROM randData ;
ORDER BY iData DESCENDING
Acceso ODBC mediante paso a través de SQL
PRIVATE cAuthorID, cAuthorName && Private variables supplant any previous global or private variable of the same name
LOCAL nHnd, nResult && Local variables are visible only here
* Connect to an ODBC data source
nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")
* Enter a loop so we can exit to the close connection code if there's an error
DO WHILE .T.
* Execute a SQL command
nResult = SQLEXEC (nHnd, "USE master")
IF nResult < 0
MESSAGEBOX ("MASTER database does not exist!")
EXIT && To close the connection
ENDIF
* Retrieve data from the remote server and stores it in a local data cursor
nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")
IF nResult < 0
MESSAGEBOX ("Unable to execute remote SQL SELECT command!")
EXIT && To close the connection
ENDIF
* Update a record in a remote table using parameters
cAuthorID = "1001"
cAuthorName = "New name"
nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID")
IF nResult < 0
MESSAGEBOX ("Unable to execute remote SQL UPDATE command!")
EXIT && To close the connection
ENDIF
* If we get here, we have retrieved everything successfully
EXIT && Exit unconditionally
ENDDO
* Close the connection
SQLDISCONNECT(nHnd)
Aplicaciones
Algunas aplicaciones notables escritas en Visual FoxPro incluyen
- PWCT : lenguaje de programación visual de código abierto gratuito para el desarrollo de software
Ver también
Referencias
enlaces externos
Páginas de Microsoft
Otras paginas
- Wiki de Visual FoxPro Un repositorio de información de FoxPro (escrito en VFP)
- Un sitio 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