Het fundament van Microsofts nieuwe architectuur heet .NET. Het is de opvolger van Com en Com+. Voor elk bedrijf met een forse investering in Microsoft-software is het een belangrijke ontwikkeling die in de gaten gehouden moet worden. In een notendop kunnen we stellen dat .NET een technisch hoogstandje is.
Technologisch kan het makkelijk concurreren met vergelijkbare omgevingen. Maar de vraag is of de markt het zal adopteren en of de timing niet geheel verkeerd is.
.NET is Microsofts nieuwe ‘runtime’ omgeving waar veel van hun nieuwe producten en talen gebruik van zullen maken. Maar wat is eigenlijk een ‘runtime’-omgeving?
Dat is de laag software waarop een applicatie draait en die tevens allerlei faciliteiten aan diezelfde applicatie ter beschikking stelt. Een ‘runtime’ omgeving bevindt zich tussen de applicatie en het besturingssysteem (en dus de hardware). Indien een applicatie bijvoorbeeld bestanden wil schrijven of lezen, dan roept ze functies aan die door de ‘runtime’-omgeving geboden worden. Door de jaren heen zijn er al veel van dergelijke omgevingen ontwikkeld. Een van de recentste is natuurlijk de JVM (Java Virtual Machine) en een ander bekend voorbeeld is de Vbrunxxx.dll.exe omgeving (het fundament voor elke Visualbasic-applicatie). Deze omgevingen zijn allemaal anders, ze verschillen in het soort functies dat ze aanbieden, in de talen die ze ondersteunen, en zelfs beveiligingsaspecten en prestaties zijn niet hetzelfde. Uiteraard kan het zijn dat een ‘runtime’-omgeving bovenop een andere ‘runtime’-omgeving opereert. De JVM is daar een voorbeeld van.
Omdat de grenzen van de voorloper COM+ bereikt waren, is een nieuwe weg ingeslagen. Er moest een omgeving gecreëerd worden waarin alle moderne faciliteiten van een ‘runtime’-omgevingen zouden zitten, en niet een versie waarin dat allemaal later is toegevoegd.
Ook al is het de eerste versie, .NET heeft nu reeds technologisch veel te bieden. Enkele voorbeelden. De basis van de gelaagde structuur van .NET wordt gevormd door de CLR (Common Language Runtime). Deze module is verantwoordelijk voor technische zaken als geheugenbeheer en ‘garbage collection’ en is volledig taalonafhankelijk. In principe is voor elke programmeertaal een compiler te ontwikkelen die broncode vertaalt naar de CLR (alhoewel, de taal moet dan wel aan bepaalde eisen voldoen). Zelfs het zogenaamde datatype-systeem en het overervingsmechanisme worden door deze module ondersteund. Hierdoor is het mogelijk dat componenten, geschreven in verschillende talen, zonder problemen gegevens kunnen uitwisselen en dat bijvoorbeeld een Visualbasic-component kan erven van een C++-component.
Boven op de CLR draaien andere modules zoals .NET Framework bases classes, ASP.NET en Windows Forms. De eerste biedt ondersteuning voor XML, de tweede maakt het voor elke .NET-applicatie gemakkelijk om met webservices te werken en de derde creëert een buitenkant voor de applicatie. Omdat niet alle bestaande COM+-applicaties binnen enkele dagen te converteren zijn naar .NET, zijn er standaard faciliteiten om ‘oude’ componenten te laten communiceren met de nieuwe wereld.
Let wel, Microsoft praat ook over de zogenaamde .NET services; dit zijn de bekende backoffice-producten, zoals SQL Server en Exchange. Deze zijn natuurlijk niet herschreven. In feite zijn ze nog steeds opgebouwd met COM+-technologie, maar ze zullen interfaces bieden naar .NET.
Op elke technologie, dus ook op .NET, is altijd kritiek te geven, zeker wanneer een technologie nog zo jong is. Maar als we daar doorheen kijken, moeten we stellen dat .NET een technisch hoogstandje is en zeer veel potentie heeft. Maar technologische superioriteit is geen garantie voor commercieel succes. Het is pas een succes als organisaties massaal gaan overstappen. Wat dat betreft liggen er twee grote gevaren op .NET’s pad.
Allereerst moet er veel software opnieuw ontwikkeld worden, als een bedrijf zou willen overstappen. We kunnen een bestaande Visualbasic-applicatie niet door de nieuwe compiler laten verwerken en CLR-code laten genereren. Delen van de applicatie zullen eerst in VisualBasic.NET herschreven moeten worden, wat toch een andere programmeertaal is. Ook C++-code kan niet zomaar overgeheveld worden. Hetzelfde geldt voor Java-code, die niet één-op-één te converteren is. Veel COM-componenten zullen dus herontwikkeld moeten worden. Tussen haakjes: als u niet in een lage programmeertaal ontwikkeld hebt, maar de Visualbasic, C++ of Java-code heeft laten genereren, dan is er misschien hoop. U behoeft dan alleen te wachten op, bijvoorbeeld, de C#-code generator. Maar niet iedereen heeft deze luxe.
De macro-economische ontwikkelingen vormen een geheel ander gevaar. Indien het met de economie slechter gaat, zijn klanten minder snel bereid over te stappen op nieuwe technologie. Er moet dan meer rendement gehaald worden uit gedane investeringen. De Amerikanen bevinden zich reeds in zo’n periode en wij zijn waarschijnlijk over één jaar aan de beurt. Dit zijn ongunstige tijden om zo’n drastisch nieuwe technologie te introduceren. Zeker als ze een forse herinvestering vereist. Als u tevens bedenkt dat we met .NET niet iets kunnen wat voorheen niet mogelijk was (het wordt alleen gemakkelijker gemaakt), dan zal de behoefte aan overstappen niet groot zijn.
De marketingkracht van Microsoft is formidabel, dat weten we allemaal, maar de vraag is of .NET niet teveel vergt. We zullen het de komende jaren in de gaten houden.
Rick F. van der Lans is onafhankelijk adviseur, gespecialiseerd in softwareontwikkeling, datawarehousing en internet