De nieuwe Team Suite van Visual Studio 2005 heeft alles aan boord voor het ontwikkelen van lokale en gedistribueerde applicaties (zowel systeemgebonden- als webtoepassingen) binnen Microsofts .NET-omgeving. Levert deze ontwikkelsuite alles wat hij belooft?
Microsoft gebruikt het woord ‘Visual’ al jaren bij zowat alle producten in het aanbod die ook maar iets met programmeren te maken hebben. Het woord is niet onterecht gekozen; het slaat op een zeer visuele voorstelling van zaken, die de uiteindelijke programmeerproductiviteit verhoogt. Visual Studio is een soort culminatie van die ontwikkeling. We praten allang niet meer over programmeren alleen, dat is maar één onderdeel van wat je ermee kunt doen.
Net zoals een muziek- of filmstudio alles verenigt wat nodig is om een cd of een film te maken, verenigt Visual Studio alles wat nodig is om applicatie-ontwikkelprojecten tot een goed einde te brengen. Dat omvat het ontwerp, de ontwikkeling en het testen van bedrijfstoepassingen. Daartoe biedt Visual Studio een volledig geïntegreerd geheel van gereedschappen. Daarbij maakt het niet (altijd) uit welke programmeertaal je gebruikt. Wel richt Microsoft zich vooral op zijn eigen programmeertalen: Visual Basic, Visual C#, Visual C++ en Visual J#.
Bij het eerste gebruik vraagt Visual Studio om een voorkeur voor een soort ontwikkelomgeving. Dat kan een algemene omgeving zijn voor ieder doel en iedere taal, een omgeving die meer bedoeld is om in teams te testen, een webontwikkelomgeving en omgevingen voor Microsofts specifieke talen.
Samenwerking
Visual Studio bestaat uit een groot aantal samenwerkende componenten, onder meer een projectbeheerder, een debugger, een of meer compilers, en gereedschappen om de ontwikkeling van gebruikersinterfaces, formulieren en webpagina’s te vergemakkelijken. Visual Studio toont al deze componenten in één interface met in totaal dertien hoofdcomponentvensters. Al deze vensters hebben onderlinge verbindingen en zijn contextgevoelig.
De vernieuwingen in Visual Studio 2005 omvatten verbeteringen voor de vier geboden programmeertalen en de ontwikkelomgeving. Verder zijn de Windows-formulieren en .NET-klassen in het .NET-raamwerk aangepast en uitgebreid. Denk bij dit laatste aan meer en verbeterde ‘controls’ die het mogelijk maken nog vlugger een lay-out te maken en eventueel over te nemen. Deze verfijningen stellen programmeurs volgens Microsoft in staat om hun programma’s te maken met 70 procent minder code.
Onder de naam ClickOnce biedt deze versie het gemakkelijker implementeren van Windows-clientapplicaties. In feite gaat dat op dezelfde manier als het implementeren van webapplicaties. Zelfs het uitrollen van het .NET-raamwerk zelf naar allerlei clientsystemen toe is hiermee mogelijk. Met de webontwikkelkeuze kan Visual Studio voor dynamische websites zijn wat FrontPage is voor statische, claimt de leverancier.
Extra modules
In de Team Suite-editie wordt Visual Studio 2005 uitgebreid met enkele modules die bij uitstek geschikt zijn voor aan één project samenwerkende groepen of teams. De module Team Architect bevat onder meer een verzameling grafische hulpmiddelen specifiek voor architecten of andere leidinggevenden functies in het ontwikkelproces van vooral dienstengeoriënteerde applicaties. Hierbij kan een ontwerp worden getest binnen de bedrijfsomgeving waarin het uiteindelijk moet werken. De gereedschappen waarmee je zulke gedistribueerde applicaties kunt ontwerpen zijn Application Connection Designer (ontwerp van verbindingen tussen applicaties), Logical Datacenter Designer (ontwerp van alle dataopslagsystemen), System Designer (systeemontwerper) en Deployment Designer (implementatieontwerper). Hiermee kan je complete dienstengeoriënteerde architecturen (soa, service oriented architecture) visualiseren en implementeren.
De tweede module is Team Developer. Daarmee krijgen de ontwikkelaars binnen de teams alle gereedschappen die zij nodig hebben om hun werk goed te doen. De derde en laatste module is Team Test. Hiermee kan je software testen voordat de teams die implementeren. De suite heeft verder een apart aan te schaffen optie, Team Foundation; een verzameling van servergebaseerde gereedschappen waarmee teams gemakkelijker kunnen samenwerken, zowel binnen een team als daarbuiten.
Onder de Visual Studio 2005 Team Suite vallen ook begrippen als procesbegeleiding en richtlijnen voor architectuur en oplossingversnellers. Die hebben allemaal tot doel bedrijven te helpen bij het verbeteren van de voorspelbaarheid en betrouwbaarheid van bedrijfskritische toepassingen en systemen. Vergeleken met Visual Studio 2005 Professional Edition bevat de Team Suite in het kort als extra modules ‘code profiling’, statische analyse, ‘unit testing’, ‘code coverage’, projectbeheer en ‘test case’-beheer.
Schrikken
De exacte prijzen voor de Benelux zijn nog niet bekend. Als we de Amerikaanse prijzen bekijken, schrikken we. Om Team Suite volledig te benutten, moet je een MSDN Premium-abonnement hebben naast Visual Studio 2005 Team Suite, dat de drie de rolgebaseerde producten omvat. Dat kost zo’n 3500 dollar als het om opwaarderingen gaat en bijna elfduizend dollar voor nieuwe Microsoft-klanten. In Duitsland vonden we voor dit laatste prijzen tussen 11.590,90 en 13.477,80 euro.
Onthoud dat de twee belangrijkste gereedschappen die je in de Suite krijgt, de tools UML-modeling en ‘unit testing’ zijn. Er is veel meer, maar die verzameling rechtvaardigt geenszins de prijs die Microsoft vraagt, zeker vergeleken met de alternatieven. Bedrijven als Gentleware en Sparx Systems maken geweldige UML-producten, die verkrijgbaar zijn voor een paar honderd dollar (www.gentleware.com, www.sparxsystems.com/ea.htm). Eén uitstekend ‘unit testing’-product is zelfs gratis: het open source NUnit, bedoeld voor .NET en geschreven in C# (www.nunit.org). Het eveneens uitstekende Refactor! van Developer Express (www.devexpress.com/ Products/NET/Refactor) kost 99 dollar. Je hebt dan grofweg vergelijkbare functionaliteit voor in totaal hooguit enkele honderden dollars, terwijl Microsoft elfduizend dollar vraagt.n
Conclusie
We kunnen niet klagen over de geboden functionaliteit, want die is zonder meer enorm, maar Visual Studio 2005 begint met de integratie van de Team Suite-componenten wel zwaar overladen te worden. Dat is merkbaar aan de prestaties. Veel meer zorgen maken we ons over de prijs van de Team Suite met het benodigde MSDN Premium-abonnement. Als de Amerikaanse en Duitse prijzen een indicatie zijn, vragen we ons af hoeveel Nederlandse bedrijven dit ervoor over hebben.
Productinfo
Product: Visual Studio 2005 Team Suite
Producent: Microsoft, VS; www.microsoft.com
Leverancier: Microsoft, www.microsoft.nl
Adviesprijs (excl. btw): circa elfduizend dollar (nieuwe klanten) of 3500 dollar (opwaarderingen) (Benelux-prijzen zijn nog niet bekend), probeerversies (180 dagen) zijn verkrijgbaar bij Microsoft
Systeemvereisten: cpu 2 GHz of beter, Windows 2000 SP4 of hoger (ook Vista en 2003R2 en 64-bit edities (WOW)), minstens 384 MB ram en 2 GB harde schijfruimte vrij
Microsoft.NET
Het .NET-raamwerk is te omschrijven als een omgeving voor het bouwen, implementeren, testen en uitvoeren van webdiensten en -applicaties. Microsoft heeft het ontwikkeld als raamwerk voor universele diensten. Het is gebaseerd op recente internetstandaarden, waaronder XML en UDDI, en dus ook SOAP. Het bijzondere aan het raamwerk is dat er duizenden objectklassen in zitten, onderverdeeld in algemene klassenbibliotheken. Dat doet denken aan Java-ontwikkelbibliotheken. Zelfs de fanatiekste Microsoft-critici zullen moeten toegeven dat het concern een indrukwekkende verzameling klassen heeft weten uit te bouwen. In de loop van de tijd zijn niet alleen klassen toegevoegd, maar ook functionaliteiten. Dat culmineerde uiteindelijk in versie 2.0, dat de basis vormt voor alle .NET 2005-toepassingen.
We horen vaak dat het onderscheid tussen ASP.NET en de rest van .NET niet duidelijk is. ASP.NET is een onderdeel van het raamwerk dat de klassen omvat die te maken hebben met de ontwikkeling van dynamische websites. De open source gemeenschap heeft een alternatief voor .NET: Mono. Het is de bedoeling om .NET via Mono beschikbaar te maken op Unix-platformen (www.go-mono.com/faq.html).
De raamwerkklassebibliotheken vormen samen met de CLR (common language runtime) de basis van .NET. Alles wat ontwikkeld wordt ‘praat’ met deze beide met behulp van de neutrale tussentaal IL (Intermediate Language). Dit wil zeggen dat .NET-compilers altijd naar IL toe compileren, ongeacht de brontaal waar ze van vertrekken. Dat riekt naar de pseudocode (P-code) waarmee sommige Pascal-compilers vroeger werkten en de tokens waarin een Basic-interpreter Basic-broncode omzet. De IL-instructies worden bij de eerste uitvoering van de applicatie omgezet naar de eigen code van de machine waarop de toepassing moet draaien. Dat geeft .NET-applicaties een snelheidsvoordeel tegenover Java-applicaties. .NET-applicaties draaien als systeemeigen code op hun server, terwijl bij Java de code eerst door een JVM geïnterpreteerd moet worden.
CLR verlost Microsoft van veel hoofdbrekens. Het hoeft zich geen zorgen te maken over de uitwisselbaarheid van data en routines tussen programmeertalen. Alle talen worden immers omgezet naar IL en hebben daardoor volledig toegang tot alle functionaliteit van CLR en de raamwerkklassebibliotheken. Daardoor is het mogelijk om een programma in één taal objecten en methodes te laten gebruiken die in een andere taal geschreven zijn. Zelfs klasse-overerving is te mengen. Hierbij heeft Visual Basic ingrijpende veranderingen ondergaan. Niet alleen is het nu objectgeoriënteerd, de syntaxis is ook zoveel verder geëvolueerd dat die nog maar weinig gemeen heeft met het oorspronkelijke Basic. Volgens ons is er functioneel weinig verschil meer tussen Visual Basic en Visual C#.
Ooit begon en stopte men bij een programmeertaal. Inmiddels is een programmeertaal slechts één onderdeel van wat nodig is om een applicatie te bouwen. Microsoft biedt vier programmeertalen: Visual Basic, Visual C++, Visual C# en Visual J# (de laatste is bedoeld voor het effectief ontwikkelen van Java-applets binnen .NET, maar omdat het onvoldoende compatibel is met Suns Java-standaard mag Microsoft de naam Java niet gebruiken). Het is mogelijk programmeertalen van derden te ondersteunen, maar die behoorlijk geïntegreerd krijgen kan problematisch zijn. Bovendien moeten ze compileren naar IL toe.
Hoewel Microsoft alles van .NET alleen op Windows ondersteunt, roept de CLR-constructie toch vragen op. Een tussentaal is namelijk alleen nuttig als je applicaties ook op andere platformen wilt kunnen draaien. We vermoeden dat Microsoft .NET met minimale inspanning ook op bijvoorbeeld Linux zou kunnen implementeren. .NET Compact zorgt ervoor dat het raamwerk op draagbare toestellen (pda’s en gsm’s) kan draaien. Om te ontwikkelen binnen de .NET-omgeving heb je een ontwikkelomgeving nodig. Daarin voorziet Visual Studio.