PC Press
O nama
O nama
Pretplata
O nama
Postanite saradnik PC-ja
Kontakt sa redakcijom
PC Press
Novi broj
Novi broj   
Pretrazivanje
Arhiva
Arhiva   
PC Online
PC Plus   
Specijalna izdanja
Softver Softver
PC #21 : Februar 1997

 Naslovna  Sadržaj 
Milan Bašić  

xBase u Windows vodama

Nije malo programera koji egzistenciju zasnivaju na xBase dijalektima. Za njih je FoxPro važan alat, pa Milan Bašić predstavlja verziju 5.0.

U svetu softvera ustaljeni tok stvari je da velika riba pojede malu. Tako je Clipper prešao u ruke Computer Assosiates-a, dBASE Borland-a, a FoxPro u ruke Microsoft-a. To je donelo nadu da će FoxPro imati blistavu i sigurnu budućnost, ali događaji koji su sledili još jednom su nam pokazali da u životu ništa nije sigurno.

Kada je Windows postao najvažnija platforma na PC računarima, u Microsoft-u su odlučili da promovišu novi pristup korišćenju aplikacija koji je otelotvoren u paketu Office. U Microsoft-ovom paketu se nije našao FoxPro, već Access, a tu je bio i Visual Basic, na čijim osnovama su razvijeni makro-jezici u Word-u, Excel-u i Access-u. Budućnost FoxPro-a je tako došla pod znak pitanja.

Srećom, korisnici su održali junaka naše priče vitalinim i u tim teškim godinama. Predstavljene su prve verzije za Windows koje su dobro primljene, a Access nije stekao očekivanu popularnost, pa su u kompaniji odlučili da odobre sredstva za dalji razvoj Fox-a. Sredinom 1995. se, bez velike pompe, pojavio Visual FoxPro 3.0, svojevrsni probni balon: ako xBase programerska zajednica prihvati novi alat, ići će se dalje sa razvojem, a u suprotnom... Pojava nove verzije Visual FoxPro 5.0 jasno govori o reakciji tržišta.

Revidirani kod

Na instalacionom CD-u se, pored aplikacije, nalazi i kompletna dokumentacija u on-line formi, a za one koji više vole papir, u kutiji su i četiri knjige: Instalation Guide and Master Index (136 strana), Users Guide (186 strana), Language Reference (451 strana) i Developer's Guide (764 strane). Program zauzima 100 do 250 MB prostora na disku, a postoji i laptop konfiguracija sa samo 15 MB, uz sumnjivu upotrebnu vrednost. Setup omogućava i fino podešavanje za presnimavanje, ali mi preporpučujemo da kompletni Visual FoxPro 5.0 preselite na disk: ušteda na prostoru nije vredna gubitka opšte funkcionalnosti.

Korisnički interfejs je redizajniran pa je opšti utisak veće saglasje komponenti i viša funkcionalnost radne površine. Otvaranje menija ili prozora je daleko brže na slabijim računarima: PC računar sa 486 na 50 MHz sa 10 MB RAM-a obezbediće sasvim pristojan rad. Što se tiče operativnih sistema, podržani su Windows 95 i NT, dok je podrška za Windows 3.1x izostala.

Brži rad ukazuje da je kod značajno revidiran. Prethodna verzija je bila stabilna, ali smo joj zamerali izvesnu tromost i loše upravljanje sistemskim resursima. Stalno ste morali da vodite računa da sistem, bez obzira koliko memorije imate, ne preopteretite kako ne bi ostali bez neophodnih resursa.

Centralno mesto i dalje zauzima Project Manager, iz koga lako pristupite bilo kojoj komponenti aplikacije u razvoju. On sarađuje sa programima koji prate izmene na izvornom kodu kakav je MS Visual SourceSafe. Prozor Project Manager-a je postao još funkcionalniji: pored mogućnosti da ga pomerate po radnoj površini ili postavite ispod Toolbar-ova i otvarate samo onaj tab koji vam je u datom trenutku potreban, moguće je i izvući tab koji će se na radnoj površini ponašati kao samostalan prozor.

U Database Designer-u beležimo mogućnost manipulacije konekcijama preko Connection Designer-a, što olakšava kreiranje aplikacija koje pristupaju udaljenim podacima preko ODBC drajvera. I ostali "dizajneri" su dopunjeni novim opcijama.

U središtu zbivanja

Prave vrednosti novog Visual FoxPro-a kriju se u većoj integraciji novih tehnologija. ActiveX otvara vrata ka razvoju savremenih informacionih sistema namenjenih Windows platformi. U Visual FoxPro-u, ActiveX omogućava korišćenje kako Automation server-a, tako i kontrola.

Automation server je tehnologija koju smo ranije poznavali kao OLE server; omogućava da se aplikacija razvijena u Visual FoxPro-u dinamički poveže sa drugim aplikacijama. Slično važi i u suprotnom pravcu, odnosno iz vaše aplikacije mogu se pozivati drugi Automation serveri, recimo Excel.

Bilo koju klasu ili objekt vaše aplikacije lako proglašavate Automation serverom i tako omogućavate korisnicima da objektu pristupaju iz drugog programa. Recimo:

DEFINE class osoba AS CUSTOM OLEPUBLIC
    Ime = SPACE(30)
    Prezime = SPACE(45)
    PROCEDURE ProslediIme
        RETURN This.Ime + " " + This.Prezime
    ENDPROC
ENDDEFINE

Kreirali smo OLEPUBLIC klasu i unutar nje metod čiji je zadatak da dva stringa spoji u jedan. Objekat ove klase možemo da koristimo unutar Visual FoxPro aplikacije, ali i iz bilo kog drugog programa koji podržava ActiveX Automation. Recimo iz Visual Basic-a:

Set oTest = CreateObject("foxole.osoba")
With oTest
    .Ime = "Petar"
    .Prezime = "Petrović"
End With
cName$ = oTest.ProslediIme()

Mogu se kreirati Remote Automation aplikacije, što znači da Automation server može da bude na jednom, a klijent na drugom računaru. Pored Automation tehnologije, ActiveX donosi i nove kontrole koje se u kreiranju formulara ravnopravno koriste sa standardnim kontrolama. Na tržištu je preko 1000 kontrola koje koriste ISimpleFrame interfejs, što olakšava posao programerima.

Sledeća stanica - Internet

Mada Microsoft to nije potencirao, prethodna verzija Fox-a je znala da se izbori sa klijent-server arhitekturom. Tada ste bili vezani za SQL Server, a sada je podržan i Oracle. To je, posmatrano sa vremenske distance, donekle iznuđeni potez, jer su sva marketinška sredstva bila usredsređena ka Visual Basic-u kao "idealnoj" platformi za razvoj klijenata - trebalo je parirati narastajućoj popularnosti Delphi-ja. Sa pojavom verzije 5.0, stvar se iz korena promenila i na sva zvona je promovisana mogućnost da, istim alatom, kreirate aplikacije koje koriste konvencionalnu i klijent-server arhitekturu.

Microsoft se potrudio da priredi još jedno iznenađenje: mogućnost pravljenja HTML strana, preko kojih možete da pretražujete bazu podataka preko Interneta i da dobijete izveštaj koji sadrži rezultat upita. Opcija je podržana odgovarajućim "čarobnjakom", ali vredi pomenuti uslove koji treba da budu zadovoljeni da bi se Fox našao u ulozi informacionog Web servera.

Osnovni Web server treba da podržava ISAPI (Internet Server API), aplikacija koja je razvijena u Visual FoxPro-u treba da bude projektovana tako da je moguće njeno pozivanje kao Automation servera i mora da postoji "izlaz" preko koga će biti distribuirani rezultati rada nad bazom, obično HTML template. Aplikacija kreirana u Fox-u, dakle, može da radi na četiri načina: iz razvojnog okruženja, kao samostalni izvršni program, kao OLE server i preko Internet Browser-a.

U radu

Test rada sistema počeli smo kreiranjem novog projekta, i tu smo se odmah našli pred dilemom: da li da posao obavimo sami, ili da startujemo novi Application Wizard. Druga mogućnost nam se učinila interesantnom. Prvo smo zadali ime projekta, izabrali generisanje kompletne aplikacije, odredili bazu podataka (može da se koristi postojeća, ili da se kreira nova na osnovu šablona) i... to je sve. Zaključili smo da je Application Wizard dobrodošao neiskusnima.

U tom slučaju, prvi korak koji sledi iza kreiranja projekta je definicija baze podataka. Za razliku od ustaljenog sistema xBase jezika, DBF datoteke su ovde samo skladišta tabela i u radu ih gotovo ne primećujete. Database Designer tretira celokupnu bazu podataka i omogućava podešavanje svih relevantnih parametara, kako za bazu, tako i za pristup podacima sa nekog drugog izvora. Pored rada sa tabelama, tu su i pogledi (Views), virtuelne tabele koje nastaju spajanjem podataka na nivou baze ili šire. Udaljenim bazama pristupa se isključivo preko pogleda. Ispod školjke se krije standardni SQL jezik, odnosno naredba SELECT sa brojnim opcijama. Sviđa nam se što je rad u Database Designer-u logičan i nije potrebno puno vremena da bi se shvatilo "šta se tu dešava", ali ponukani iskustvom iz verzije 3.0, ne verujemo automatskom generatoru funkcija referencijalnog integriteta, koje su često radile pogrešno. Nismo, istina, primetili neke nedostatke, ali koga je zmija ujela...

Zgodno je što postoji opcija beleženja procedura u okviru same baze - podaci koji ne treba da se vide mogu biti skriveni na ovom mestu, a da su vam ipak pri ruci, uz mogućnost revizije strukture same baze.

Rad se u ovom delu Visual FoxPro-a odvija bez usporenja, čak i na slabim mašinama - veliko unapređenje u odnosu na verziju 3. Čak je i brzina kompajliranja modula, bez obzira o kom tipu se radi, više nego zadovoljavajuća. Kako snaga računara raste, tako relativno ubrzanje u odnosu na Visual FoxPro 3.0 opada, a celokupne testove obavili smo na tri platforme od kojih je najslabija bila 486/80 sa 16 MB RAM-a, srednja 486/100 sa 32 MB RAM-a i SCSI keš kontrolerom na kome je dodatnih 16 MB memorije, a najjača Pentium/133 sa 64 MB RAM-a.

Performanse okruženja

Sličnu lakoću i intuitivnost rada otkrili smo i u Forms Designer-u, u kome se oblikuju svi formulari za aplikacije. Uostalom, Designer-i u Visual FoxPro-u su od samog početka dobro osmišljeni - prate logiku operativnog sistema i generacije Microsoft-ovih "vizuelnih" jezika kojima pripadaju.

Debager je značajno unapređen. U prethodnoj verziji bio je nužna pomoć, ali sada je dostigao nivo uptrebljivosti da ga smatramo pravim pomoćnim alatom u okviru ozbiljnog razvojnog sistema. Tu su sve standardne opcije i prozori u kojima može da se prati izvorni kod, vrednosti promenljivih, stek poziva i izlaz.

Sve u svemu, Visual FoxPro 5.0, posmatrajući performanse razvojnog okruženja, pruža puno: brzina rada i stabilnost, koji direktno utiču na produktivnost rada, su na visini, a većina stvari koje automatski naprave razni "čarobnjaci" i builder-i je funkcionalna toliko da se ne mora previše "kopati" po kodu ili Properties prozoru.

Ovaj prikaz ne bi bio celovit kada se ne bismo osvrnuli na kvalitet krajnjeg proizvoda, prevedene Windows aplikacije. Iako Visual FoxPro nije pravi kompajler (bez obzira da li je generisan APP ili EXE fajl, negde u pozadini se "vuče" Run-time komponenta), brzina kojom se formira prikaz na ekranu je korektna. Nema neprijatnih usporenja čak i na računarima sa samo 8 MB operativne memorije, što je bila mana prethodne verzije. Što se tiče manipulacije podacima u lokalnoj bazi, dovoljno je reći: Rushmore optimizacija: ova tehnologija je, izgleda, i dalje zagonetka za ostale RDBMS sisteme.

Rad sa test bazom čija glavna tabela ima 20000 slogova je bio munjevit, bilo da se radi o sortiranju, filtriranju ili traženju podataka po indeksiranom ključu ili bez njega. Nažalost, isto ne važi ako se podacima prisupa preko ODBC drajvera, ali treba reći da se ni konkurentski sistemi (Access i Visual Basic) ne snalaze mnogo bolje na tom zadatku.

Mesto pod suncem

Kako po svojim mogućnostima, tako i po zvaničnim saopštenjima kompanije, ovaj paket je stavljen rame uz rame sa Visual C++ i Visual J++, što pokazuje da je Access potisnut (ili unapređen?) ka softveru koji je namenjen širokoj publici. Što se Visual Basic-a tiče, njegovo mesto i dalje nije strogo definisano.

Znatno je ozbiljniji izazov uporediti Fox sa proizvodima drugih kuća. Sada je jasno da se radi o sistemu namenjenom razvoju klijent-server aplikacija, ali tu su se drugi već ustoličili. Čini nam se da ti sistemi nemaju nekih značajnih prednosti, pa će pre svega, odlučivati ukusi programera i stare navike koje su često na strani Fox-a.