Deze keer een bespreking van het boek Pro WCF, Practical Microsoft SOA Implementation.
De auteurs
Het boek Pro WCF is door een hele serie schrijvers geschreven. Op de voorkant van het boek staan er twee vermeld, Chris Peiris en Dennis Mulder, maar als we het boek openslaan staat er een aanzienlijk langere lijst van auteurs. Op deze tweede pagina vinden we ook de namen van Shawn Cicoria, Amit Bahree en Nishith Pathak. Eén van deze schrijvers, Dennis Mulder, zal voor de meeste lezers geen onbekende zijn. Hij heeft al heel wat presentaties en artikelen in Nederland op zijn naam staan.
Het is niet duidelijk hoe de taakverdeling bij het schrijven geweest is, maar aangezien Chris en Dennis als enige op de voorkant vermeld staan, lijkt het er op dat zij voor het leeuwendeel van de tekst verantwoordelijk zijn. Wat wel direct opvalt is dat er naast de auteurs ook drie technische reviewers genoemd worden. Op zich niet bijzonder aangezien dit soort boeken altijd gecontroleerd wordt. Wat in dit geval wel opvalt is dat twee van de drie reviewers ook als auteur vermeld staan. En het is wel een beetje raar om te zien dat auteurs hun eigen boek controleren.
De hoofdstukken
Het boek is in drie delen verdeeld. In het eerste deel, dat drie hoofdstukken omvat, wordt de basis van Service Oriented Architecture en Windows Communication Foundation uitgelegd. Het tweede deel, ook drie hoofdstukken, beschrijft hoe met WCF te programmeren. Het derde en grootste deel, maar liefst 7 hoofdstukken en de helft van het boek, gaat over diverse geavanceerde onderwerpen waar je binnen WCF mee te maken krijgt.
Deel 1: Introducing Windows Communication Foundation
Het eerste deel begint met een hoofdstuk met uitleg over wat service georiënteerde architectuur is. Ik ben bang dat hier een beetje de toon van het boek gezet wordt. De auteurs lijken namelijk niet helemaal zeker waar het boek over moet gaan. Op het ene moment wordt SOA behandeld en op het andere moment gaat het weer over WCF. Op zich zijn dit beide zeer interessante onderwerpen maar door ze door elkaar te behandelen wordt het verhaal verwarrend. WCF gaat namelijk niet alleen over SOA maar is veel algemener en gaat eigenlijk over hoe je binnen een programma met iets anders kunt communiceren. SOA aan de andere kant gaat over applicatie-architectuur. Dat hierbij communicatie op de één of andere manier nodig is, mag duidelijk zijn maar of dat met WCF of een andere technologie gebeurt is een implementatiedetail.
Het tweede hoofdstuk geeft een overzicht van wat WCF is en met welk doel het ontwikkeld is. Hier wordt onder meer een vergelijking gemaakt tussen de verschillende bestaande communicatiemethodes, zoals remoting en web services, en wat de problemen zijn die WCF probeert op te lossen. Helaas wordt in dit hoofdstuk weer regelmatig teruggevallen op SOA argumenten.
In hoofdstuk drie komt WCF eigenlijk pas echt aan bod. In dit hoofdstuk komen de verschillende onderdelen van WCF aan de orde. Zo wordt er uitgelegd dat WCF altijd met de zogenoemde ABC van adres, binding en contract werkt. Verder wordt de WCF stack zowel van buiten als van binnen bekeken, zodat de lezer een overzicht krijgt van de verschillende onderdelen.
Deel 2: Programming with WCF
In het tweede deel van het boek wordt verder ingegaan op het gebruik van WCF in een programma. Het begint met het instaleren van het .NET 3.0 framework en de addons voor Visual Studio 2005. Dit onderwerp wordt overigens in een appendix uitgebreider behandeld. Lezers moeten er wel rekening mee houden dat dit boek geschreven is voordat Visual Studio 2008 en het .NET framework 3.5 uitkwamen. Dat betekent niet dat de informatie fout is, hoogstens enigszins achterhaald omdat veel ontwikkelaars ondertussen zijn overgestapt naar Visual Studio 2008 waar de ondersteuning voor WCF standaard aanwezig is. Overigens is het feit dat het boek met Visual Studio 2005 geschreven is iets om rekening mee te houden bij alle voorbeelden. Niet alleen is ondersteuning voor WCF standaard aanwezig in Visual Studio 2008 maar de dialogen en opties zijn ook aanzienlijk uitgebreid. In de meeste gevallen zal dat niet direct een probleem zijn maar het kan wel verwarrend zijn bij het volgen van de voorbeelden.
In hoofdstuk vier wordt vooral ingegaan op het schrijven van een WCF service zelf. Hier wordt uitgelegd hoe de verschillende attributen toegevoegd moeten worden en wordt een hele eenvoudige WCF service gemaakt. Verder wordt er ingegaan op hoe WCF data behandeld wordt en hoe e.e.a. met data- en bericht-contracten te beïnvloeden is. Aangezien dit het eerste hoofdstuk is waar echt een service ontwikkeld wordt, gaat de code nergens diep op in.
In hoofdstuk vijf komt het hosten van de gemaakte WCF service aan bod. Hier worden de verschillende opties zoals het zelf hosten of juist IIS gebruiken behandeld. De diepgang van dit hoofdstuk is nogal wisselend. Aan de ene kant worden er aan het zelf hosten maar enkele pagina’s besteed, die ook nog voornamelijk gaan over het maken en installeren van een Windows service, terwijl er juist erg veel aandacht besteed wordt aan het hosten binnen IIS met alle verschillen tussen de diverse IIS versies. Vervolgens komt in hoofdstuk zes het managen van een WCF service aan bod. Hier worden onderwerpen als tracing en performance counters behandeld.
Deel 3: Advanced topics in WCF
Het derde deel van het boek, en tevens het grootste, gaat in op diverse meer geavanceerde delen van WCF. In dit deel zijn maar liefst zeven hoofdstukken te vinden over uiteenlopende onderwerpen als beveiliging, reliable messaging, transacties, COM+ integratie, werken met data, peer to peer WCF applicaties en het samenwerken met andere omgevingen zoals Java en J2EE.
Ondanks dat dit het grootste deel van het boek is blijft de diepgang nogal eens achterwege. Het gevolg is dat er over veel onderwerpen gesproken wordt maar dat er eigenlijk nergens een echt goede en complete uitleg gegeven wordt. Dat wil niet zeggen dat de hoofdstukken niet bruikbaar zijn, dat zijn ze zeker wel, maar om echt met de onderwerpen aan de slag te kunnen is meestal toch meer informatie nodig.
Conclusie
Al met al ben ik niet echt enthousiast over Pro WCF. De diepgang is nogal wisselend en de voorbeelden laten nogal eens te wensen over. Gevolg hiervan is dat het boek niet echt geschikt is als leerboek om WCF te leren maar tegelijk niet genoeg diepgang heeft voor mensen die al met WCF werken en de geavanceerde onderwerpen zoeken. Lezers die een boek in één van deze twee categorieën zoeken kunnen beter verder kijken. Tegelijk is het boek ook weer niet geschikt voor mensen die meer over service oriëntatie willen weten omdat het boek dat ook weer niet echt behandelt. Alles bij elkaar zeker niet het niveau wat ik van de Apress Pro serie boeken gewend ben.