A FoxPro egy karakteres eljárás-orientált magas szintű programozási nyelv, amelyet relációs adatbázisok kezelésére használnak. Eredetileg a Fox Software készítette MS-DOS, Windows, Macintosh, és UNIX operációs rendszerekre. A program utolsó változata a FoxPro 2.6, ezután a Microsoft cég csak a Visual Foxpro alatti fejlesztéseket támogatja.

Története szerkesztés

A FoxPro-nak rövid, de dicsőséggel teli élete volt: 1989-ben jelent meg a dBaseIII PLUS egy alternatívájaként[1] és 2000-ig támogatták. 2000 után már kizárólag csak a Visual FoxPro programokat támogatta a Microsoft.

Keletkezése szerkesztés

1984-ben Dave Fulton és Bill Ferguson megírta a FoxBASE programot, amely a dBase funkcióit ötvözi a Fox gyorsaságával, majd 1986-ban megszületik a foxBASE+ program. Egy megfizethetőbb, megbízhatóbb és gyorsabb alternatíva dBase III alkalmazások írására, amiért az Ashton-Tate beperli a Fox Software céget. Válaszul Dave Fulton - a Bowling Green State University egyik professzora -, 1989-ben megírta FoxPro programot. Az első két termékét - a FoxBase-t és a FoxBase+ -t - azért írta, hogy az Ashotn-Tate dBase termékének technológiáit magába olvassza és kiegészítse, viszont a Rushmore technológiával felvértezett FoxPro minden addigi xBase alapú adatbázis-kezelőt maga mögött hagyott. A fejlesztés fő lépései:

Év Programnév/verzió Rövid ismertető
1989 FoxPro 1989 1.0 Ez a változat támogatja a dBase IV nyelvet, de alapvetően más felülettel jelenik meg, amely hasonlít a FoxBASE+/Mac felületére. A felület alapvetően karakteres használatra készült, de lehetővé teszi a grafika megjelenítését is.
1990 FoxPro 1.0.
1990 FoxPro 1.01, 1.02 és 1.03 Javított kiadások
1991 VII. FoxPro 2.0 A FoxPro 2.0-ban megjelent a forradalminak számító Rushmore technológia, amely az összes korabeli versenytársa fölé emelte. Bemutatják a grafikus Screen Builder (~ képernyő építő) és a Report Builder (~ jelentéskészítő)-t, valamint a programnyelvbe integrált SOL támogatást.
1992 VI. A Microsoft bekebelezi a Fox Software -t 1.36 millió részvény felvásárlása révén($173M)[2]
1993 I. Foxpro for Win 2.5. Az első windowsos FoxPro verzió megjelenése, amely Windows .EXE állományok előállítására is alkalmas.
1993 FoxPro 2.6. Mac A FoxPro 2.6 Macintosh változatának megjelenése.
1993 FoxPro 2.6. Unix A FoxPro 2.6 Unix változatának megjelenése.
1993 VI. FoxPro 2.5a, Többnyelvű támogatás megjelenése.
1993 IX. FoxPro 2.5b, Többnyelvű támogatás kiterjesztése: görög, lengyel, és cseh nyelvű támogatás is.
1994 FoxPro 2.6 és 2.6a (VIII. hónap). Javított dBase kompatibilitás, több varázsló, kódlap támogatás.
1995 Dave Fulton nyugdíjba vonul a Microsoft-tól.
1995 VI. Visual FoxPro 3.0, Taz. A FoxPro procedurális nyvből objektumorientált nyelvvé válik, Active X és OLE technikák megjelenése.
1995 Speedy Visual FoxPro 3.0 for Macintosh.
1996 Renard A 4.0-s változat sikertelensége után októberben az 5.0 következett VB, VC++ támogatással. Alapvetően új debugger (hibakereső)

A 4.0 kódneve Renard az 5.0-é RoadRunner.

1997 Visual FoxPro a Visual Studio 97 részévé válik.
1998 V. 18. Tahoe Visual FoxPro 6.0.
1999 VII. A Microsoft bejelenti, hogy fél éven belül megszünteti a FoxPro 2.x programcsalád támogatását.

Főbb jellemzői szerkesztés

A FoxPro számos újdonsággal büszkélkedhetett, amelyekkel méltán kiemelkedett kortársai közül. Ezen újdonságok egy része már ismert volt (például az IDE vagy a grafikus felület), azonban adatbázis kezelésre MS-DOS alatt sehol nem alkalmazták. Sok olyan újítást vezettek be (például a Rushmore-technológia, beépített fordító, egér használata), amely az adatbázis-kezelésben addig ismeretlen volt.

Felület szerkesztés

A Foxpro a Borland IDE (Integrated Development Environment ~ Integrált Fejlesztőkörnyezet kezdőbetűiből.) felületéhez rendkívül hasonló, (egérrel is) könnyen kezelhető, jól átgondolt karakteres ablakrendszerével hamar népszerűvé vált. A programfejlesztést úgynevezett designer-ek (tervezők) és builder-ek (építők) is segítik, amelyekkel az egyes komponensek könnyen és gyorsan megtervezhetőek:

  • Database Designer: adatbázisok tervezése, relációk megadása az adattáblák között;
  • Form Designer: Ablakok és űrlapok tervezése, melyek segítségével az adattáblák manipulálhatóak;
  • Query Designer, View: lekérdezések megadása adattáblákon;
  • Report Designer: adatok megjelenítése és nyomtatása;
  • Table Designer: adatbázis táblák létrehozása és módosítása.

A program futtatása során látható felhasználói felületet a megtervezett űrlapok és képernyők határozzák meg. A builder-ek (építők) segítségével az űrlapokon megjelenő elemek és vezérlőik tervezhetők meg, majd ezeket összefogva (project) elmenthetők.

Kódgenerálás szerkesztés

Egy elmentett FoxPro project-ből (amely programkódok, képernyőtervek és űrlapok megfelelő kombinációja) számos formában lehet védett tartalmú végrehajtható kódot létrehozni:

  • FoxBASE pszeudokódot,
  • FoxPro pszeudokódot,
  • a beépített 9.0-s Watcom C-fordító[3] segítségével lefordítható kódot (amelyhez a megfelelő futtató környezet is szükséges), vagy
  • önálló .exe kiterjesztésű fájlt, végül
  • átlépve az MS-DOS 640 kB-os korlátait, a számítógép legfeljebb 4GB memóriáját használni képes védett módú önállóan futtatható .exe fájlt írni.

Az elmentett alkalmazás fordítás előtt kipróbálható, lefuttatható, szükség esetén módosítható vagy más fejlesztés céljára felhasználható. A létrehozott futtatható fájl tartalma teljes egészében titkosítható, abból egyszerű olvasással, belenézéssel semmilyen szöveges információ nem nyerhető ki.

Rushmore-technológia szerkesztés

A FoxPro 2.0 legjelentősebb újítása a Rushmore-technológia bevezetése volt, amely az adatbázisban való keresés idejét drámaian lerövidítette.[4] A technológia legfontosabb eleme, hogy futásidőben tömörített keresőkulcsokat használ A tömörítés következtében az indexfájlok mérete mintegy  -a a tömörítetlen állapotnak. Ez jelentős memórianyereséget és nagyobb indexfájloknál gyorsabb elérést biztosít.

Általánosan ismert, hogy a relációs adatbázis-kezelő programok a keresés gyorsítására egy .idx kiterjesztésű indexfájlt hoznak létre, amely a keresett adat fájlban való elhelyezkedését jelöli. Más szavakkal: az indexfájl olyasmi, mint a könyvek végén a tárgymutató. Az Olvasónak nem kell végiglapoznia az egész könyvet, ha egy adott témát keres, hanem megnézi a tárgymutatóban és a könyvet a tárgymutató által jelzett oldalon nyitva, máris hozzáfér a kérdéses információhoz. Nos az indexfájlok segítségével hasonlóan gyorsul fel az adatok elérése is. Azonban az indexfájlok használatának nemcsak előnyei, hanem hátrányai is vannak. Például

  • sok adatot tartalmazó fájlhoz nagyméretű indexfájl tartozik, emiatt ennek olvasása,
  • frissítése (adatok felvitele, változása, törlése esetén) jelentős időt vesz igénybe,
  • az indexfájl sérülése esetén katasztrofális eredmények születhetnének (a sérülést minden program felismeri), így az indexfájt újra létre kell hozni, stb., stb.

Mivel több keresési kulcs is létezhet, fentieket annyiszor kell figyelembe venni, ahány keresési kulcs (indexfájl) van az adatbázisban. Különösebb magyarázat nélkül is belátható, hogy egy-kétszázezer adat felett nyolc-tíz vagy még több keresési kulcs indexfájljainak létrehozása vagy újraírása rendkívül hosszú időt vehet igénybe.

A FoxPro az indexfájlok méretének csökkentésére egyrészt tömörítéses technológiát, másrészt összevonást (compound index) végül pedig rögzítési időben való frissítési lehetőséget is biztosít. Népszerűségét tovább növelte, hogy az indexfájljai sérülésre sokkal kevésbé voltak hajlamosak, mint más MS-DOS alatt működő adatbázis-kezelő programokéi. Mindemellett a Rusmore-technológia kikapcsolható egy adott keresési kulcsra a NOOPTIMIZE kapcsolóval, miközben az a többire keresési kulcsra nézve bekapcsolt állapotban marad. Végezetül a Rushmore-technológia kikapcsolható globálisan a SET OPTIMIZE OFF parancs segítségével.

Rendszerváltozók szerkesztés

Számos rendszerváltozót vezetett be, amelyeket egy .ini kiterjesztésű szövegfájlba írva kívülről is be lehet avatkozni a program működésébe a környezet kívánalmainak megfelelően ha azt a programban nem tiltják. A program indulás előtt beolvassa a konfigurációs fájlt és futás előtt végrehajtja az ott definiált beállításokat. A rendszerváltozók a SET paranccsal kapcsolhatók ki és be.

Fentieken kívül a FoxPro még több figyelemreméltó újítással rendelkezik (egy ilyen például, hogy a memo mezők akár képet vagy egyéb bináris tartalmat is hordozhatnak), amelyek a dokumentációkból és szakkönyvekből[5] tanulmányozhatóak[6]

Jegyzetek szerkesztés

  1. http://www.foxprohistory.org/foxprotimeline.htm General Foxpro Timeline
  2. http://nyelvek.inf.elte.hu/leirasok/dBase_Clipper_FoxPro/index.php?chapter=1 Prognyelvek portál
  3. http://fox-populi.com/books/foxlck_r/p1.html Archiválva 2013. április 21-i dátummal a Wayback Machine-ben Комплекс инструментальных средств для создания библиотек FoxPro
  4. http://bcook.cs.georgiasouthern.edu/cs575/rushmore.htm Archiválva 2012. szeptember 20-i dátummal a Wayback Machine-ben Sheila Kearney: Rushmore Technology
  5. Balogh János - Dr. Dedinszky Ferenc: FoxPro 2.0, Computerbooks, Budapest, 1998, ISBN 9636181721
  6. http://foxpro.lap.hu

További információk szerkesztés

Kapcsolódó szócikkek szerkesztés