Michiel van Otegem, IT Composer

Tuesday, July 12, 2005

The Monday after

Na een week TechEd is het nu weer tijd om gewoon aan de slag te gaan. Eigenlijk wel lekker, want ik was donderdag al helemaal gaar, om over vrijdag maar te zwijgen. Na een goed weekend zonder techniek (o.a. Artis met zoonlief) is het fijn om weer gewoon met een project bezig te zijn. Dat gezegd hebbende was TechEd wat mij betreft wel weer een succes. Een hoop geleerd (in breedte dat wel), en een hoop mensen ontmoet.
Nadeel is nu wel dat ik alleen nog maar meer zin heb om met VS2005 en SQL2005 aan de slag te gaan. Dat kan helaas maar in beperkte mate zolang het nog beta is, maar ik ben ook m'n eigen projectjes in elk geval in die omgeving aan het maken, ook als ik ze moet compileren voor .NET 1.1. De class designer in VS2005 alleen al scheelt enorm veel tijd. En wat maakt het dan uit als je aan het eind van de rit even over moet hevelen naar VS2003? Eigenlijk zou Microsoft daar rekening mee moeten houden en de mogelijkheid in moeten bouwen om tegen een oude versie van het Framework te compileren. Robert McLaws heeft overigens wel een workaround in de vorm van MSBuild Compatibility Toolkit 1.0, maar dat vind ik weer wat teveel werk. Even de bestanden importeren in VS 2003 vind ik prettiger. Het gaat me in eerste instantie ook om de designers. Als er code geschreven moet worden maakt het niet zo gek veel meer uit.

Friday, July 08, 2005

Enterprise Source Control

De sessie DEV466 - Microsoft Visual Studio 2005 Team System: Enterprise-Class Source Control van Brian Randall was erg goed. Brian is een heerlijke spreker en het onderwerp was ook leuk met goede demo's. Het enige minpuntje... die was volgens mij een 300 sessie in plaats van een 400 sessie.

De source control in VSTS is wel even van een andere orde van grootte dan Visual Source Safe. Het is veel meer gericht op grote teams, die mogelijk op verschillende locaties werken, en met verschillende tools. De API van VSTS is open, en in een van de demo's werd dan ook een Linux client getoond die in ontwikkeling is. Daarmee is VSTS ook interessant voor bedrijven met veschillende typen projecten. En... oudere versies van Visual Studio (in elk geval VS2003) kunnen het ook gebruiken.

Later meer...

Thursday, July 07, 2005

Gaar

Het is maar goed dat het morgen alweer de laatste dag is van TechEd, want deze jongen is inmiddels goed gaar. M'n hoofd loopt behoorlijk over van alle informatie en de ideeën die daaruit voortvloeien. Maandag weer rustig aan het werk, ha lekker!

Nieuw bestandsformaat Office 12

In Office 12 is het standaard bestandsformaat XML. Vanwege de snelheid en grootte wordt dat wel gecomprimeerd met ZIP. In de ZIP staat niet een groot XML bestand, maar de verschillende onderdelen zijn opgedeeld in apart bestandjes. Als je het bestand hernoemt naar ZIP kun je dit gewoon zien door het te openen met Winzip. Je kunt er dan ook gewoon direct in gaan zitten shoppen, onderdelen (bijvoorbeeld commentaar) weghalen enz.
Heel cool is dat zelfs als het ZIP bestand beschadigd is, het bestand toch geopend kan worden. Uiteraard zal het document niet helemaal in orde zijn, maar Office gaat niet zomaar over z'n nek.

Indigo artikelen

De hele week op TechEd speelt Indigo een grote rol. Voor wie het niet zo volgt of wie niet op TechEd is zijn er twee nieuwe artikelen op MSDN:

Keuzes, keuzes

Ik heb meerdere malen deze week dat ik meer sessies tegelijk zou willen volgen. Helaas heb ik m'n kloon niet meegenomen, dus ik moet echt kiezen. Tot nog toe niet zo pijnlijk, maar vanmorgen wel. De keuzes:
  • ARC312 The Fallacies of Enterprise Development (Ted Neward)
  • CHT029 Interoperability: Web Services… and more… (Michele Leroux Bustamante, Simon )Guest
  • WCD393 “Office 12” Preview: Default Open XML File Formats (Jessica Gruber)

De eerste twee zijn meer gericht op m'n algemene ontwikkeling als architect. De laatste daarentegen kan interessant zijn voor een project waar ik nu mee bezig ben. Het is de laatste geworden, dus hopen dat mevrouw Gruber het waar maakt.

Wednesday, July 06, 2005

Kijk mam, zonder handen!

Na m'n sof in ARC419 zit ik nu in WCD322 Windows Forms: Making the Most of WinForms 2.0 Data Binding door Brian Noyes en dat is veel beter. Brian verteld veel en heeft het tempo er lekker in zitten. Bovendien zijn z'n demo's way cool. Zonder enige code master-detail grids en hele records al helemaal met de juiste controls, labels etc. Allemaal uitgelijnd enzovoorts. Het maken van handige kleine Windows Forms applicaties gaat dus lekker snel. Binnenkort eens even een config tool van een van m'n projecten herschrijven. Zal een stuk minder pijnlijk zijn dan de huidige versie.

Wat een afknapper!

Hier zit ik dan bij ARC419 The Grey Area of Implementing Services Using Object-Oriented Technologies. Architectuur en een heftige 400 sessie, althans dat zou je denken. Ten eerste is het niet echt een architectuur sessie, maar neigt het naar een developer sessie. Ten tweede is het volgens mij geen 400 sessie, want om nou te zeggen dat het ingewikkeld is... nee. Het zijn meer een soort tips & tricks. Het ergste is echter nog dat de spreker tegen het publiek praat alsof het bestaat uit een stelletje kinderen van een jaar of 10, en dat hij zichzelf erg grappig vindt. Ik ga dus maar snel nog even ergens anders kijken.

Zo gaat 'ie goed

Ik moet zeggen dat ik vandaag uitermate tevreden ben over de sessies waar ik naartoe geweest ben. Na ARC308 Dealing with Data in SOA vanmorgen ben ik achtereen naar CTS366 Implementing "Indigo" Endpoints – Secure, Reliable, Transacted Messaging (Ingo Rammer, Steve Swartz) en CHT031 Implications of "Indigo" and Service Orientation for Architects and Architecture (Clemens Vasters, Steve Swartz) geweest. Beide sessies waren interessant. Niet allemaal nieuw, maar dat hoeft niet. Steve Swartz is geweldig in het simpel uitleggen van hoe de theorie in elkaar zit. In de eerste sessie werd dit heel goed afgewisseld door Ingo Rammer die de theorie in praktijk bracht. Tijdens de later Chalk & Talk werd Steve een beetje overvleugeld door Clemens Vasters (die praat gewoon graag), maar desondanks was hun interactie erg leuk.

Services & Performance

Ik ben net naar ARC308 Dealing with Data in SOA geweest en dat was ene hele aardige sessie. Niet erg ingewikkeld, maar heel duidelijk opbouwend van probleemstelling naar decompositie van het probleem naar oplossing(en). Het idee is dat je om in een SOA met data om te gaan in een consistente manier met de best mogelijke performance een aantal regels gehandhaafd moeten worden:

a) Data mag niet wijzigen, in plaats daarvan moet je verschillende versies bijhouden waarvan er altijd een courant is. In SQL termen: geen UPDATE alleen INSERT (bijvoorbeeld met een timestamp voor versiebeheer).

b) Er moet een duidelijke eigenaar zijn van gegevens. Alle services die niet de eigenaar zijn moeten
  1. De data cachen voor de beste performance.
  2. Op de hoogte gebracht worden van nieuwe (versies van) data. Dan wel controleren of er nieuwe data is.
  3. Wijzigingen (of dus eigenlijk het aanmaken van een nieuwe versie) aanvragen aan de eigenaar (die dat eventueel kan weigeren).

Omdat de data niet wijzigt, hoeft de cache ook nooit aangepast te worden, en is het veel minder nodig om een orchestratie van services te hebben. Het legt uiteraard wel een behoorlijke claim op je data opslag, maar dat mag geen probleem zijn vandaag de dag.

Tuesday, July 05, 2005

Indigo: contract, contract, en ... contract

Indigo gaat allemaal om contracten. Je hebt een DataContract om te bepalen wat je heen en weer gaat sturen. Een DataContract is in feite de koppeling van .NET met XSD, aangezien voor een DataContract een onderliggende XSD gemaakt wordt (die je nooit hoeft te zien). Verder is er een ServiceContract dat bepaald welke services er zijn en welke operaties erop zitten (OperationContract). Ook is er nog een MessageContract waarmee invloed op de SOAP envelope wordt uitgeoefend. Voor callbacks (ja, het zijn web services, maar callbacks kunnen ook) is er ook nog een CallbackContract. En last but not least... mocht er een fout optreden, dan is er een FaultContract. Gelukkig werkt dit grotendeels met attributes, dus is het enige dat je hoeft te weten wanneer je een class/method/property moet voorzien van welke attribute. Verder moet je weten hoe interfaces en contracten werken, maar dat is (naar mijn bescheiden mening) basiskennis.

Generics rule!

De voorbeelden die je online ziet over generics zijn de standaardvoorbeelden waarbij gebruik gemaakt wordt van generics om een strongly-typed collection te maken. Aardig, maar uiteindelijk niet echt hemelstormend. De voorbeelden op TechEd zijn veel interessanter. Indigo bijvoorbeeld maakt gebruik van generics om als host te dienen voor de implementatie van de functionaliteit. Het hosten van een class in Indigo wordt gedaan door de generic class ServiceHost, die je voor JouwClass gebruikt als ServiceHost. Je kunt via generics dus functionaliteit aanbieden die een infrastructuur leveren voor van alles en nog wat. Generics is wat dat betreft grotendeels het domein van architecten die generieke functionaliteit, of een framework, aan willen bieden aan ontwikkelaars. Die kunnen generics vervolgens gebruiken om veel sneller complexe functionaliteit te maken, omdat ze zich niet met de "plumbing" bezig hoeven te houden, omdat die "plumbing" verzorgd wordt door de generic class. Mijn hoop is dat hierdoor de productiviteit niet alleen omhoog gaat, maar ook hergebruik, waardoor uiteindelijk de bibliotheek met bruikbare code/compinenten veel sneller groeit dan nu.

Ben ik teveel eisend?

Ik ben net naar een sessie geweest over het beheren van de project cyclus in Visual Studio 2005 Team System. Ik vond die sessie ronduit slecht, veel teveel overzicht. En bovendien gingen niet alle demo's goed. Ik verwacht van een sessie dat ik iets te zien krijg dat ik niet in minder tijd zelf uit kan vinden, of dat iemand me iets vertelt wat m'n ogen opent naar nieuwe mogelijkheden (zoals Juval Lowy op de gebruikersgroep bijeenkomst gisteren). Is dat teveel eisend? Ik weet het niet, maar ik hoop toch echt dat dit nog gaat gebeuren in de komende dagen.

Update (17u30)
Ik heb besloten dat mijn eisen niet te hoog zijn. CTS365 Implementing "Indigo" Endpoints, Adresses, Bindings & Contract door Steve Schwartz en Christian Weyer is zeer leerzaam en laat weer een puzzelstukje op z'n plaats vallen. Nu zorgen dat ik meer van dit soort volg.

BizTalk 2006 launch is niet RTM

BizTalk 2006 wordt weliswaar meegenomen in de launch van Visual Studio 2005 en SQL Server 2005 in de week van 7 november 2005, maar dat is niet de uiteindelijke RTM (Release To Manufacturing) versie. In feite is het dus een beta die op dat moment werkt met VS 2005 en SQL 2005. Vreemde gang van zaken, maar natuurlijk gericht om nog meer BizTalk Buzz te veroorzaken. En dat voor een niche product. RTM van BizTalk 2006 zal ergens in de eerste helft van 2006 beschikbaar komen.

Boem! Weg netwerk switch

Demo's zijn altijd leuk, helemaal als je kunt laten zien dat iets blijft werken als er iets gebeurt met de elektriciteit, het netwerk of weet ik wat. In de keynote werd dit gedaan door met een sloophamer de netwerkswitch kapot te slaan. Cool om te zien dat SQL Server 2005 met mirroring zich daar niets van aantrekt.

Geweldige presentatie van Juval Lowy bij dotNED

Gisteren was weer een dotNED gebruikersgroep bijeenkomst. Op deze bijeenkomst gaf Juval Lowy een presentatie... waar we niets over mogen zeggen, behalve dat het (weer) geweldig was. Juval's inzichten zijn uniek. Als we het weer voor elkaar krijgen om Juval te mogen verwelkomen, zorg dan dat je erbij bent.

De voordelen van de pers

De pers heeft tijdens TechEd het een en ander aan voordelen. Gisteren waren er speciale sessies voor de pers, waardoor ik weer wat minder van de reguliere sessies hoef te zien. Een ander voordeel is dat de pers een eigen lounge heeft waar we kunnen zitten met onze laptop. Gezien de reguliere plaatsen snel bezet zijn is dat heel erg prettig. En last but not least, bij belangrijke sessies heeft de pers een eigen vak... vooraan. Ik zit nu bij de keynote op de 4e rij midden voor. En dat terwijl het al behoorlijk vol was toen ik binnen kwam.

Monday, July 04, 2005

Brian, breathe!

Ik zat net in een pers sessie over ASP.NET 2.0 door Brian Goldfarb (Product Manager Web Platform & Tools team). Ik kreeg het haast benauwd van hem, want hij ging in een ongelooflijk tempo en het leek wel alsof hij haast geen adem haalde. Z'n demo's gingen zo snel dat je het haast niet kon volgen als je er niet al wat van gezien had. Hij had uiteraard niet zoveel tijd, en wilde wel heel veel aan de pers laten zien. Op dinsdag doet hij een sessie in twee delen over ASP.NET 2.0, waarin hij veel meer zal laten zien, en op een wat gemoedelijker tempo. Wel zal er heel veel informatie in zitten. Hieronder staat de nodige info over de sessie.

WEB323 ASP.NET 2.0: Overview of ASP.NET 2.0 (Part 1)
Tue Jul 5 12:00 - 13:15 Room: Auditorium
Walk through the most exciting release of ASP.NET and Visual Studio yet -- ASP.NET 2.0 and Visual Studio 2005. Learn how the new release enables developers to dramatically reduce the amount of time and code required to write real-world Web applications. ASP.NET 2.0 and Visual Studio 2005 provides much improved administration and management support, and dramatically improved performance. This session includes discussions of: Data Controls, SQL Output Caching, Master Pages, Themes/Skins, Personalization, Web Parts, Membership, Role Management and Security Controls, Web Site Administration Tool, MMC Administration Tool, Site Pre-Compilation and the significantly improved Visual Studio 2005 Web experience.
WEB324 ASP.NET 2.0: Overview of ASP.NET 2.0 (Part 2)

Ik heb echt een kleinere laptop nodig

Het is geweldig hoor zo'n Lattitude D800 met een wide screen, DVD speler, en behoorlijk wat power. Maar voor een evenement als TechEd is het wel vervelend om al die kilo's mee te moeten dragen. Een kleine laptop is in dit geval genoeg, want het gaat voornamelijk om email, notities, enz. Natuurlijk wil ik af en toe Visual Studio open kunnen trekken, maar dan is het niet nodig om de geweldige performance van m'n "bijna desktop" te hebben.

Het wireless netwerk is dit jaar overigens erg goed (hopen dat dat zo blijft als morgen de grote meute er is). Ik had wel wat startproblemen, maar dat schijnt gewoon te zijn met deze laptop, want zelfs thuis vergde het wel wat om op m'n wireless aan te sluiten.

BizTalk is een niche product

Ik heb het al veel vaker gezegd, met als resultaat de nodige hoon en boze reacties, maar ik blijf erbij: BizTalk is een niche product. Helaas wordt het bijna gepresenteerd als de oplossing der oplossingen voor moderne business applicaties, en veel mensen die BizTalk gebruiken geloven dat ook.
Gisteren kreeg ik voor het eerst bijval voor mijn mening, en niet van de minsten. Tijdens een etentje met TechEd sprekers Clemens Vasters, Michele Leroux Bustamante, Juval Lowy, Brian Noyes en Steve Schwartz (Microsoft "Indigo" Team), kwam BizTalk ter sprake. Hun mening is niet veel anders dan de mijne.

Wanneer is BizTalk wel/niet van toepassing?
BizTalk is primair gericht op het integreren van meerdere (of eigenlijk veel) systemen, en het verzorgen van het business process via workflow. Vraag jezelf nu eens af: "hoeveel organisaties hebben meer dan 5 systemen waarvoor het nut heeft om die aan elkaar te koppelen op de manier zoals BizTalk dt doet?". In mijn ervaring: niet veel. Grote bedrijven als ABN AMRO, Philips, Shell, voldoen hier wel aan. Maar de gemiddelde organisatie in Nederland, waarvan ook heel veel MKB is absoluut niet. Voor dat soort organisaties is BizTalk absoluut overkill. Dat brengt enorme kosten met zich mee en dat is niet in het belang van de organisatie. En dan heb ik het lang niet alleen over de licenties, maar ook over de ontwikkeltijd en de hardware kosten. Debugging in BizTalk is vooralsnog niet op het niveau van .NET, waardoor de ontwikkeling veel meer tijd kost. Bovendien, de meeste applicaties doen niet veel meer dan wat data manipulatie. De performance daarvan in BizTalk is factoren langzamer dan dezelfde (simpele) .NET code. Door deze functionaliteit zonodig nog beschikbaar te maken als service, dan ben je al een heel end op weg richting wat je met BizTalk doet.
Begrijp me niet verkeerd, BizTalk heeft z'n nut. Het is geweldig in het transformeren van gegevens uit bestaande systemen, zodat meerdere systemen een gemene deler hebben en met elkaar kunnen communiceren. Dat is leuk als je bijvoorbeeld SAP hebt staan met een aantal andere enterprise level applicaties. Als de gegevens in SAP (of een vergelijkbaar systeem) nodig zijn in andere applicaties, is een "platte" export minimaal zo effectief, en qua performance veel beter.

Friday, July 01, 2005

.NET Rocks met Rob Howard over ASP.NET vroeger, nu en in de toekomst

.NET Rocks is een wekelijkse internet audio talk show, net als een talk show op de radio, maar dan te downloaden van het web als MP3 of WMA. De nieuwste editie van .NET Rocks is met Rob Howard, oprichter van Telligent Systems dat Community Server maakt. Daarvoor werkte Rob Howard bij Microsoft als een van de belangrijkste architecten van ASP.NET. In deze aflevering van .NET Rocks praat hij over ASP.NET 2.0, de toekomst van ASP.NET, en verteld hij over zijn tijd bij Microsoft. Je kunt deze aflevering hier vinden.