Publications‎ > ‎Software reviews‎ > ‎

Hink-(over)stap-sprong

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.

CA Visual Objects 1.0a


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.

CA-Visual Objects, direct na het opstarten. Wanneer het installatieprocess voltooid is en Visual Objects gestart wordt, verschijnt de MDI-werkruimte, waarin slechts één window geopend is. Dit window, dat zelf ook weer een werkruimte is met toolbar en statusbar, laat zien welke componenten zich in de repository, de opsla gplaats van Visual Objects, bevinden. De repository bevat alle applicaties en libraries. Het voordeel van deze architectuur is dat alle onderdelen automatisch beheerd en bijgewerkt kunnen worden. Er bestaat dus geen make-file.

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 class-browser tool en de code voor het wijzigen van de sorteersleutel. De toegang tot databases binnen Visual Objects applicaties wordt geregeld door één protocol. Met dit protocol kunnen zowel Xbase- als SQL-databases benaderd worden. Hierdoor kunnen binnen één applicatie beide typen databases worden onderhouden met dezelfde code. Xbase-databases worden benaderd via Replaceable Driver Technology (RDD) en SQL-databases via Open Database Connectivity (ODBC).

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.

De menu-editor en deel 1 van het 'event handling by name'-concept: Event     name is CustOrd. Met behulp van de visual designer-tools die vrijwel volledige code genereren, is het binnen Visual Objects ook voor gevorderde eindgebruikers vrij eenvoudig om een standaard master-detail applicatie te maken. Dit komt mede vanwege het ‘event handling by name’-concept. Een aktie van de gebruiker kan bijvoorbeeld het verzenden van de gebeurtenis "Print" veroorzaken. Indien deze string in de applicatie verwijst naar een rapportage functie, dan wordt deze automatisch uitgevoerd. Of als de string "Adressen" wordt verzonden en deze komt overeen met de naam van een database window, dan wordt deze automatisch geopend. Er zijn dus geen expliciete message-handlers nodig.

De window-editor en deel 2 van het 'event handling by name'-concept: Name is     CustOrd. Een tijdelijk nadeel van het werken binnen de werkruimte van Visual Objects met zijn entiteiten en verscheidene tools is echter wel dat dit een zekere gewenningsperiode vergt. Zonder veelvuldig gebruik te maken van de overigens prima schriftelijke documentatie zal in veel gevallen de kennismaking met Visual Objects onnodig lang duren. De online-help is namelijk wel uitgebreid, maar niet praktisch. De contextgevoelige helpfunctie is ronduit gebrekkig. Deze werkt enkel naar behoren indien het help systeem na iedere raadpleging opnieuw wordt afgesloten.

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 eenvoudig uit te voeren order entry-applicatie voorbeeld uit de 'Getting     Started'-manual kan een master-detail relatie onderhouden en kan tevens zowel Xbase-     als SQL-databases benaderen. Het pad dat Visual Objects biedt voor het overzetten van Clipper applicaties naar Windows zonder dat de code geheel dient te worden herschreven, levert in eerste instantie een DOS-achtig terminal window op. Dit karakter-gebaseerde window kan daarna eventueel nog worden uitgebreid met onder meer menu’s en buttons. Het belangrijkste voordeel is echter de mogelijkheid om relatief eenvoudig de executie snelheid drastisch op te voeren door de variabelen lokaal te definiëren en te typeren.

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

CA-Visual Objects, direct na het opstarten. De class-browser tool en de code voor het wijzigen van de sorteersleutel. De menu-editor en deel 1 van het 'event handling by name'-concept: Event name is CustOrd. De window-editor en deel 2 van het 'event handling by name'-concept: Name is     CustOrd. Het eenvoudig uit te voeren order entry-applicatie voorbeeld uit de 'Getting     Started'-manual kan een master-detail relatie onderhouden en kan tevens zowel Xbase-     als SQL-databases benaderen.