DotNED Saturday 2017: laatste ontwikkelingen op .NET-gebied
Na jaren van afwezigheid was in januari 2017 weer een dotNed Saturday, georganiseerd door de grootste Nederlandse .NET gebruikersgroep dotNed. Tijdens dit event komen verschillende ontwikkelaars op het Microsoft platform bijeen om bij te praten en nieuwe inzichten te verkrijgen. ETTU houdt zich al meer dan 10 jaar bezig met diverse .NET-projecten en zo hebben we voor Zilveren Kruis onlangs een .NET-applicatie ontwikkeld op basis van MVC (Model View Controller), genaamd de prijszoeker, waar we ontzettend trots op zijn.
ETTU is een bolwerk aan .NET-kennis, dus redenen genoeg voor mij en de andere leden van het knowledge team ‘Custom development’ binnen ETTU om deze dag niet te willen missen!
Sessie 1 - Building real-world, enterprise grade Xamarin apps with MVVM
De eerste sessie van de dag ging over het MVVM-patroon en de integratie hiervan in een Xamarin app.
MVVM staat voor Model-view-viewmodel en is een methode om je code te splitsen van je grafische laag. Zo kun je ze los van elkaar gebruiken.
In deze sessie werd in hoofdlijnen getoond hoe je binnen een zelfgemaakte app door middel van Xamarin het MVVM-patroon kunt gebruiken. Daarnaast kwam er aan bod welke NuGet packages je hier allemaal makkelijk bij kunt hanteren.
Sessie 2 - Building a Global App with Azure PaaS
Tijdens de tweede sessie stond Azure in de spotlight. Hier viel voor het eerst het buzzwoord van de dag: ‘.NET Core’, de nieuwe versie van .NET. Iedere demo die werd getoond was gemaakt met deze nieuwe versie.
Als deelnemer kreeg je een casus voorgeschoteld van een internationaal opererende koekjesfabrikant, waar diverse websitewinkels over de hele wereld koekjes bestelden. Wat begon als een simpele Azure WebApp, werd al snel uitgebreid tot 4 * Azure WebApps die in datacenters over de wereld verspreid stonden om zo een betere performance te bieden.
Dit moest vervolgens via één URL benaderbaar gemaakt worden. Daarom werd er een Azure Traffic Manager geïntroduceerd die, aan de hand van de geografische locatie van de bezoeker, automatisch doorgestuurd zou worden naar de correcte Azure WebApp.
Maar dan ben je er nog niet. Je moet de data van de website ergens vandaan halen – in dit geval een Azure Database. Maar dan kun je tegen het volgende probleem aanlopen: de Azure WebApp staat te ver weg van de database, waar er idealiter maar één van is. Hoe werd dit opgelost? Door bij iedere Azure WebApp een Azure Redis Cache toe te voegen. Hierin kan alle data die gebruikt wordt om data te tonen opgeslagen worden. Zo heb je geen last meer van het latency probleem bij het uitlezen van data, maar enkel bij het wegschrijven van data. Het dupliceren van je databases over alle continenten kan ook een optie zijn. Dit is echter niet wenselijk, omdat het synchronisatieconflicten kan opleveren.
Tot slot werd Azure Active Directory erbij gehaald om de authenticatie mee te kunnen regelen. Hierdoor draaiden er zo’n tien Azure-onderdelen voor één website.
Sessie 3 - Zero-downtime application met containers
Na de lunch was het tijd voor een sessie over Docker. Hierbij vlogen termen als docker, docker services, docker machines en docker swarm je om de oren. Best pittig, want niet iedereen had hier evenveel ervaring mee. Tijdens de uitleg wat Docker ongeveer was, werd al verteld dat het upgraden naar nieuwere versies (ook minor updates) niet altijd aan te raden was. Waarom? Omdat niet alles backwards-compatible is en sommige parameters in functies andere namen krijgen.
Vervolgens kwam het onderwerp aan bod waar je als deelnemer voor kwam: de zero-downtime. Helaas stelde dit onderdeel een beetje teleur. Blijkbaar waren er maar twee standaard principes die bovendien redelijk voor de hand lagen. Een daarvan was voor het updaten van je machines of blue/green-scenario, waarin je op moment X je live-omgeving omgooit van blauw naar groen.
Sessie 4 - Frontend development & ASP.NET Core Javascript Services
Tijdens sessie vier lag de nadruk op de nieuwe mogelijkheden van ASP.NET Core, het server-side uitvoeren van Javascript code. Een veelbelovende sessie.
Hoe kon dit worden gedaan? Door simpelweg in de startup van je applicatie de AddNodeService aan te roepen die een INodeServices teruggaf. Deze kon vervolgens in de rest van de applicatie gebruikt worden.
Het concept klinkt leuk, maar helaas waren de voorbeelden niet zo overtuigend en werd het niet helemaal duidelijk welke voordelen het op zou leveren. Zo was er een stukje javascript code die een optelsom deed van twee inputs, wat via NodeJs werd aangeroepen.
Sessie 5 - Leer meer over je applicatie met Application Insights
Application Insights is een dienst waarmee je kunt monitoren hoe je applicatie wordt gebruikt en of er bepaalde fouten in zitten. Voor bijvoorbeeld websites zal hij alle requests die binnenkomen vastleggen, maar ook alle requests naar externe resources. Niet alleen websites, maar ook console applicaties kunnen gemonitord worden met deze service.
Het gebruik van de service is in twee opties mogelijk; gratis of betaald. Meestal is de gratis versie goed genoeg. Aangezien het dus niet om een extra investering vraagt, zou dit een geweldig product zijn om te implementeren voor elke organisatie.
Sessie 6 - TypeScript for C# developers
De laatste sessie stond voornamelijk in het teken van de toekomst van Javascript, of eigenlijk ECMAscript. In de huidige applicaties gebruikt ETTU ECMAscript 5. Deze bevat een flink aantal eigenaardigheden, die inmiddels zijn getackeld. Denk hierbij aan het ontbreken van classes en het gedoe met functies in functies die we doen om een soort van onze classes te krijgen.
In de toekomstige versie, ECMAscript 6 & 7, zal dit zijn opgelost. En er is meer! Te zien was dat de nieuwere versie richting C# gaat. Hier worden steeds meer ideeën van overgenomen, zoals lambda expressies en default values van een parameter. Door deze wijzigingen lijkt het erop dat ECMAscript een stuk handiger in gebruik zal zijn.
Vervolgens werd er stilgestaan bij TypeScript. Opnieuw werd duidelijk dat dit een wrapper is over de nieuwe ECMAscript-definitie met nog wat extra handigheidjes erin.
Ook de C#-ontwikkelaars zullen straks steeds makkelijker JavaScript kunnen gaan schrijven. Zeker iets om in de gaten te houden voor in de toekomst!
dotNed Saturday: het bezoek waard
Al met al was dotNed Saturday voor ETTU een informatieve en inspirerende dag, vol nieuwe ideeën en inzichten. Een mooie manier om up-to-date te blijven van de laatste .NET-ontwikkelingen en relevante kennis op te doen over nieuwe mogelijkheden. Benieuwd naar de mogelijkheden van .NET voor jouw organisatie? Neem dan contact met ons op.