Publications‎ > ‎Software reviews‎ > ‎

Borland C++ Builder 3

 

Aankondiging in PCM 1998/03: Borland Bouwt Verder Aan C++

Op 10 februari jongstleden kondigde Borland wereldwijd versie 3.0 van C++ Builder aan. En dan te bedenken dat we in het juni nummer van vorig jaar nog uitgebreid versie 1.0 van dit visuele ontwikkelgereedschap voor C++ programmeurs onder handen hadden genomen! De verkoopcijfers liegen er niet om: na het eerste jaar zijn er niet minder dan 125.000 exemplaren afgezet.

Borland C++ Builder bevat nu vrijwel dezelfde functionaliteit als Borland Delphi 3, wat meteen de reuzesprong in de versie-nummering verklaart. Alleen Delphi’s CodeCompletion optie is niet opgenomen in C++ Builder.

Ook C++ programmeurs kunnen nu gebruik maken van de uitermate krachtige ‘decision cubes’, waarmee de gebruiker op grafische wijze door complexe database gegevens kan speuren. Zelfs de ActiveForms technologie is beschikbaar, zodat een C++ Builder formulier nu met één commando kan worden vertaald naar een ActiveX Control. Magisch! Het is zelfs mogelijk om een ActiveForm Control zonder externe afhankelijkheden te genereren. Daar kan Microsoft Visual C++ met MFC, de grote concurrent, nog lang niet aan tippen.

Over MFC gesproken: C++ Builder ondersteunt nu zowel MFC als OWL broncode. ATL wordt zelfs standaard gebruikt om onder meer ActiveForms te genereren. En om de presentator te citeren: "We won’t create another Borland C++ ever. Most likely.". Kortom, C++ Build er is vanaf nu officieel Borland’s enige C++ tool en VCL het enige applicatie-raamwerk.

Borland C++ 5.02, de laatste versie van Borland’s 3GL ontwikkelomgeving voor C++ programmeurs, wordt overigens standaard meegeleverd bij C++ Builder voor het ontwikkelen van toepassingen voor DOS en Windows 3.x. Net als de meeste andere ontwikkeltools kunt u namelijk ook met C++ Builder enkel 32-bits toepassingen ontwikkelen.

Tenslotte is ook achter de visuele C++ schermen vooruitgang geboekt. Zo kan de compiler nu snellere en compactere code produceren, ondersteunt het de Intel MMX instructieset en geïntegreerd Turbo Assembler. Bovendien is er nu ondersteuning voor het standaard COFF formaat, waardoor de integratie met externe bibliotheken enorm verbeterd is.

Of Borland met C++ Builder 3.0 de hooggespannen verwachtingen en beloftes nakomt, kunt u natuurlijk binnenkort lezen in een uitgebreide bespreking bij PCM’s Programming Academy.

In het maart nummer van dit jaar lichtten we al een tipje van de sluier op: Borland C++ Builder 3.0, de opvolger van versie 1.0, werd door Borland gepresenteerd als de beste C++ ontwikkelomgeving ooit. Niet alleen is in C++ Builder 3.0 de volledige functionaliteit van Delphi 3.0 opgenomen, maar bovendien zijn er ook nog een flink aantal extra's toegevoegd, zoals bijvoorbeeld de sterk verbeterde Project Manager en Debugger.

Zoals bekend is Borland Delphi 3.0 uitermate geschikt voor het snel ontwikkelen van applicaties (RAD). C++ Builder 3.0 is hiervoor evenzeer inzetbaar, maar biedt bovendien aanvullende ondersteuning voor het programmeren op een niet-visueel ontwikkelingsniveau. Dit maakt C++ Builder beter geschikt voor het implementeren van onder meer programma bibliotheken en apparaat stuurprogramma's.

C++ Builder 3.0 is beschikbaar in maar liefst vijf edities. De Standard versie is voor beginnende C++ ontwikkelaars bedoeld, de Professional uitgave voor gevorderde ontwikkelaars van applicatie-toepassingen. De Client/Server suite voegt bovendien intranet en internet functionaliteit toe en de Enterprise editie biedt tevens extra ondersteuning voor multi-tier systemen die gebruik maken van onder meer CORBA en DCOM. De opgewaardeerde C++ Builder/400 versie zal tenslotte kunnen worden ingezet op AS/400 systemen, zodra deze beschikbaar komt. PCM legde de hand op de Client/Server editie en onderwierp C++ builder aan een grondig onderzoek.

Borland C++ Builder 3.0


Onderdelen

Een typische C++ Builder 3.0 installatie vergt maar liefst 210 MB schijfruimte. Op de CD-ROM van de Professional en de Client/Server e dities is bovendien InterBase Server 5.0 te vinden, de database server van Borlandse bodem, die zich kan nestelen in slechts 16 MB schijfruimte. Natuurlijk ontbreekt InstallShield Express For C++ Builder ook in deze versie weer niet, zodat het distribueren van ontwikkelde toepassingen in veel gevallen als een formaliteit beschouwd kan worden. De CD-ROM bevat overigens ook OLEnterprise 1.1, beter bekend als MiDAS, oftewel Multi-tier Distributed Application Services Suite! Het is een hele mond vol, Borland's Open Environment voor het ontwikkelen van multi-tier database toepassingen. Installatie programma's voor Microsoft Internet Explorer 4 en Netscape Navigator 4.04 completeren tenslotte het pakket.

Documentatie

De bonte verzameling van online hulpbestanden wordt bijeengehouden door een nieuwe versie van Borland's OpenHelp systeem, waarmee je vrij eenvoudig het hulpsysteem kunt aanpassen aan je eigen wensen. Verder bevat de CD-ROM een Info folder met achtergrond informatie. Heel aardig is tenslotte de toevoeging van de broncode behorend bij Teach Yourself Borland C++ Builder in 14 Days van Kent Reisdorf.

Werkomgeving

De broncode voor de Application Wizard, één van de vele hulpjes in C++ Builder. Links zie je de Object Inspector. Tot de meest in het oog springende tekortkomingen van de C++ Builder 1.0 ontwikkelomgeving behoorden het beperkte project management en de matige debugmogelijkheden. In versie 3.0 heeft Borland deze minpunten gelukkig flink verbeterd. In de Project Manager bevindt een project zich nu altijd in een Project Group, waarin je meerdere projecten kunt onderbrengen en tegelijk kunt compileren, zoals onder meer EXE, DLL, LIB en RC bestan den. Alleen de mogelijkheid om per project meerdere configuraties te specifieren, het zogenaamde debug/release concept, ontbreekt nog steeds.

Coderen

De code in deze afbeelding laat zien hoe eenvoudig het is om bijvoorbeeld in te loggen op een Internet mail server wanneer op de button wordt gedrukt. Rechts toont de Project Manager de bestanden in dit eenvoudige project. De Code Editor van C++ Builder 3.0 biedt een aantal nieuwe hulpmiddelen onder de verzamelnaam Code Insight om de programmeur beter bij te staan in de ontwikkelcyclus. Zo kun je tijdens een debugsessie nu snel de inhoud van variabelen bekijken dankzij ToolTip Expression Evaluation. Handig is ook Code Find, een geïntegreerd hulpje voor het doorzoeken van bestanden. Vernieuwend is echter vooral de Code Templates Expert. Hiermee kun je de editor een compleet syntax-sjabloon in laten voegen door op een sneltoets te drukken, bijvoorbeeld een switch statement met case en default elementen. Dit werkt intuitief en snel en bovendien vergeet je zo nooit meer afsluitende haakjes of break commando's te typen!

Compileren

Borland heeft de C++ Builder compiler flink uitgebreid. Zo ondersteunt deze bijvoorbeeld Dynamic Functions, een variant op de bekende virtuele functies, waarmee de programmeur meer controle krijgt over de verhouding tussen uitvoeringssnelheid en bestandsgrootte.

Met de nieuwe #pragma push en pop instructies is het verder mogelijk om per bronbestand compiler opties te wijzigen en weer ongedaan te maken, zodat je ook op dit lage niveau het compilatieproces kan beinvloeden.

Borland's Turbo Assembler (TASM) is toegevoegd aan C++ Builder zodat zeer tijdskritis che C++ code ook handmatig in Assembler code kan worden gespecificeerd. De meest voor de hand liggende toepassing is wel het optimaliseren van kernroutines in multimedia toepassingen. C++ Builder ondersteunt dan ook de MMX instructieset.

Linken

Een debugsessie in C++ Builder met onder meer twee Debug Inspector vensters. Behalve een snelle compiler is voor een RAD omgeving ook een snelle linker onmisbaar. C++ Builder beschikt dan ook over een incrementele linker, zodat snel kleine wijzigingen in de broncode getest kunnen worden. Een serieuze kanttekening is hier helaas wel op zijn plaats: tijdens het compilatie- en linkproces wordt de status namelijk in een modale dialoog weergegeven, met als gevolg dat je tijdens dit proces niet verder kunt werken. Dit is een niet te onderschatten probleem, aangezien het compileren van C++ broncode simpelweg meer tijd vergt dan bijvoorbeeld Object Pascal code. Hierdoor wordt de irritatiegrens, die nu eenmaal ligt op anderhalve seconde, vrijwel iedere keer opnieuw overschreden. Waarom heeft Borland hier nog steeds geen apart subproces aan toegewezen?

Debuggen

Een debugsessie in C++ Builder met onder meer rechts de Module View en onder de CPU View. Een zeer welkome aanvulling op de debugger is de nieuwe Module View, dat uit drie panelen bestaat. Het eerste paneel toont alle bibliotheken die in het geheugen zijn geladen om de toepassing uit te kunnen voeren. De aanwezige functies verschijnen in het tweede paneel zodra je een module uit het eerste paneel selecteert. De bronbestanden verschijnen bovendien in het derde paneel indien broncode-informatie in de bibliotheek is opgenomen. Door te dubbelklikken op een functie of bestand wordt de broncode in de editor getoond als deze aanwezig is, of anders in de reeds bekende CPU View.

Verder heeft de Debug Event Log een eigen venster gekregen en is de Debug Inspector nu uitgebreid met een tabblad waarin de lokale variabelen bekeken kunnen worden. Ook Data Watch BreakPoints behoren nu tot de mogelijkheden, zodat je een geheugenadres in de gaten kunt houden. Al met al een hele verbetering vergeleken met de vorige versie van C++ Builder, maar dat was ook wel nodig.

Database

Was in de vorige versie van C++ Builder het ontwikkelen van complete database toepassingen al een koud kunstje met Borland's Database Application Architecture, in de nieuwste versie blijkt dat het nóg eenvoudiger kan. De belangrijkste aanwinst is SQL Builder, waarmee je SQL formuleringen visueel kunt opstellen. Hiermee voorkom je niet alleen schrijffouten, maar ook denkfouten! Je kunt de query namelijk tijdens het ontwerpen al uitvoeren, zodat je meteen het resultaat kunt bekijken.

Ook het aantal SQL Links stuurprogramma's is toegenomen. Zo zijn nu ook directe verbindingen mogelijk met Microsoft Access en Microsoft FoxPro databases. Bovendien kun je in plaats van SQL Links ook nog steeds ODBC aanstuurprogramma's gebruiken.

En voor wie dit nog niet genoeg connectiviteit is, kan tenslotte terecht bij de Driver Development Kit. Hiermee kun je Borland Database Engine (BDE) stuurprogramma's schrijven voor zogenaamde legacy gegevenssystemen. Borland zet dus de puntjes op de i met haar alternatief voor Microsoft's ODBC.

Analyse

Voor het analyseren van meerdimensionale database gegevens kun je nu gebruik maken van de nieu we DecisionCube CrossTab. Met het DecisionGrid kun je deelverzamelingen van de database tonen, die je met de TeeChart componenten bovendien als grafiek kunt laten weergeven. Na het toevoegen van een DecisionPivot object kan de gebruiker vervolgens interactief de te analyseren dimensie-configuraties activeren in de gegevensruimte. Met deze verzameling kant-en-klare analyse componenten laat C++ Builder alle concurrenten op grote afstand als beste ontwikkelomgeving voor maatwerk-projecten waarin interactieve gegevensanalyse een primaire rol speelt, of het zou Borland Delphi moeten zijn!

ActiveX

Een ActiveForm project en de Type Library Editor waarmee COM interfaces bewerkt kunnen worden. Met de toevoeging van Borland's ActiveForms/ATL technologie heeft C++ Builder een machtige troef in handen. Een ActiveForm is een volledig C++ Builder formulier in de vorm van een ActiveX control, inclusief eigenschappen pagina's en OLE type bibliotheken. Het stelt je in staat om net als anders een C++ Builder formulier op te stellen met bijvoorbeeld database componenten en Windows controls, maar in plaats van een uitvoerbaar Windows programma is het resultaat nu een ActiveX control. Wie wel eens een poging heeft ondernomen om een ActiveX control met deze functionaliteit te ontwikkelen, zal zijn ogen bijna niet geloven! Zo eenvoudig en voor de hand liggend als dit klinkt, zo simpel is het ook echt. Maar dit is nog niet alles...

Het is een wonder! Zonder typewerk onder meer een ActiveX control om de harde schijf mee te verkennen vanuit Internet Explorer. Zelfs de installatieprocedure verloopt automatisch . Het ActiveForms concept wordt namelijk aangevuld met de nieuwe Web Deployment mogelijkheden, waarmee je internet pagina's inclusief de ontwikkelde ActiveX controls eenvoudig kunt publiceren. Borland C++ Builder ondersteunt onder meer het Cabinet bestand (CAB) bezorgingsmechanisme, zodat de benodigde onderdelen via Microsoft's Internet Explorer automatisch op de computers van de gebruikers kunnen worden geinstalleerd.

Ook het prepareren van type informatie voor COM objecten is nu veel eenvoudiger dankzij de Type Library Editor. Deze verschaft door middel van een Explorer interface een gebruikersvriendelijke schil over de cryptische Interface Definition Language (IDL) bestanden.

Netwerken

Op het gebied van Internet toepassingen kan C++ Builder zich beroepen op een indrukwekkende hoeveelheid geimplementeerde Internet standaarden, zoals bijvoorbeeld HTTP, NNTP, POP3, FTP, SMTP en HTML. Bovendien kun je dankzij C++ Builder's WebBridge nu op transparante wijze zowel extensies voor Microsoft Internet Information Server als voor Netscape Server ontwikkelen.

De Client/Server editie van C++ Builder bevat bovendien middels de MIDAS Development Kit alle benodigde technologie voor het implementeren van meerlagige gedistribueerde diensten die gegarandeerd blijven werken. Door technologieën als OLEnterprise, Remote Data Broker, Constraint Broker, Transaction Resolver en Business Object Broker te combineren is het nu mogelijk om geavanceerde client/server diensten te ontwikkelen met behulp van een C++ RAD gereedschap.

Compabiliteit

C++ Builder bevat een aangepaste versie van de Delphi compiler. Deze maakt het mogelijk om Delphi eenheden en formulieren toe te voegen aan C++ Builder. Nu is dit natuurlijk niet echt verwonderlijk, aangezien de Vis ual Component Library (VCL) in Delphi's Object Pascal is geschreven. Overigens is het niet, en zal het waarschijnlijk ook nooit, mogelijk zijn om C++ Builder eenheden te hergebruiken in Delphi. Dit komt omdat de C++ programmeertaal nu eenmaal veel meer expressiemogelijkheden kent dan Object Pascal, wat een vertaalslag tot een hachelijke onderneming zou maken.

C++ Builder 3.0 ondersteunt ANSI Standaard C++ en wordt geleverd met de Rogue Wave implementatie van de Standard C++ Library, waarvan overigens de bijbehorende documentatie vreemd genoeg alleen aanwezig is in Microsoft Word formaat.

Behalve voor C++ Builder projecten zijn er tevens specifieke C++ compilatie-opties beschikbaar, waardoor de compabiliteit met bestaande C++ broncode flink is toegenomen. De meest tot de verbeelding sprekende toepassing is wel de optie "MFC Compatibility".

C++ Builder bevat zelfs de Microsoft Foundation Classes (MFC) en bestaande Visual C++ projecten kunnen gewoon vanuit de Project Manager worden gecompileerd. Met de Resource Import Tool kun je vervolgens de Visual C++ Resource Scripts converteren naar C++ Builder Forms. Dit klinkt misschien als een heus kunststukje, maar dat is het dan ook… Zo verdwijnen onder meer alle Windows Common Controls! Ondanks dit kan de Resource Import Tool in veel gevallen wel een tijdsbesparing opleveren, aangezien variabelen als vensterplaatsing en -grootte en elementen als Windows Standard Controls wél netjes vertaald worden.

De vraag is natuurlijk alleen waarom je deze moeite zou nemen… Borland's VCL en Microsoft's MFC botsen namelijk. Hoewel C++ Builder prima óf VCL óf MFC toepassingen kan compileren, is een combinatie uitgesloten vanwege de incompatibele headers.

Conclusie

De database ondersteuning was in de vorige versie van C++ Bu ilder al indrukwekkend, maar in versie 3.0 heeft Borland zichzelf toch nog weten te overtreffen door kant-en-klare analyse componenten toe te voegen en meer stuurprogramma's voor Borland's Database Engine mee te leveren. Ook voor Internet en Client/Server toepassingen is C++ Builder een machtige bondgenoot. Vooral met de ActiveForms technologie en de aanvullende Web Deployment functionaliteit ligt Borland ver voor op de concurrentie.

De nieuwe Project Manager is gelukkig al veel uitgebreider, maar de mogelijkheid om meerdere configuraties per project te specificeren ontbreekt helaas nog steeds. De modaal opererende compiler en linker vormen de enige werkelijke smet op al dit fraais. Afgezien hiervan is er echter niet aan te ontkomen: Borland C++ Builder hééft het gewoon.

Gegevens

Produkt: C++ Builder 3.0:
Producent: Borland:
Toepassing: C++ RAD omgeving voor 32-bit Windows applicaties:
Minimale systeemeisen: 486DX/100MHz processor, Windows 95/NT4 besturingssysteem, 24MB intern geheugen en 175 Mb harde schijfruimte:
Adviesprijzen excl. BTW voor volledige versie / upgrade van C++ Builder 1.0: Standard: 225, Professional: 1300 / 600, Client/Server: 5850 / 4700, Enterprise en C++ Builder/400: nog niet bekend:
Leverancier: Borland;Telefoon Nederland en België: +31 20 503 51 00

Afbeeldingen

De broncode voor de Application Wizard, één van de vele hulpjes in C++ Builder. Links zie je de Object Inspector. De code in deze afbeelding laat zien hoe eenvoudig het is om bijvoorbe eld in te loggen op een Internet mail server wanneer op de button wordt gedrukt. Rechts toont de Project Manager de bestanden in dit eenvoudige project. Een debugsessie in C++ Builder met onder meer twee Debug Inspector vensters. Een debugsessie in C++ Builder met onder meer rechts de Module View en onder de CPU View. Een ActiveForm project en de Type Library Editor waarmee COM interfaces bewerkt kunnen worden. Het is een wonder! Zonder typewerk onder meer een ActiveX control om de harde schijf mee te verkennen vanuit Internet Explorer. Zelfs de installatieprocedure verloopt automatisch.