By: Martin Wåger

2013-10-24

TechX: Dag 2

TechX dag två började med ett anförande av Microsoft Sveriges nya VDJonas Persson. Han visade sig vara en äkta nerd som utvecklat MUD spel och överklockat datorer med flytande kväve. Han pratade annars mycket om att det var oss utvecklare och IT-proffs som var viktiga för Microsoft (som andra gjort innan honom lite mer exalterat).

Dag två var ännu mer uppdelad än dag ett. Inte nog med att det fanns ett utvecklar och ett IT proffs spår, dessa vad dessutom uppdelade i två nya delspår. För utvecklare kunde man välja mellan Windows 8.1 och Windows Phone eller .NET, Windows Azure och ASP.NET. Själv är jag mer intresserad av den senare så tyvärr missade jag Windows 8.1/Phone fördjupningen.

## Vad händer när du gör await?
Först ut på morgonen var Anders Thun och Peter Bryntesson med en genomgång av hur async / await fungerar. Dom gick igenom grundläggande C# metoder för await och visade att i .NET 4.5.1 var alla metoder som tog mer än ett tiotal millisekunder ändrade till await.

Dom förklarade nyttan med await genom att visa en liten app som beräknade Pi. I ursprungslösningen frös hela programmet medan beräkningen utfördes. Detta löstes enkelt genom att införa await på beräkningsmetoden. Sedan gick dom djupare genom att skapa parallellism genom att skapa en grupp av Tasks som fick exekvera samtidigt. Dom visade på vanliga) problem som uppstår (t.ex. resurs konflikter och UI uppdatering från fel tråd) och avslutade med en länk till deras gemensamma blogg med kodexempel: http://blogs.msdn.com/b/thunbrynt/

## Continuous Delivery med InRelease
Mathias Olausson gick igenom nyheter i TFS 2013, tex en ny förenklad byggmall och förbättrat stöd för test. Nytt är även ett verktyg för release hantering som Microsoft köpt upp: InRelease. Det var lite oklart hur verktyget skulle distribueras med TFS 2013 men demonstrationen av det visade att det var ett kraftfullt verktyg som kunde automatisera hela leverans processen från utvecklare, via test till slutleverans. Verktyget kan skjuta ut mjukvara som konfigurerar testmiljöer, t.ex. virtuella maskiner i Windows Azure och sedan kör testsviter.

## Din testmiljö i molnet
*Hans Wallentin* fortsatte på test spåret med att prata om hur man kan använda Windows Azure som sitt egna testlabb till en relativt billig kostnad. Om man är MSDN medlem får man dessutom en summa pengar att spendera i Azure varje månad. Ett konkret exempel var att man med MSDN Premium gratis kunde köra tre VM i 8 timmar / 22 dagar per månad.

## Windows och OpenSource
Lunchen fördrevs med ett mycket intressant föredrag om OpenSource hos Microsoft. Dag König gick igenom Microsofts historia med OpenSource, lite trevande först men nu har man flera stora komponenter som inte bara visar källkod utan faktiskt tar pull requests från allmänheten. Koppa på http://msopentech.com/ för mer info. *Andreas Håkansson* visade sedan Nancy, ett mycket intressant och lättviktigt ramverk för att skapa HTTP servicar. Nancy tar emot Nancy requests och genom ett enkelt språk kan man skapa sitt Nancy response. Det finns en sedan handlers som kan göra om t.ex. ASP.NET request och response till Nancy format. Detta gör att man kan skapa ett helt tomt ASP.NET projekt, installera Nancy och Nancy.Hosting.Aspnet med NuGet och sedan skriva sin backend med Nancy. Mycket intressant.

## Windows Azure Mobile Services
Beat Schwegler tog det otacksamma passet efter lunch och levererade TechXs mest intressanta föredrag. Han inledde med en genomgång av Azure Mobile Services. En tjänst för att snabbt sätta upp en mobilbackend i Node.js. Tanken är att man ska slippa lägga krut på backend och fokusera på sin app. På mindre än 20 minuter livekodade Beat ihop en backend som persisterade data från en Windows 8.1 app (lättare att dema) och som dessutom hade inloggning via Google och Twitter. En kost stund därefter hade han lagt till push meddelanden till appen med Notification Hub samt att han visade hur man kunde skala upp lösningen med hjälp av Azure Service Bus den dagen man har många användare.

Men Beat stannade inte där han demade hur man snabbt kunde sätta upp en sida med Azure Web Sites och att dom (likt Amazons EC2) kan förkonfigureras med en uppsjö av mjukvaror t.ex. Node.js, phpBB och WordPress (med MySQL från ClearDB). Sist visade Beat hur han från ett powershell-script byggde och deployade en Node.js backend med MongoDB samt en Ember.js) frontend byggd med Yeoman) på 2 minuter till Windows Azure, verkligen imponerande.

## Nyheter i ASP.NET 4.5.1
Fredrik Normén gick igenom nyheterna i ASP.NET 4.5.1. Han gick igenom One ASP.NET (igen) och de nya att man kan välja vilken ASP.NET komponent man vill ha i sitt projekt från wizarden, t.ex. WebForms och MVC sida vid sida. I dagsläget kan man dock inte välja en ren WebAPI utan MVC följer med ändå men detta skall fixas. OWIN stöd är också en sak som kommer stort i ASP.NET. Vissa tycker att IIS pipeline är för långsam och har för mycket funktionalitet. Med OWIN kan man skapa en webserver själv i sitt projekt på ett standardiserat sätt (NuGetMicrosoft.Owin) som sedan kan hosta ASP.NET kod. Flera OWIN interface kan ligga efter varandra, och en annan nyhet ASP.NET Identity är just ett sådant interface som hanterar membership One ASP.NET.

## ASP.NET MVC 5
Det är inte massor av nyheter i MVC 5 men dom löser några jobbiga problem.

Authentication filter som likt Authorization filtren kan skräddarsys för att t.ex. blockera vissa autentiserings metoder.
Filter overrides kan undanta controller filter på vissa action methods. Bra för publika metoder i skyddad controller.
Attribute routing är en välbehövlig nyhet som innebär att man kan slippa editera routs objektet utan i stället sätter routing på varje controller med ett attribut. Mycket mer kodnära.

Fredrik visade också att det för närvarande var lite buggar i Authentication filter och Fitler overrides för MVC. Default implementationen fungerar tydligen inte. Men han visade att man enkelt kan lägga till sin egen implementation som löser problemet tills Microsoft fixar det.

## ASP.NET WebAPI 2.0
Det sista Fredrik visade var några nyheter i WebAPI som nu nått version två. Förutom samma stöd för ASP.NET Identity och Attribute Routing som MVC har kommer även

Request batching som gör att man kan klumpa ihop flera GET i ett multipart meddelande
OData stöd i WebAPI som gör att man kan ställa frågor via GET parametrar direkt ner i databasen. Kraftfullt då man inte måste skapa egna GET metoden men kanske lite farligt om det inte konfigureras rätt?
– Möjlighet att lägga till CORS stöd endpoints vilket ger möjlighet att anropa WebAPI tjänster från andra websidor.

//Martin Wåger

#.Net #ASP.NET-MVC #ASP.NET-WebAPI #Azure-Mobile-Services #C# #Ember.js #Nancy #Node.js #Windows-Azure

TechX: Dag 1

Git på insidan