CA-Visual Objects is een volledig object-geöriënteerde programmeeromgeving voor het
ontwikkelen van database applicaties voor Windows, waar vooral ontwikkelaars van
CA-Clipper produkten lang op gewacht hebben. In het december nummer van PCM heeft u al een
korte bespreking kunnen lezen over de eerste versie van dit produkt dat op eenvoudige
wijze toegang verschaft tot zowel Xbase- als SQL-databases. Nu, enkele maanden later, is
er een nieuwe versie verkrijgbaar die de Windows internationalisatie standaard volledig
ondersteunt. Tevens wordt een patch meegeleverd die een aantal versie 1.0-problemen
oplost. Kortom, dit lijkt een goed moment om eens uitvoerig naar Visual Objects te kijken. Voor het installeren van deze nieuwe versie van Visual Objects moet wel enige tijd worden vrijgemaakt, want dit produkt wordt geleverd op 18 diskettes. Het vormt overigens wel een goede aanleiding om een eerste blik te werpen op de uitgebreide bijgeleverde documentatie. Opvallend is de aandacht die besteed wordt aan het documenteren van de overgang van DOS naar Windows en in het bijzonder de overgang van Clipper naar Visual Objects. Vanzelfsprekend ontbreken ook de verscheidene naslagwerken en tutorials niet. ![]() Visual Objects bevat standaard uitgebreide libraries voor onder meer de GUI-implementatie, database management en database rapportage. Minstens even belangrijk is echter de open architectuur van Visual Objects die ondersteuning door externe modules mogelijk maakt. Bovendien kunnen bijvoorbeeld DLL’s niet alleen worden aangeroepen, ze kunnen ook gemaakt worden binnen Visual Objects. Tevens wordt het Windows Clipboard en Dynamic Data Exchange (DDE) ondersteund. ![]() De incrementele compiler van Visual Objects genereert native-mode machine code. Aangezien compilers voor Clipper pre-processed interpreter code genereren, zal het duidelijk zijn dat Visual Objects applicaties vele malen sneller kunnen zijn. Na volledige optimalisatie kan de applicatie tot 60 maal sneller uitgevoerd worden! De incrementele compiler werkt met entiteiten in plaats van bestanden. Functies, procedures en constantes zijn voorbeelden van entiteiten. Mede doordat applicaties uit deze kleine basiseenheden bestaan, kunnen kleine wijzigingen razendsnel worden doorgevoerd. ![]() ![]() Compabiliteit met CA-Clipper Maximale compabiliteit met Clipper is één van de uitgangspunten geweest tijdens het ontwikkelen van Visual Objec ts. Het maximaliseren van de executie snelheid heeft echter ook altijd hoge prioriteit gehad. Het voor de hand liggende conflict dat deze prioriteitenstelling veroorzaakt, zal dan ook hoogstwaarschijnlijk een belangrijke rol hebben gespeeld in de benodigde ontwikkelingsduur van Visual Objects. ![]() Het feit dat de bijzonder vrije Xbase-syntax in grote mate naast de veel striktere syntax van Visual Objects kan bestaan, is op zich al een bewonderenswaardige prestatie. Dit houdt echter niet in dat het overzetten van een Clipper applicatie naar Visual Objects pijnloos zal verlopen. Hieronder volgt een opsomming van de belangrijkste problemen die aan het licht kwamen bij het overzetten van een eenvoudige master-detail applicatie naar Visual Objects. Wanneer de Clipper applicatie gebruik maakt van third-party libraries, zal eerst contact moeten worden opgenomen met de betreffende leveranciers om een nieuwe versie aan te vragen die compatibel is met Visual Objects. Tijdens het importeren moet de source code namelijk geconverteerd worden naar entiteiten. Helaas wordt tijdens dit proces eventueel voorafgaand commentaar aan functies in veel gevallen verkeerd toegewezen aan de entiteiten, wat te maken lijkt te hebben met de aanwezigheid van lege regels tussen het commentaar en de functie zelf. Bovendien werden enkele functies zelfs helemaal niet geïmporteerd. Een ander gevolg van het gebruik van entiteiten binnen Visual Objects is dat alle expressies die betrekking hebben op een bestand, zoals preprocessor directives en MEMVAR declaraties, aangepast zullen moeten worden. Ook alle figuratieve constantes dienen hergeformuleerd te worden. Een andere oorzaak voor compabiliteitsproblemen wordt gevormd door het feit dat Visual Objects een aantal gereserveerde woorden bevat die niet in Clipper gedefinieerd zijn. Hiertussen bevinden zich enkele veel voorkomende, zoals DATE, STRING en FIELD. Dit levert vooral problemen op indien deze woorden refereren naar veldnamen in databases. De enige database-onafhankelijke oplossing voor dit probleem is het definieren van een alias voor de conflicterende veldnaam. Hiervoor bevat Visual Objects wel een speciale functie. Tenslotte kan het gebruik van de macro operator in een code block tot ander gedrag leiden. In Visual Objects worden alle code blocks geconstrueerd door de compiler om de executie snelheid te vergroten. Daardoor worden eventuele macro’s binnen code blocks altijd laat gebonden. Aangezien macro-evaluatie in Clipper afhankelijk is van de aanwezigheid van haakjes, kan de applicatie zich binnen Visual Objects ongewenst gaan gedragen. Nogmaals, het feit dat de mogelijkheid bestaat om Clipper applicaties over te zetten naar Visual Objects is op zich een bewonderenswaardige prestatie, maar afhankelijk van de gehanteerde programmeerstijl kan dit proces toch een tijdrovende bezigheid blijken te zijn. Hoewel het migratieproces uitstekend gedocumenteerd wordt, zou het geen overbodige luxe zijn indien er een vorm van on-line assistentie we rd aangeboden. De beslissing om tot migratie over te gaan hangt dan ook af van het gewenste uiteindelijke resultaat. Voor een geoptimaliseerde versie van het huidige Clipper programma kan het overzetten naar Visual Objects een alternatief zijn met toekomst perspectief. Indien het doel echter is een volwaardige, object-geöriënteerde GUI-Windows applicatie te maken, dan is het beter om eerst de applicatie-architectuur geheel te herschrijven, waarin dan naderhand alsnog grote delen code uit de originele applicatie na optimalisatie hergebruikt zouden kunnen worden. Platforms Tenslotte dringt met de introduktie van Visual Objects voor Windows aan het einde van het 16-bits tijdperk de vraag zich op wanneer men de 32-bits versie kan verwachten. Tot op heden ondersteunt Visual Objects namelijk enkel Windows 3.1x en Windows onder OS/2. Indien er binnen afzienbare tijd ook een 32-bits versie van Visual Objects verschijnt, zou dat de overstap naar deze professionele programmeeromgeving nog makkelijker maken. Conclusie CA-Visual Objects is mede door zijn open architectuur en krachtige onderdelen een professionele programmeeromgeving voor het ontwikkelen van database applicaties voor Windows. Het bevat tevens een mogelijkheid om CA-Clipper applicaties over te zetten naar Visual Objects, maar dit migratiepad zal in veel gevallen niet pijnloos blijken te zijn. Het wachten is nu op de 32-bits versie. Gegevens Besproken programma: CA-Visual Objects versie 1.0a. Producent: Computer Associates. Toepassing: Programmeeromgeving voor het ontwikkelen van database applicaties voor Windows. Systeemeisen (aanbevolen): DOS 6.2, Windows 3.1x, 55 Mb harde-schijfruimte, 16 Mb RAM. Prijs: f 1890. Leverancier: Computer Associates Products Nederland B.V., t elefoon 03402-48345. Afbeeldingen ![]() ![]() ![]() ![]() ![]() |
Publications > Software reviews >