Voorwoord
Veel softwarebedrijven in Nederland zijn op een gegeven moment met Microsoft.NET in aanraking gekomen. Het heeft niet lang geduurd totdat veel van hen besloten hebben tijd en energie in het eigen maken van Microsoft.NET te steken.
Het resultaat hiervan is, dat veel bedrijven kennis en ervaring hebben opgedaan met Microsoft.NET en voor zichzelf bepaald hebben met welk perspectief naar de nieuwe technologie gekeken moet worden.
Microsoft.NET is programmeer/technisch gezien natuurlijk prachtig maar, men moet zich goed oriënteren voordat men daadwerkelijk de beslissing neemt Microsoft.NET binnen de organisatie te implementeren.
Ik hoop dat ik hiermee een helder beeld over Microsoft.NET kan schetsen en probeer de meest gestelde vragen van organisaties over Microsoft.NET te kunnen beantwoorden.
G. Babakhani (http://www.truesoftware.nl/dotnet.php)
1 .NET in volkstaal.
2 De toegevoegde waarde van .NET
3 Overstappen? Implementeren? Migreren?
4 Waar moeten we als bedrijf beginnen?
5 Welke programmeertaal zullen we als standaard kiezen?
6 Zullen we met .NET wachten? En waarom?
7 Onze mensen tot Microsoft.NET opleiden? Externe medewerkers inhuren?
8 Wat kost .NET?
9 De levensduur van huidige applicaties
.NET in volkstaal.
.NET kan je zien als een raamwerk waarmee men beter, efficiënter en gemakkelijker informatievoorzieningen binnen een organisatie kan realiseren. Door .NET geschreven software is bijvoorbeeld communicatie tussen applicaties vele malen efficiënter en veiliger dan wat we op dit moment als standaard hebben. Microsoft.NET is in wezen een evolutie naar betere softwareontwikkeling technologie.
Microsoft.NET bestaat op dit moment uit de volgende drie onderdelen.
- .NET Framework
- .NET Servers
- .NET Web Services
.NET Framework:
is het ruggengraat van alle software die gebruik maakt van .NET functionaliteit. Op het eerste gezicht is het een software programma die op je computer wordt geïnstalleerd en voor de rest merkt "een normale gebruiker" er weinig van. In de volgende versies van Windows wordt .NET technologie ongetwijfeld standaard met het besturingsysteem geleverd.
.NET Servers:
Zijn in principe Microsoft server producten die op verschillende gebieden voor .NET geoptimaliseerd zijn. Denk aan SQL Server 2000 en BizTalk Server 2000
.NET Web Services:
Zijn web/internet diensten die omvangrijke mogelijkheden voor zowel ontwikkelaars als gebruikers met zich mee brengen. .NET Passport en UDDI zijn goede voorbeelden hiervan. <-•
Wat is de toegevoegde waarde van software ontwikkeld met .NET vergeleken met software ontwikkeld met huidige softwareontwikkeling standaarden?
Programmeren in .NET is makkelijker dus tijd besparend. De software architect hoeft voor het oplossen van een bepaald probleem vaak minder te programmeren. In .NET zijn er talloze programmeer bibliotheken beschikbaar die nog eens makkelijk in een hiërarchisch model te bereiken zijn.
De .NET architectuur is nauwkeurig, hiërarchisch en duidelijk opgezet. De software architect kan minder snel "spaghetti code" schrijven. programmeren in de .NET architectuur is zodanig bepaald dat de programmeur wordt geacht een bepaald pad te volgen als hij werkende software wil ontwikkelen. Echter kan een ongedisciplineerde programmeur nog steeds foute , oftewel "spaghetti code" ontwikkelen. .NET helpt alleen een duidelijk patroon te volgen.
Omdat in .NET geschreven software letterlijk en figuurlijk uit verschillende stukken kan bestaan, is het onderhouden daarvan vergeleken met de huidige standaarden vele malen eenvoudiger en tijdbesparend.
Installeren van in .NET geschreven software is in de meeste gevallen een simpele kopieerslag , welke feitelijk geen aparte installatieprogramma nodig heeft. Men hoeft alleen de benodigde bestanden in de juiste map te kopiëren en klaar is Kees. Hetzelfde geldt voor het verwijderen van .NET applicaties. Men hoeft alleen maar de applicatiebestanden van de hardeschijf te verwijderen. Dit helpt vervuiling in het systeemregister te voorkomen. Een ander voordeel is dat twee verschillende applicaties nooit elkaars bestanden in het systeemregister kunnen vervangen of verwijderen.
De .NET architectuur ondersteunt oneindig veel verschillende programmeertalen. Dit is mogelijk, omdat onder de motorkap, .NET, een tussenliggende programmeertaal heeft waar naar alle .NET geschreven software wordt vertaald. Dit betekent dat het niet meer uit maakt in welk programmeertaal een product ontwikkeld is. Alles wordt eerst in een tussenliggende taal vertaald en daarna door de computer verwerkt. Het voordeel van zo'n systeem is dat de software architect vrij is in zijn favoriete programmeertaal te ontwikkelen. Belangrijker nog is, dat de afhankelijkheid van slechts één programmeer model wordt uitgesloten. <-•
Niet overstappen maar ernaast gebruiken!
Het zou te gek voor woorden zijn als men de huidige applicaties moest herschrijven om ze vervolgens naar .NET te kunnen migreren. Dit is in de meeste gevallen niet nodig. Het is best wel mogelijk om applicaties die in .NET geschreven zijn naast de huidige applicaties te ontwikkelen en te gebruiken. Het is ook mogelijk bestaande software componenten in nieuwe .NET applicaties te gebruiken, zo lang men de hiervoor bepaalde voorschriften navolgt.
Ervaring leert dat in de meeste gevallen bedrijfskritische software componenten niet herschreven hoeven te worden. Deze worden samen met de nieuwe .NET geschreven componenten geïntegreerd. Een simpel voorbeeld hiervan zijn applicaties die bijvoorbeeld onderdelen van Microsoft Office gebruiken om Word documenten en Excel sheets te creëren. <-•
Wat heeft mijn organisatie nodig om Microsoft.NET te kunnen gebruiken en waar moeten we als bedrijf beginnen?
Voor het gebruik van Microsoft.NET applicaties op een desktop computer, installeert men de .NET Framework runtime software. De installatie verloopt soepel en gemakkelijk. Na de installatie zijn voor een gebruiker nauwelijks wijzigingen waar te nemen. Dit geldt ook voor een server machine.
Om .NET applicaties te kunnen ontwikkelen zijn er op dit moment twee mogelijkheden beschikbaar.
De eerste mogelijkheid is Visual Studio.NET. dit is een software ontwikkelingsomgeving speciaal voor .NET ontwikkeld. Dit is een zeer uitgebreid en handig software pakket met diverse mogelijkheden waarmee .NET ontwikkeling nog gemakkelijker wordt gemaakt.
Als tweede mogelijkheid kan men een simpele tekstverwerker gebruiken om de broncode te schrijven.
Er is hier dus geen sprake van afhankelijkheid van een bepaalde ontwikkelingsomgeving om applicaties te kunnen ontwikkelen. <-•
Welke programmeertaal zullen we als standaard kiezen?
De kwestie van een standaard programmeertaal is in .NET irrelevant. Een programmeur kan zijn applicatie in C#(C Sharp) of VB.NET of zelfs in COBOL.NET schrijven. Kiezen van een programmeertaal als standaard in een organisatie is meestaal bepaald door kennis en ervaring van de software ontwikkelaar en de programmeertaal waarmee de huidige software is ontwikkeld. Op dit moment zijn VB.NET en C# de twee meest populaire programmeertalen voor .NET. Visual Basic is door veel programmeurs geliefd en dus VB.NET, de .NET variant van Visual Basic is voor veel programmeurs de eerste keuze om .NET software te ontwikkelen.
C# is een nieuwe programmeertaal die ook erg populair is op dit moment. C# heeft de kracht van C++ en de handigheid van Visual Basic. C# is voor C/C++ en Java programmeurs erg makkelijk om te leren vanwege de grote gelijkenis met boven genoemde programmeertalen. C# is Microsoft's favoriete programmeertaal. Naar verwachting zal in de toekomst meer in C# worden ontwikkeld dan in enige andere programmeertaal. <-•
Zullen we met .NET wachten? En waarom?
Uit onze waarnemingen in het afgelopen anderhalf jaar hebben we geconstateerd dat veel bedrijven nog willen wachten met het integreren van .NET in hun bedrijfsprocessen. De reden hiervoor is dat vaak organisaties niet weten wat .NET voor hun kan betekenen. De keuze om .NET te gaan gebruiken wordt dus automatisch aan de programmeur overgelaten. Het gevaar is dat op een gegeven moment de huidige programmatuur niet meer aan de standaarden zullen voldoen, waardoor het onderhoud en gebruik meer kosten met zich zal meebrengen dan wat het systeem daadwerkelijk oplevert.
Dit probleem is te voorkomen wanneer men tijdig onderzoekt of de huidige software met .NET geïntegreerd of in sommige gevallen naar gemigreerd kan worden. Dit voorkomt later voor vervelende verrassingen te komen staan, waar men geen andere keus heeft dan volledige herschrijving van de applicaties. <-•
Hoe moeten we onze mensen tot Microsoft.NET opleiden en waar moeten we opletten wanneer we externen als .NET specialist willen inhuren ?
Dit is een zeer belangrijke en essentiële fase voor organisaties die maatwerksoftware ontwikkelen, onderhouden en gebruiken. Om .NET applicaties te kunnen ontwikkelen heeft men o.a kennis van de volgende zaken nodig.
- In de meeste gevallen; kennis over de huidige programmatuur die binnen de organisatie gebruikt wordt.
- Goede kennis over de .NET architectuur. Dit betekent dat de software architect tot een zekere hoogte moet weten wat onder de motorkap bij .NET gebeurt. Dit is namelijk erg belangrijk wanneer applicaties naar .NET gemigreerd of met .NET geïntegreerd moeten worden.
- Kennis van een .NET geschikte programmeertaal (zee ook punt '4')
-
Kennis van objectgeoriënteerd programmeren. .NET is objectgeoriënteerd en hiërarchisch opgebouwd. Kennis en kunde over objectgeoriënteerd programmeren is een van de meest belangrijke punten die een .NET programmeur in huis moet hebben.
Helaas wordt dit vaak over 't hoofd gezien. De consequentie hiervan is dat er .NET software op de "oude" manier wordt ontwikkeld die op een gegeven moment nauwelijks te onderhouden en uit te bereiden is. Dit zal ongetwijfeld bij veel Visual Basic programmeurs voorkomen.
De conventionele Visual Basic, is een makkelijke programmeertaal die een zeer kleine subset van objectgeoriënteerd programmeren bevat. Visual Basic stelt men makkelijker in staat om "chaos software" te ontwikkelen en "spaghetti code" te schrijven. Dit was o.a een van de redenen die Visual Basic populair heeft gemaakt. Visual Basic is makkelijk te leren, je hoeft geen programmeer discipline te hebben en je "steekt in een korte termijn een applicatie in elkaar".
Bij VB.NET worden veel Visual Basic programmeurs verrast omdat VB.NET niet meer de VB is die ze gewend waren. Het is nu een objectgeorienteerde programmeertaal geworden die niet veel met zijn voorgangers gemeen heeft.
In tegenstelling, C++ en Java programmeurs hebben het velen malen makkelijker om naar de .NET architectuur over te stappen. De reden hiervoor is dat C#, Java en C++ wel zijn ontworpen om objectgeorienteerd te kunnen programmeren, maar de conventionele Visual Basic niet.
<-•
Wat kost .NET nou?
Om .NET applicaties te kunnen ontwikkelen, heeft men als basis de .NET Framework SDK nodig. Deze is op dit moment via Microsoft bronnen vrij te verkrijgen en zal naar verwachting in de toekomst ook zo blijven.
Daarnaast heeft men een ontwikkelingsomgeving nodig. Op dit moment zijn er aantal van deze tools beschikbaar waaronder Visual Studio.NET, dit is de meest geschikte en professionele gereedschap om voor .NET te kunnen ontwikkelen. Hiernaast is er SharpDevelop, die als opensource software beschikbaar is. Zoals eerder vermeld kan men ook een simpel tekstverwerkings programma zoals notepad gebruiken.
Visual Studio.NET is een product van Microsoft waar licentiekosten aan verbonden zijn. <-•
Wat is de toekomst en levensduur van onze huidige applicaties?
Applicaties geschreven met huidige ontwikkelingsstandaarden zullen ongetwijfeld nog een aantal jaren mee gaan. Microsoft zal zeker de komende jaren de huidige standaarden blijven ondersteunen. Maar dit neemt niet weg dat de verbeteringen rondom huidige standaarden voor grotendeels gestopt zijn. <-•