Početkom avgusta počela je prodaja verzije 7 Visual FoxPro-a. U početku malo stidljivo, kroz beta verzije Visual Studio.NET paketa, nova „lisica“ je otkrivala atribute alata koji prevazilazi prethodnike. Potom je doneta odluka da se samostalno izađe na tržište tj. ne čeka završetak rada na .NET platformi. Microsoft navodi da je to učinjeno jer Visual FoxPro 7 ne pripada toj strategiji, mada je kompatibilan sa njom. Posle prvih testova, verujemo da programeri „vezani“ za Visual FoxPro ne moraju da brinu za budućnost – Internet tehnologije su visoko integrisane u verziju 7.
Mada Ken Levy, menadžer za Visual FoxPro u Microsoft-u (poznat je kao projektant komponenti radnog okruženja od kojih je najpoznatija Class Browser) tvrdi da je već IntelliSence tehnologija za mnoge programere dovoljan razlog za prelazak na novu verziju, pedeset novih i unapređenih funkcija programskog jezika, poboljšana manipulacija COM serverima i dodavanje podrške za XML čine „tešku artiljeriju“ kojom se „puca“ na druge platforme za razvoj baza podataka. U narednim redovima predstavićemo najinteresantnija unapređenja na ovom polju.
COM i „lisica“
Još u prvoj verziji Visual FoxPro-a predstavljena je podrška za COM kroz mogućnost da se na formularima koriste ActiveX komponente. Verzija 5 je donela mogućnost kreiranja in-process i out-of-process COM servera izvedenih iz Visual FoxPro klasa, dok je Visual FoxPro 6 unapredio postupak obrade grešaka. U aktuelnom izdanju stvari su dovedene do kraja, a kreiranje COM servera značajno je pojednostavljeno. Svaka klasa može biti COM server ako u form builder-u „overite“ opciju OLEPUBLIC u Class Info dijalogu dizajnera klasa ili ako u njenoj definiciji navedete atribut OLEPUBLIC:
DEFINE CLASS HelloWorld AS OLEPUBLIC
ENDDEFINE
Jedan od nedostataka Visual FoxPro-a u domenu izgradnje COM objekata bila je atipiziranost promenljivih. Arhitekte ovog programskog jezika dugo su izbegavali da uvedu strogu nomenklaturu tipova promenljivih tako da kompajler nije imao informaciju o tipu podatka koji se čuva u nekoj varijabli. U želji da se stvari dovedu u red uvedena je mogućnost strogog tipiziranja promenljivih. Sintaksa je preuzeta iz Visual Basic-a, pa će se u vašem programu naći konstrukcije poput: FUNCTION MyFunction(p1 AS String, p2 AS Integer) AS Boolean. Funkciji se prosleđuju dva parametra, od kojih je prvi string, a drugi može da primi celobrojnu vrednost. Treba imati na umu da ovo nema efekta na internu strukturu klase i koristi se samo za vreme prevođenja, kada Visual FoxPro gradi biblioteku tipova promenljivih za dati objekat. Drugim rečima, nećete dobiti poruku o greški kada iz interne rutine pošaljete broj umesto stringa. Međutim, kada je funkcija definisana kao metod objekta i kompajlirana u COM server, biće specifikovani tipovi parametara i vrednosti koju metod vraća.
Shodno prethodnom unapređenju u definiciji klase, preko _COMATTRIB sada je moguće podešavati karakteristike objekata i metoda. Svojstvo predstavlja niz sa pet elemenata, gde svaki od njih podešava odgovarajuće atribute. Prvi je, primera radi, zadužen za specifikovanje pristupnosti svojstvu ili metodu od strane klijenta. U sledećem primeru možemo da vidimo da se flegovi slobodno kombinuju:
DEFINE CLASS MyObject AS Session OLEPUBLIC
MyProperty = ""
MyProperty_COMATTRIB[1] = ;
ENDDEFINE
Programeri su dugo čekali funkcije i metode koje mogu da vrate nizove. Da bi vraćeni niz bio upotrebljiv u ostatku programa, treba podesiti njegovu vidljivost deklarisanjem niza kao PUBLIC ili kreiranjem svojstva u okviru klase.
Nezaobilazni XML
Kako se računarski svet već duže vreme „vrti“ oko reči Internet i intranet, XML podrška predstavlja neophodni dodatak. U tu svrhu pripremljene su tri funkcije koje obezbeđuju konverzije podataka. Prve dve, CursorToXML i XMLToCursor, su inverzne i samo u jednom programskom redu pretvaraju tabelu (odnosno njen deo) u XML string i obratno. Treća funkcija XMLUpdategram oslanja se na SQL Server 2000 i IIS, čime se baza podataka menja na osnovu pristiglih XML updategram-a.
Tu nije kraj rada sa XML dokumentima. Ako ove funkcije nisu dovoljne za razvoj vaše aplikacije, možete ih zameniti sopstvenim – treba samo da kreirate objekat sa implementiranim IVFPXML interfejsom, koji se kompajlira kao COM server. Potom je potreban još jedan mali korak – postavljanje objektovog ProgID kao novog svojstva _VFP aplikacionog objekta. Posle toga, svaki poziv neke od ovih funkcija rezultovaće akcijama koje ste im vi dodelili.
Visual FoxPro ostaje jedan od najpopularnijih alata za kreiranje baza podataka i aplikacija koje njima upravljaju. Kvalitet je potvrdio kako u desktop, tako i klijent/server okruženju, a i na Internetu postoji nekoliko lokacija koje su predstavile ovaj paket kao adekvatno rešenje za izradu Web aplikacija. Na osnovu prvih nekoliko nedelja rada sa Visual FoxPro-om 7 slobodno možemo reći da je napravljen odlučan korak napred i to pre svega na polju tehnologija i servisa koje smo u ovom tekstu predstavili. Dobra vest je da nova verzija obezbeđuje potpunu kompatibilnost sa prethodnim, tako da godine minulog rada neće biti izgubljene. Naprotiv, aplikacije razvijene u ranijim inkarnacijama Visual FoxPro-a nije teško preneti u novo okruženje, a tranzicija iz zatvorenog okruženja ka Web servisima ne zahteva nabavku novih alata i prelazak na neki novi programski jezik.
|