Techdays

Gisteren mocht ik voor het werk een dagje van de Microsoft Techdays bijwonen. Het was de eerste keer dat ik naar een Microsoft-event ging en had me eerlijk gezegd aan veel show en weinig inhoud verwacht. In sterk contrast tot JavaPolis Devoxx, waar er veel inhoud en weinig show is. Achteraf bekeken viel dit eigenlijk enorm goed mee. Enkel de keynote ging er wat over. Een Developer Evangelist of Regional Director moet echt niet als één of andere superster worden aangekondigd met loeiharde muziek en lichtshow, maar dat is mijn mening natuurlijk.

Na de keynote heb ik de sessie over C# 4.0 gevolgd en dat was erg interessant. C# 4.0 belooft weer een versie te worden om naar uit te kijken. Eén van de nieuwe features is het dynamic keyword. Dit zorgt ervoor dat je methodes op het object kan oproepen waarbij de compiler niet checked of deze effectief bestaan. De check wordt pas 'at runtime' gedaan. Dit is erg handig om te integreren met andere talen zoals Javascript en Ruby.

Een andere interessante feature is 'Generic co- and contra- variance'. Hiermee kan je in speciale gevallen casts uitvoeren zoals:

var list = new List<string>();
(List<object>)list;

Ook optional en named parameters behoren tot de nieuwe features. Dit is ook erg interessant. Bekijk dit voorbeeldje:

public void Order(string name, int amount = 2, int discount = 0)
{ ... }

Order("jeroen", dicount: 5);
// the first param - name - is not optional so a value must be supplied.
// the second param - amount - has default value of 2 which we want to use
// the third param - discount - has a default value of 0 but we supply 5

Enkele belangrijke punten bij het gebruikt van deze feature zijn wel dat je parameters absoluut als constante moet beschouwen. Je kan na verloop van tijd in veel gevallen immers niet zomaar de standaard waarde van een parameter aanpassen. Als je in voorgaand voorbeeld de default value van amount zou wijzigen in 3 zouden er plots veel klanten 3 items bestellen in plaats van 2. Ook is het wijzigen van de naam van een parameter niet meer zo vanzelfsprekend omdat deze naam nu ook buiten de methode wordt gebruikt.

De volgende sessie die ik heb bijgewoond ging over WCF. Hoewel de inhoud nogal vrij droog was, was ook dit wel interessant. Vooral de spreker was nogal een grapjas.

De daaropvolgende presentatie ging over WPF en meer specifiek over performantie. Aan de hand van een demo-applicatie waarin een reeks foto's werden ingeladen werden er enkele gangbare performantie problemen getoond en hoe veel van deze problemen vaak eenvoudig opgelost kunnen worden. Bij het laden van 50 foto's gebruikte de applicatie in het begin 1.3 GB geheugen. Na enkele eenvoudige aanpassingen nog slechts 220 MB. Het belangrijkste deel van de oplossing was om ervoor te zorgen dat het aantal elementen in de WPF-tree zo laag mogelijk werd gehouden. Dit werd onder andere bereikt door een VirtualStackPanel te gebruiken ipv een gewone StackPanel, zodat enkel elementen die effectief op het scherm getoond worden ook berekend worden. Een interessante tool die je hierbij kan helpen is Snoop. Dit is een open source programma dat ongeveer hetzelfde werkt als de DOM-explorer in Firefox.

Nog een andere sessie die ik heb gevolgd ging over Lean Principles, Agile Techniques, and Team System. Hierbij weerlegde de presentator 7 gangbare foute veronderstellingen ivm software ontwikkeling. Ook liet hij zien hoe je dit kan toepassen mbhv TFS. Gelukkig ging het niet al teveel over TFS en meer over de algemene theorie waardoor ook deze sessie erg leerrijk was.

De laatste sessie ging over Windows 7 for developers. Tijdens de keynote was Windows 7 al even gedemonstreerd, met nadruk op de (multi-)touch features. Tijdens deze presentatie lag de nadruk echter op de gevolgen en impact van Windows 7 voor developers. Natuurlijk werd er wel eerst een globaal overzicht getoond van de nieuwe taskbar en desktop. Die nieuwe taskbar gaat voor vele mensen even wennen zijn, maar ik denk wel dat het potentieel heeft. Een van de andere nieuwe features die me zo nog te binnen schieten die wel interessant zijn, is het beheer van services. In windows 7 is het namelijk mogelijk om te specifiëren wanneer een bepaalde service moet draaien. Een service die een netwerk verbinding nodig heeft verbruikt bijvoorbeeld enkel maar resources als er geen netwerkverbinding is. In Windows 7 kan die service adhv service triggers op de gepaste momenten in en uitgeschakeld worden.

Ook knap was de problem solver. In Windows XP zat er al een soort van problem solver ingebouwd, maar dit was niet erg interessant. Het stelde oplossingen voor die de gebruiker manueel kon proberen en vroeg telkens of het probleem was opgelost om dan een andere oplossing voor te stellen indien het probleem nog steeds aanwezig was. In Windows 7 gebeurt dit geheel automatisch aan de hand van PowerShell-scripts (als ik het correct begrepen heb). Programma's kunnen ook hun eigen problem solver scripts installeren, zodat dit systeem volledig uitbreidbaar is. Voor veel voorkomende problemen lijkt me dit echt wel een interessante en gebruiksvriendelijk feature. Of deze feature echt zal werken hangt natuurlijk af van de hoeveelheid problemen die de problem solver effectief kan oplossen. De demo was knap, maar het was natuurlijk nog altijd een voorbereid 'probleem' (de audio service werd gestopt en de problem solver wist deze correct terug te starten).

Ik heb echter nog wel een bedenking die ik me achteraf nog heb gemaakt na het bekijken van de presentatie over Windows 7. Windows 7 bevat standaard functionaliteit om je eigen applicatie van een ribbon te voorzien (een soort van knoppenbalk zoals in Office 2007), en er werd sterk benadrukt naar developers toe om dit ook te gebruiken. Tijdens andere presentaties kon je al een preview zien van Visual Studio 2010. Het vlaggenschip voor development van Microsoft. En wat valt mij daarbij op? Microsoft maakt hier zelf geen gebruik van de ribbon. Mij lijkt dit toch weer een inconsistentie in de Windows-omgeving. Of zou Microsoft dan toch niet zoveel vertrouwen hebben in de ribbon?

Comments

Avatar

Vincent Ceulemans on 2009-05-20 19:11 reply

Tsja, consequent zijn is voor

Tsja, consequent zijn is voor MS waarschijnlijk wat te moeilijk, omdat ze nu al generaties lang software-relikwieën met zich moeten meezeulen om neerwaarts compatibel te blijven.
Zo zal in MS Visual Studio de ribbon wellicht nog niet geïntegreerd zijn om dat daarvoor teveel extra werk gedaan moet worden deze keer.
Da's 't nadeel van grote mastodontfirma's met afdelingen die allerlei programma's onafhankelijk van elkaar maken en achteraf er dezelfde saus over moeten gieten.

Avatar

teranex on 2009-05-26 20:11 reply

@Vincent: Gek genoeg heeft

@Vincent: Gek genoeg heeft microsoft voor de volgende versie van Visual Studio heel de grafische kant van het programma blijkbaar van nul terug herschreven in WPF... Dit leek me dus de uitstekende moment om ineens ook de ribbon te implementeren. Het lijkt dus eerder in de stijl van "oeps, vergeten".

Comment Atom Feed