Visual FoxPro

De la Viquipèdia, l'enciclopèdia lliure
Infotaula de llenguatge de programacióVisual FoxPro
Tipusllenguatge de programació orientat a objectes, llenguatge de programació, llenguatge de programació procedural i entorn integrat de desenvolupament Modifica el valor a Wikidata
Data de creació1984 Modifica el valor a Wikidata
DesenvolupadorMicrosoft Modifica el valor a Wikidata
Paradigma de programacióprogramació orientada a objectes i programació procedimental Modifica el valor a Wikidata
Sistema operatiuWindows 2000 i Microsoft Windows Modifica el valor a Wikidata
Etiqueta d'Stack ExchangeEtiqueta Modifica el valor a Wikidata
Pàgina webmsdn.microsoft.com… Modifica el valor a Wikidata

Visual FoxPro és un llenguatge de programació orientat a objectes i procedural, un sistema gestor de bases de dades o Database Management System (DBMS), i des de la versió 7.0, un sistema administrador de bases de dades relacionals, produït per Microsoft.

Característiques[modifica]

Visual FoxPro oferix als desenvolupadors un conjunt d'eines per a crear aplicacions de bases de dades per a l'escriptori, entorns client/servidor, tablet PC o per a la Web.

Entre les seues característiques es poden enumerar:

  • Capacitats poderoses i molt veloces per a la manipulació de dades nadiues i remotes.
  • Flexibilitat per a crear tota mena de solucions de bases de dades.
  • Llenguatge de programació orientat a objectes.
  • Utilització de sentències SQL en forma nadiua.
  • Poderosa manipulació de vistes i cursors, i control complet d'estructures relacionals.
  • El seu propi gestor de base de dades incorporat. Tanmateix, també pot connectar-se amb servidors de base de dades, tals com Oracle, Microsoft SQL Server o MySQL.
  • Compta amb un motor de generació d'informes renovat i molt flexible per a solucions més robustes.
  • Des de la versión 9.0, ampli suport de XML, tant com font de dades (per ex., servicis Web basats en XML) com per generar informes en format XLM.
  • Des de la versió 7.0, suport de la tecnologia IntelliSense de Microsoft.

La darrera versió alliberada és la 9.0. La próxima versió, 'Sedna', serà un poderós i complet llenguatge que permetrà al producte interaccionar encara més amb VisualStudio.net, SQLServer2005, SQLExpress2005 i Office12, Windows Vista.

La versió 9.0 de Visual FoxPro compta amb el SP1 en la que hi ha algunes noves característiques i especialment aporta estabilitat al producte.

Història[modifica]

Visual FoxPro prové de FoxPro, que en deriva de FoxBASE, creat per Fox Technologies el 1984; inicialment un compilador de dBase, acabà superant-lo i amb Clipper, convirtint-se en una de les estrelles dels lenguatges xBase. Fox Technologies fou adquirida per Microsoft el 1992.

Visual FoxPro 3.0, fou la primera versió "Visual", va reduir la seua compatibilidad a Mac i Windows (la darrera versió de FoxPro (2.6) funcionava en MS-DOS, MS Windows, Mac OS i UNIX), versions posteriors foren sols per a Windows. La versió actual es basa en arxius COM i Microsoft ha declarat que no pensa crear una versión .NET.

La versió 5.0 s'integrà en Microsoft Visual Studio afegint-hi el suport de Microsoft Source Safe. Fins aleshores és vist típicament pel públic merament com un sistema de gestió de base de dades (SGBD), ignorant el fet que no sols inclou l'entorn SGBD, sinó un complet llenguatge de programació.

Visual FoxPro 6.0, publicat el 1999, no suposa un canvi radical respecte a l'anterior versió sinó únicament una millora en les seus diverses funcionalitats i una adaptació al món Internet i al món dels objectes. Esta versió fa més atractiu per als desenvolupadors el tractament de les dades en els entorns COM. És un pas més en l'evolució d'este producte des d'un entorn d'aplicacions monousuari o de xàrcies menudes centrades en les dades cap a una eina orientada a objecte diseñada per a la construcció de la lògica del negoci en els entorns multi-tier amb una forta orientació cap als tractaments intensius de dades en Internet. Malgrat la seua relativa antiguitat, és a hores d'ara àmpliament emprada en grans empreses (per ex., la companyia d'assegurances Mapfre) per la seua estabilitat.

Visual FoxPro 7.0, publicat en 2001, suposà la seua eixida de Visual Studio, tot i que en un principi es pensava incloure Fox en .NET, no era possible sense trencar amb l'herència d'anteriors versions. Esta versió incorporà per primera vegada l'IntelliSense, i es va millorar la manipulació d'arrays, apropant-la a la de cursors.

A la fi del 2002, alguns membres de comunitats demostraren que Visual FoxPro pot córrer en Linux usant l'emulador de Windows Wine. El 2003, açò va rebre queixes de Microsoft: es digué que el desenvolupament de codi de FoxPro per a rutines en màquines no-Windows viola l'Acord de Llicència d'Usuari Final.

Els rumors pel fet que Microsoft planeja terminar el suport per a FoxPro han estat comuns des de la seua adquisició del producte, malgrat el fet que este ha tingut el temps de vida de suport més llarg per a un producte de Microsoft (fins al 2014). VFP 9 fou llançat el 17 de desembre de 2004 i l'equipo de Fox està treballant actualment en un projecte del qual el nom clau és Sedna que serà construït sobre el codi base de VFP 9 i consistirà principalment en components Xbase que soportaran un nombre d'escenaris interoperables amb diverses tecnologies de Microsoft incloent SQL Server 2005, .NET, WinFX, Windows Vista i Office 12.

Exemples de codis[modifica]

Exemple d'"Hola món":

MESSAGEBOX("Hola món")

Objecte[modifica]

Exemple de creació d'un objecte:

loForm = CREATEOBJECT("HiForm")
loForm. Mostra(1)

DEFINE CLASS HiForm AS Form
 AutoCenter = .T.
 Caption = "Hola món"

 ADD OBJECT lblHi as Label WITH ;
 Caption = "Hola Món!"
ENDDEFINE
loMine = CREATEOBJECT("MyClass")
? loMine.cProp1 && Este funcionarà.
? loMine.cProp2 && Error de programació: Property CPROP2 is not found.

? loMine. MyMethod1() && Este funcionarà.
? loMine. MyMethod2() && Error de programació: Property CPROP2 is not found.

DEFINE CLASS MyClass AS Custom
 cProp1 = "My Property" && Esta és una propietat pública
 HIDDEN cProp2 && Esta és una propietat pública

 PROCEDURE Init() && Constructor de Class
 This.cProp2 = "This is a hidden property."
 ENDPROC

 PROCEDURE MyMethod1() && Este és un mètode públic
 RETURN This. MyMethod2()
 ENDPROC

 HIDDEN PROCEDURE MyMethod2() && Este és un mètode privat
 RETURN This.cProp2
 ENDPROC
ENDDEFINE

Manipulació de dades[modifica]

* Crea una taula
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

* Col·loca un índex estructural en les dades
INDEX ON iData TAG iData
CLOSE ALL

* Mostra 'sorted' dades usant ordre a l'estil de xBase
USE randData
SET ORDER TO iData
GO TOP
LIST NEXT 10 && First 10 (end-of-line comment)
SKIP 81
LIST NEXT 10 && Last 10
CLOSE ALL

* Recòrre dades 'sorted' usant ordres SQL DML
SELECT * ;
 FROM randData ;
 ORDER BY iData DESCENDING

Accés ODBC usant SQL Passthrough[modifica]

* Connecta a una font de dades ODBC
LOCAL nHnd
nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")

* Executa una ordre SQL
LOCAL nResult
nResult = SQLEXEC (nHnd, "USE master")
IF nResult < 0
 MESSAGEBOX ("MASTER database does not exist!")
ENDIF

* Retrieve data from the remote server and stores it in
* a local data cursor
nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")

* Update a record in a remote table using parameters
LOCAL cAuthorID, cAuthorName
cAuthorID = "1001"
cAuthorName = "New name"
nResult = SQLEXEC (nHnd,"UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID")

* Close the connection
SQLDISCONNECT(nHnd)

Enllaços externs[modifica]