Net als voorgaande jaren vinden de TechDays ook dit jaar weer plaats in Den Haag. Dit jaar zijn de DevDays opgegaan in de TechDays. Zal het dus meer een IT Pro feestje worden?
De Geek Night is in ieder geval al vervallen en de keynote heeft een veel minder prominente plaats ingenomen in de agenda.
De agenda voor deze dag is terug te vinden op de TechDays website . En op twitter zal er veel gebuzzed woeden met hash tag #techdaysnl. Ik zal deze twee dagen een samenvatting geven van mijn persoonlijke selectie uit de vele interessante sessies en wellicht nog een andere bijkomstigheden.
vergeven is als voor 15 mei 3 tot 5 apps in de store geplaatst worden. (meer info op wp7.nl)
Bij de stands zijn veel Surface RTs te winnen. Zijn dit de enige die de afgelopen tijd verkocht zijn? 🙂
Het is de 15e editie van de Techdays. Volgens Microsoft wordt het nog steeds beter, dus dat belooft wat! Het thema is in ieder geval Build what’s next, now! Hierbij zijn de trends: devices, breedband en (big) data.
Ook de cloud wordt opnieuw aangehaald. Persoonlijk vind ik het goed dat dit die aandacht krijgt. Cloud, Azure, is inmiddels een factor die echt gaat leven bij klanten.
Maar zoals gezegd, er is dus een geen echte keynote. Wel gaf David Chappell iets wat er op leek. Wel aardig dat Microsoft een onafhankelijke spreker heeft uitgenodigd.
Het onderwerp is “Building Modern Applications” vanuit een Microsoft perspectief. David ziet een verschuiving van de traditionele ALM en CS oplossingen naar:
– Andere devices
– Andere data centers (cloud)
– Continuous delivery en DevOps
Cliënts veranderen. Er zijn Tablets en Phones bijgekomen. En deze kunnen als PC begrepen worden. We leven dus in het PC+ tijdperk. Waarom, omdat Microsoft op alle platformen hetzelfde OS wilt draaien, namelijk Windows 8 (Phone 8 zal uiteindelijk convergeren naar Windows 8).

Er moet wel een verschil gemaakt worden tussen traditionele Windows applicaties en Store apps. Maar in Windows 8 worden deze als hetzelfde beschouwd door gebruik van app containers met manifests, contracts, etc.

En elke Win8 app heeft 100kb cloud storage “for free” omdat gebruikers meerdere devices kan gebruiken met de gezamenlijke cloud storage.
David heeft een leuk staatje met de verschillen en overeenkomsten tussen de twee soorten applicaties. Ik zal hiervan binnenkort een foto toevoegen 😦
Wat betreft de data centers, ziet David de aanwezigheid van virtualisatie van VMs. En een eigen datacenter is niks anders dan een private cloud. Uiteindelijk is het allemaal IaaS.
Grappig, David krijgt bij iedere Azure presentatie als eerste de vraag of de applicaties wel veilig zijn, is de cloud te vertrouwen? En het is gewoon een vertrouwenskwestie. We moeten gewoon ons datacenter weten te vertrouwen. In hoeverre vertrouw je de maandelijkse Windows Update op patch tuesday?
Azure is vooral interessant geworden door de IIS website mogelijkheden. Voorheen hadden we voornamelijk de mogelijkheid om met de worker roles te prutsen. Er is dus een verschuiving van PaaS naar IaaS ingetreden.
En met de Mobile Services is er weer een stap gemaakt. Dit kan met de store apps en IOS geconsumeerd worden. Het is gebaseerd op een security laag, notificaties, data-access en javascript code. En je hoeft alleen maar clock cycles te betalen.
Als laatste werd ALM aangeraakt. Dit betekent Governance En SDLC En Operations. Een applicatie maakt dus heel wat mee gedurende geboorte, leven en dood.
Ook Agile, scrum, etc. kwam ter sprake. Aangezien niemand reageerde op de vraag of men nog waterval gebruikte, was sheet met uitleg van een Sprint wat overbodig 🙂
Maar continuous delivery is nu helemaal hot. Het moet gemakkelijk worden, geautomatiseerd zijn, om updates uit te rollen. VS2012, TFS2012 en System Center 2012 kan dit leveren. Laat Developers en Operation samenwerking. Het is dus cultuur gecombineerd met tooling. We moeten dus voorbij het punt waar de twee groepen naar elkaar zitten te wijzen en uitkomen daar waar we beginnen met samenwerken.
En het is eigenlijk eenvoudig om te veranderen 🙂 Begin gewoon!
Na de keynote ben ik bezig geweest om een Windows Phone app uit te rollen naar de Store via mijn nieuwe app store account. Los van het feit dat de iconen afgekeurd werden, ben ik bijna klaar. De walk-trough hands on was prima maar de emulators waren zeer traag. Ik liep dus razend uit de tijd. Gelukkig kon de pause dit compenseren. wel is duidelijk geworden dan een app uitrollen erg eenvoudig is. Maar vergewis je er van dat de app een grote kans van slagen heeft om in de store te belanden. Want de acceptatie kan tot vijf werkdagen duren en vijf keer een misser kost je een maand. Microsoft wilt dolgraag meer ontwikkelaars duidelijk maken hoe uitgerold moet worden en dit is een goede actie.

Vervolgens ben ik naar de sessie geweest van Roy Cornelissen om SignalR te combineren met mobiele devices.
Hij combineert een Azure servicebus met een SignalR Hub om naar devices data te pushen. Waar Http en webpagina’s vooral voor het ophalen van data zijn gemaakt, dus de browser is de vragende kant, kan SignalR actief informatie naar de browser versturen, real-time.
Voorheen zou een browser elke x seconden bekijken of er informatie voor hem klaar stond. Maar dit betekent het daadwerkelijk versturen van data en geeft enorme load op servers.
Push kan ook met IRC, SMTP, WebSockets en pub/sub. WebSockets is nog steeds een draft en kan verschillen in implementatie. Dit geldt ook voor pub/sub. En de laatste is ook nog eens one-way.
Andere optie is bv. long polling. Dit gebruikte ik al in 1998 🙂
SignalR is een abstractie rond één van deze technieken. Het is een pet project van een paar Microsoft ontwikkelaars. En Microsoft heeft dit omarmd.
Er zijn een aantal lagen van abstractie: welk protocol wil je ondersteunen? SignalR onderhandelt met de server. En je moet een persistent connection opzetten. en daarboven op zet je een ‘hub’.
Het is een messagebus voor verschillende OSen: Windows, IOS, Android, etc. Het kan zelfs buiten een website gehost worden in een executable of windows service.
Je kunt dus over de persistent connectie objecten versturen en die moet je evt. zelf serialiseren naar Json. Op de connectie heb je dan events als Connected, Recieved en Disconnected. Interessant is om te zien dat aan iedere client een guid uitgedeeld wordt. Daar kun je leuke dingetjes mee doen (groepjes maken, etc.).
SignalR op een webserver toepassen is redelijk triviaal (een Nuget package laden, class overerven, code schrijven en routing regeltje toevoegen).
Op de cliënt rust SignalR op jQuery en een aparte bibliotheek. En dat geeft een Java object die een send methode implementeert en een callback voor de push implementeert.
Klaar. De eerste demo voor een broadcast was in vijf minuten klaar.
Een hub is een verbijzondering die ook de mogelijkheid geeft om los van de boodschap ook extra state meestuurt tussen cliënt en server. Dit gaat dan alleen naar de leden van de hub. Het lijkt dus op een chatroom 🙂 Er moet wel een extra hubs script ge-include worden op de cliënt.
Leuk is het feit dat SignalR rekening houdt met de verschillende naming conventions. Irritant was wel dat Client en Server beiden dezelfde jQuery versies moeten voeren 😦
(we will be right back after this break)
Het was ook leuk dat een in C# geschreven cliënt via Xamarin naar IOS werd gecompileerd en dus native geport was. Iedere C# ontwikkelaar is dus ook een IOS ontwikkelaar geworden 🙂
Wel moet je een backplane zoals Redis of een service bus toepast over je webfarm servers. Hiermee voorkom je dat berichten, geroute door een loadbalancer naar een bepaalde server, niet bij andere servers terecht kan komen.
Na de pause met berliner bollen ben ik naar de sessie over Azure Cache gegaan, gegeven door Jacqueline van der Horst.
Na een introductie over caching (denk er vooral al over na, het blijft historische data) ging ze in op Microsoft oplossingen in Azure:
– AppFabric caching; on premise caching 😦
– Role based caching
– Shared caching
RB caching kent twee smaken: co-located (gebruik een deel van het geheugen van de role voor caching) en dedicated (100% caching in roles). Dit leeft dus binnen webroles als in VMs. Shared caching werkt niet op de extra small machines van Azure. Dit komt omdat hierbij geheugen gedeeld wordt.
Microsoft heeft een sheet/tabel beschikbaar om uit te rekenen welke varianten, of combinaties daarvan, nodig hebt. Role based caching kost dus extra geld voor de extra rollen! Microsoft ondersteund ook High availability maar raad dan wel minimaal 3 maar liever 4 instances (voor load balancing). Role caching kent ook locking, interessant?
Data in de cache moet wel serializable zijn met bestaande serializers of zelfgemaakte.
Role caching kent ook regions, een soort namespacing voor gecachede objecten. Ook kunnen objecten getagged worden om snellere zoekopdrachten te ondersteunen.
Caching kent ook expiration en eviction. Dit staat voor geplande of moedwillige verwijdering van data uit de cache via regels of als een instance volloopt.
Role Caching kent ook concurrency. Het is mogelijk om met de data een versie op te geven. Een nieuwere versie wordt dan niet met een oudere overschreven (optimistic danwel pessimistic).
En een Role cache kan ook notification verzorgen tov. shared cache. Deze is wel listig. Sommige notificaties kunnen niet aangekomen zijn. Maar het schijnt dat je kunt testen or er ‘errors’ zijn.
Er was een aardige sheet over de verschillen en overeenkomsten tussen de verschillende cache versies.

Azure websites kennen alleen Shared Cache!
It’s demo time.
En toen was de sessie klaar. Nog vragen?
Daarna ben ik naar de sessie van Rob Miles over Gadgets Everywhere gegaan. Waarom? Vorm over inhoud. Er valt dus niks te bloggen, dit moet je zien. Sorry
🙂
Even later…
Ik ben ook nog nar de Git sessie naar de Europe zaal geweest. Helaas zat ik helemaal achteraan en kon het maar slecht zien. Ik moet naar een gemiddelde tv kijken op 10+ meter afstand met te kleine letters. Iemand eer verrekijker? Is daar een app voor?

Dit maakt mijn blog voor vandaag compleet. Ik hoor om mij heen dat het niveau wisselend ervaren wordt. Ik vind het zelf wel meevallen. Ik denk dat we de afgelopen jaren verwend zijn met grote aankondiging, juist op dit soort evenementen. Maar vandaag de dag hebben continue updates door het jaar heen met de hulp van oa. Nuget en geregeld vs2012 updates. En er was veel te doen rond Win8 en Phone8 maar als je daar niks mee doet…
(Deze blog is live bijgehouden. Sorry voor de typos die ik er niet meer uit heb kunnen halen)