In deze serie besprekingen van ontwikkelomgevingen uit de Microsoft Visual Studio 6.0 suite kwam in het vorige nummer Visual C++ 6.0 aan de orde, dat een zeer krachtig gereedschap is om functionele modules te ontwikkelen waarin uitvoeringssnelheid en robuustheid een belangrijke rol spelen. Ditmaal is het de beurt aan Microsoft Visual Basic 6.0, dat al jaren lang één van de favoriete gereedschappen is voor het snel ontwikkelen van visueel aantrekkelijke toepassingen voor eindgebruikers.
Microsoft Visual Basic 6.0: Programmeren in zakelijke omgeving
Kader: Van VBSQL tot ADO
Toegang tot gestructureerde gegevens speelt vooral in veel zakelijke applicaties een sleutelrol. Het is dan ook niet verwonderlijk dat bestaande database technologieën voortdurend verder ontwikkeld worden. Een visuele programmeeromgeving, bij uitstek geschikt voor zakelijke maatwerkoplossingen, dient dan ook goede ondersteuning te bieden voor het benaderen van allerlei databanken. Microsoft Visual Basic 6.0 biedt ontwikkelaars dankzij Active Data Objects (ADO) nu één flexibel model voor het benaderen van meer databronnen dan ooit te voren. Om deze nieuwe methode voor gegevenstoegang eenvoudiger in perspectief te kunnen plaatsen, kan een korte terugblik verhelderend werken.
Oorspronkelijk bood Visual Basic alleen ondersteuning voor toegang tot Microsoft SQL Server databases, via de Visual Basic Structured Query Language (VBSQL). Dit was niet meer dan een omhulsel voor de op C gebaseerde DB-Library functies. Van object-oriëntatie was dan ook geen sprake.
Een hele verbetering was dan ook de komst van de succesvolle Jet Database Engine, Microsoft's Joint Engine Technology. Met dit toegangsmodel kun je niet alleen Indexed Sequential Access Method (ISAM) databronnen benaderen zoals Access en dBase, maar indirect ook ODBC bronnen. De Jet Engine is benaderbaar via Data Access Objects (DAO), een object-geörienteerde en relatief eenvoudige abstractielaag.
De meest geaccepteerde interface voor het bewerken van relationele gegevens is echter Open Database Connectivity (ODBC), waarvan enkele belangrijke kenmerken de hoge uitvoeringssnelheid en de onafhankelijkheid van producent en besturingssysteem zijn. Het is alleen een typische op C gebaseerde API en dus niet object-geöriente erd.
Om Visual Basic programmeurs beter toegang te geven tot ODBC databronnen werd DAO uitgebreid met een speciale ODBCDirect modus, een nogal pragmatische oplossing. Mede daarom werd dan ook een nieuw object model rondom de ODBC API ontwikkeld, Remote Data Objects (RDO). Hierin is extra aandacht besteed aan het efficiënt benaderen van niet-locale databases, zodat deze technologie ook in internet scenario's goed inzetbaar is.
De hierboven genoemde object modellen en API's hebben met elkaar gemeen dat ze gebaseerd zijn op Structured Query Language (SQL), een standaard taal om vragen over gerelateerde gegevens te formuleren. Ook alle Microsoft technologieën van de afgelopen jaren hebben minimaal één overeenkomst, namelijk het Component Object Model (COM). Het is dan ook geen verrassing dat Microsoft ook voor het benaderen van gestructureerde gegevens een verzameling object interfaces ontwikkeld heeft, OLE DB. Deze technologie biedt een uniform model voor toegang tot zowel database gegevens als anderssoortige opslagplaatsen. Zo is in OLE DB onder meer de volledige ODBC functionaliteit beschikbaar dankzij een SQL implementatie.
Voor Visual Basic gebruikers hebben de OLE DB interfaces echter één probleem: ze zijn niet aanroepbaar vanuit Visual Basic! Mede hierom is het Active Data Objects (ADO) model ontwikkeld. ADO is dus niet alweer een implementatie van een database interface zoals DAO en RDO, maar verschaft een algemeen programmeermodel rondom OLE DB. Dit is de kracht van ADO.
Driedelig
Visual Basic 6.0 is beschikbaar in drie versies. Zoals de naam al doet vermoeden, is de Learning Edition een flink uitgeklede versie van de Professional Edition, waarin je onder meer niet de beschikking hebt over opgewaardeerde database functionaliteit en de nieuwe Internet-relateerde componenten. De Enterprise Edition bevat tenslotte team-geörienteerde toevoegingen zoals Visual SourceSafe, Visual Component Manager en BackOffice onderdelen zoals SQL Server.
Hulp
![Het nieuwe HtmlHelp biedt zowel in de index als in de gevonden onderwerpen voor de Visual Basic programmeur een schat aan irrelevante informatie.](../../../lh6.ggpht.com/marco.rene/SMaNjKk343I/AAAAAAAAAlY/1zk1L1yiY-4/s128/hulp.gif)
In navolging van Microsoft's Internet Explorer heeft nu ook Visual Basic, als onderdeel van de Visual Studio suite van ontwikkelomgevingen, de sprong gewaagd van het standaard Windows Help systeem naar HtmlHelp. Tja, een vooruitgang waar je maar aan zult moeten wennen. Voor gebruikers van de volledige Visual Studio suite van ontwikkelomgevingen wegen de voordelen misschien wel op tegen de nadelen, maar zeker niet voor
de gemiddelde Visual Basic programmeur. Even snel informatie over Visual Basic-taken opzoeken vergt nu namelijk een aanzienlijk groter filtervermogen vanwege de volledige integratie van alle Microsoft hulpbestanden, en deze bestaat nu eenmaal voor een aanzienlijk deel uit Win32 SDK's en C++ documentatie.
Weliswaar heeft Microsoft getracht deze tekortkoming af te vangen met behulp van een "Visual Basic Documentation" Active Subset optie, maar deze toont vooral aan dat het leeuwendeel van de documentatie niet gerelateerd is aan Visual Basic, gezien de indrukwekkende hoeveelheid inactieve ingangen. Gelukkig kun je wel zelf een kernachtige Visual Basic documentatie subset definiëren, waarmee in ieder geval op de Search pagina niet-relevante documentatie buiten beeld blijft...
Conceptueel
![Een typische verzameling vensters in Visual Basic bestaat onder meer uit het Project Window rechtsboven met daaronder het Properties Window. Aan de linkerzijde bevindt zich standaard het Toolbox venster met de beschikbare object-iconen. Formulier- en codevensters vullen al snel de nog overgebleven werkruimte. De Object Browser biedt korte informatie over alle opgenomen componenten.](../../../lh3.ggpht.com/marco.rene/SMaNjLU403I/AAAAAAAAAlg/ptmSh3UuaLA/s128/conceptueel.gif)
De Visual Basic werkruimte is vrijwel identiek aan de vorige versie. Ook het ontwikkelproces binnen deze nieuwe versie van de bekende vierde-generatietaal werkruimte speelt zich dus af rond applicatieformulieren, waarop je objecten uit het Toolbox Window plaatst. De eigenschappen van ieder component definiëer je vervolgens in het Properties Window. Tenslotte codeer je de specifieke eigenschappen van de toepassing door de juiste object-gebeurtenissen te implementeren. Visual Basic biedt bovendien een informatief overzicht over de eigenschappen, methoden en gebeurtenissen van alle relevante objecten in de Object Browser.
Assistentie
![De meeste voorbeeldprogramma's bij Visual Basic zijn nogal kleinschalig, maar het Visual Data Manager project is hier met zijn 34 formulieren een uitzondering op. Bovendien is dit eenvoudige alternatief voor Microsoft Access ook vanuit de ontwikkelomgeving als Add-In aan te roepen.](../../../lh4.ggpht.com/marco.rene/SMaNs7ay9JI/AAAAAAAAAlo/VT7uUDuuI3g/s128/visdatasample.gif)
Ook beschikt Visual Basic over een aantal handige wizards. Zo kun je met de VB Application Wizard, de meest uitgebreide assistent, in enkele stappen het raamwerk voor bijvoorbeeld een Verkenner-achtige toepassing laten genereren. De Data Form Wizard is hier weer een onderdeel van, zodat je meteen geïntegreerde database formulieren kunt toevoegen. Hierbij kwam tijdens het testen overigens wel een foutje aan het licht. Het uitvoeren van een gegenereerd project inclusief database-formulieren faalt helaas consequent met de melding "Compile error: User-defined type not defined". Beproefde programmeurslogica, in dit geval het knippen, compileren en terugplakken van de bewuste code, biedt gelukkig ook in dit geval uitkomst!
Internet
![Voor het ontwikkelen van een Internet Information Server Application met behulp van een WebClass is kennis van HTML noodzakelijk.](../../../lh6.ggpht.com/marco.rene/SMaNtI_niHI/AAAAAAAAAlw/p35x7-ccsaU/s128/iisinternet.gif)
Met Visual Basic 6.0 kun je zowel Internet Information Server (IIS) extensies als Dynamic HTML (DHTML) applicaties ontwikkelen. Een IIS Application is een ActiveX bibliotheek die via de webserver HTML code terugstuurt naar de gebruiker. De internet pagina die dit oplevert is de interface van de toepassing voor de gebruiker.
Een IIS Application is echter niet hetzelfde als een Active Server Pages (AS
P) toepassing, alhoewel je met beide applicatietypes dynamische websites kunt bouwen waarvan de programmacode op de centrale webserver wordt uitgevoerd zodat bladeraaronafhankelijkheid gewaarborgd kan worden. Een ASP web is echter gebaseerd op een mengeling van scripts en HTML code, een Visual Basic IIS Application is daarentegen een webgebaseerd programma met een centrale module, de zogenaamde WebClass. Deze module bevat altijd een aantal WebItems, zoals HTML sjablonen en afbeeldingen. Wanneer de gebruiker vanuit zijn bladeraar een bepaalde procedure in het WebClass object activeert, zou deze centrale module bijvoorbeeld een zakelijke berekening kunnen uitvoeren en het resultaat in een HTML sjabloon kunnen terugsturen.
![De DHTML Page Designer toont rechts de structuur van de internet pagina. Aan de rechterkant van het venster zie je het opgemaakte resultaat.](../../../lh6.ggpht.com/marco.rene/SMaNtLQ_vuI/AAAAAAAAAl4/suAVB59kmk4/s128/dhtmlinternet.gif)
Een DHTML Application bestaat uit een verzameling HTML pagina's waarin tevens Dynamic HTML is opgenomen en een gecompileerde Visual Basic module. Ook dit is een ActiveX bibliotheek, maar in tegenstelling tot een IIS Application wordt een DHTML Application in de bladeraar van de eindgebruiker uitgevoerd.
De DHTML pagina's kun je visueel bevolken met componenten op het HTML blad van de Visual Basic Toolbox door ze eenvoudigweg naar de DHTML Page Designer te verslepen. Dit ontwerpvenster bestaat uit twee onderdelen. De linkerhelft toont een overzicht van de pagina in een boomstructuur en in de rechterhelft kun je de HTML objecten en andere ActiveX controls een precieze locatie op de DHTML pagina geven. De DHTML Page Designer vervangt in dit type toepassing dus het standaard Visual Basic formulier, temeer omdat ook hier het dubbelklikken op een object het broncode venster opent.
De beoogde doelgroep voor DHTML Applications zijn de intran
et-applicatieontwikkelaars, niet alleen omdat een DHTML Application enkel in Internet Explorer 4 of hoger te gebruiken is, maar bovendien kan de interactie met de gebruiker binnen de bladeraar geregeld worden, wat niet alleen de centrale server ontlast maar bovendien de uitvoeringssnelheid ten goede komt.
Ondanks de centrale rol die HTML pagina's innemen binnen dit soort projecten biedt Visual Basic overigens geen geïntegreerde HTML editor. Misschien speelt dit gemis wel een rol bij de algemene indruk die het ontwikkelen van met name Visual Basic IIS Applications achterlaat, namelijk het wat onbestemde gevoel dat dit ontwikkelproces in Visual Basic 6.0 ondanks de aanwezige voorzieningen eigenlijk nog niet eenvoudig genoeg is.
Database
![Het Data View venster in een Data Project toont de structuur en desgewenst ook de inhoud van de databronnen. Van hieruit kun je bijvoorbeeld een tabel naar het Data Report Designer venster verslepen.](../../../lh5.ggpht.com/marco.rene/SMaNtaBJcXI/AAAAAAAAAmA/omYdy09PgN4/s128/database.gif)
Nieuw in Visual Basic 6.0 is het gebruik van het Active Data Objects (ADO) model voor het benaderen van gestructureerde gegevens. Dit betekent in de praktijk de genadeslag voor Data Access Objects (DAO), de voormalige Visual Basic standaard voor database-toegang. In het bijbehorende kader kun je een overzicht lezen van de in Visual Basic geïntroduceerde standaarden voor het toegankelijk maken van databasegegevens door de jaren heen, zodat je deze logische vernieuwing eenvoudiger in perspectief kunt plaatsen.
Met het New Data Project commando kun je een nieuw database project opzetten, dat onder meer de Data Environment Designer en de Data Report Designer vensters bevat. De Data Environment Designer toont de databron connecties die in het project gedefiniëerd zijn. Van hieruit kun je vervolgens het Data Window openen waarin je zowel de interne structuur als de inh
oud van de databron kunt bekijken én wijzigen. Bovendien is het mogelijk om vanuit het Data venster onderdelen zoals individuele tabellen en procedures naar het Data Environment venster of een applicatieformulier te verslepen. Kortom, na het definiëren van een connectie object is een database invoerscherm met slechts één muisbeweging opgezet. Hierna hoef je enkel nog navigatieknoppen toe te voegen.
De nieuwe Data Report Designer lijkt sterk op de Report Design View van Microsoft Access 97. De rapportage pagina is opgebouwd uit een aantal horizontale regionen, zoals bijvoorbeeld de rapportage kopruimte en de inhoud sectie voor de tabelrij gegevens. En ook hier geldt dat vanuit de Data View een databron object direct naar een rapportage regio kan worden gesleept. Op het gebied van database functionaliteit heeft Visual Basic kortom genoeg functionaliteit te bieden.
Conclusie
Vergeleken met de vorige versie biedt Microsoft Visual Basic 6.0 op twee aandachtsgebieden fundamentele vernieuwingen, namelijk de ondersteuning voor het ontwikkelen van Web-gebaseerde toepassingen en de overstap naar het Active Data Objects model voor het benaderen van gestructureerde gegevens. Minpunt is de nadrukkelijke integratie van alle hulpgegevens in het nu op HtmlHelp gebaseerde documentatiesysteem. Uit deze vernieuwingen blijkt dat Microsoft Visual Basic vooral een prominentere rol wil geven in zakelijke intranet-omgevingen. Dit heeft echter wel tot gevolg dat Visual Basic voor de hobby-programmeur eigenlijk weinig méér te bieden heeft dan de vorige versie.
Gegevens
Produkt: Visual Basic 6.0 Client/Server Suite
Producent: Microsoft
Toepassing: Applicatie- en COMponentontwikkeling in Basic.
Minimale systeemeisen: 80486 processor; Windows 95; 16 MB geheugen; 76 MB harde schijf-ruimte.
Prijzen incl. BTW: Learning Edition: EUR 135,68 / EUR 72,15; Professional Edition: EUR 711,98 / Upgrade: EUR 358,03; Ent
erprise Edition: EUR 1633,15 / Upgrade: EUR 993,32
Adviesprijzen exclusief BTW: Full Version / Upgrade Standard: 225 (geen upgrade), Professional: 1700 / 600, Client/Server: 6075 / 4875
Leverancier: Microsoft, Telefoon Nederland: +31-235689189, Telefoon België: +32-27303911
Internet:
http://msdn.microsoft.com/vbasic/
Afbeeldingen