Microsoft Azure: Linux

Tijdens het afgelopen Connect(); event in New York werd ook duidelijk dat Microsoft Linux en Open Source een warm hart toedraagt. Ze hebben hun .NET framework open source gemaakt dat is een stap. Maar eerder is ook geroepen door Satya Nadella, Microsoft Love Linux.

Microsoft_LOVES_Linux

In het begin bestond Azure uit Microsoft gerelateerde producten. Sterker nog Azure was alleen een PAAS. Virtual Machine zoals bij Amazon bijvoorbeeld waren niet mogelijk. Ooit is er de VM Role geweest, maar dat is later gauw vervangen door echte IAAS.

Sinds de nieuwe HTML portal (http://manage.windowsazure.com) behoort IAAS oftewel Virtual Machine echt tot Microsoft Cloud landschap. Ook bijna vanaf dag 1 zaten daar Linux images bij. Dat leverde gefronste ogen op, maar dat is alleen maar uitgegroeid. Op de huidige preview Portal (http://portal.azure.com) is de lijst met Linux images erg groot. Het lijkt mij onwaarschijnlijk dat dit het einde is. Wellicht komen er leveranciers die vanuit de Marketplace images gaan aanbieden. Hoe groter de vraag, hoe meer aanbod er gaat komen..

11-23-2014-15-36-59

Tijdens mijn dagelijkse snuffelrondje (Microsoft Azure verandert zo snel) kwam ik tegen dat ik ook een Minecraft server in de lucht kon brengen. Enige dat je nodig hebt, is een naam en 15 minuten. Daarna heb jij je eigen Minecraft server. How cool! Deze draait op een Linux image by the way.

minecraftazure

Welke reden heb jij om geen gebruik te maken van Microsoft Azure?

Visual Studio 2015 Preview: C# 6

Op 12 en 13 november was er het Connect(); event van Microsoft in New York. De keynote was live te volgen en de gezamenlijke Nederlandse communities (WAZUG, DotNed, VB Central en natuurlijk de SDN) hadden een avond georganiseerd om samen de keynote te bekijken. Als je er niet bij was of de keynote gemist hebt, dan kun je dat op je gemak nakijken op Channel 9. Het waren niet de minste sprekers: Scott Guthrie, S. Somasegar, Brian Harry en Scott Hanselman.

Tijdens dit event liet Microsoft zien dat de woorden van de CEO Satya Nadella, Mobile First, Cloud First, niet zomaar een loze opmerking was. Dit statement gaat door heel Microsoft heen en zit verweven in alles wat zij doen en laten. Dat kwam duidelijk naar voren in de keynote.

Er waren een aantal aankondigingen, een daarvan is dat Microsoft het .NET platform als Open Source beschikbaar stelt op GitHUB. Dat betekent dat iedereen een Pull request kan doen en zo eigenhandig bugs etc. kan oplossen. Deze aanpassingen kun je dan weer terug sturen en Microsoft zal ze (na testen etc.) overnemen. How cool is dat! De eerste pull request kwam binnen het uur dat de spullenboel open stond.

Een andere aankondiging was een preview van Visual Studio 2015. Deze preview bevat ook previews van ASP vNext en C# 6. Hoewel er geen nieuwe taal elementen aan C# zijn toegevoegd, is de taal en tooling wel geoptimaliseerd. Alle aanpassingen die gemaakt zijn, hebben tot doel om het de developer eenvoudiger te maken.

In deze blogpost een paar van de veranderingen.

Code moet niet alleen eenvoudiger maar ook cleaner gemaakt kunnen worden. Zoals bijvoorbeeld een relatief simpele methode als hieronder. De function body is eigenlijk overbodig.

11-22-2014-15-57-00

En het kan korter door gebruik te maken van een Lambda arrow (=>). Deze kende we al, maar nu kan het ook voor deze gebruikt worden. Er komt straks nog een mogelijkheid aan.

11-22-2014-15-57-001

Clean code en duidelijk begrijpbaar en leesbaar.

Nog zo’n mooie toevoeging. De volgende code constructie herkent iedereen wel.

11-22-2014-16-00-57

Met de nieuwe Elvis operator kan dat een stuk korter. De ?. (met een beetje fantasie zie je een kuif met ogen) operator hoef je niet meer te checken of het object NULL is.

11-22-2014-16-01-07

Uiteraard werkt dit ook met methodes is de Class: x?.Calc(1,2); Vind ik iets gevaarlijker, want de Calc methode wordt niet uitgevoerd als x NULL is. Als je niet goed over je tests of structuur let, dan kan dit tot onverwachte situaties leiden.

Nog een veelvoorkomende constructie. We maken strings voor meldingen op en we doen dat natuurlijk netjes met de string.Format methode. Super simpel en redelijk leesbaar, nadeel je moet wel goed tellen en de welke waarde waar komt is niet in een oogopslag duidelijk.

11-22-2014-16-03-39

Dus dat moest anders. Simpel \{<variable>} en de code is gelijk een stuk gedocumenteerd. Natuurlijk kun je ook de formatting regels van string.Format meenemen, volledige vrijheid over de uiteindelijke tekst.

11-22-2014-16-03-391

Bovenstaande is een field van een class/object. Doordat ik hem public heb gemaakt, kun je hem manipuleren. Dat is natuurlijk niet helemaal netjes en eigenlijk zou je properties moeten gebruiken. Nadeel van properties op dit moment is, dat deze zowel een getter als een setter moeten hebben. In C# 6 is die verplichting er niet meer, een property kan alleen een getter hebben.

En als je dan gebruik maakt van de lambda arrow, dan gebeurd dat automatisch voor je. Dat het geen field is, dat zie je door de Code lens referentie teller. Maar ook als je de waarde van de property wilt aanpassen, dan krijg je een compiler waarschuwing.

11-22-2014-16-04-47

11-22-2014-16-01-54

Zo zijn er nog meer aanpassingen en wijzigingen, daarover later meer