söndag, april 10, 2011

Flight Challenge - Sprint 2

Efter fem timmar i luften är jag klar med sprint två. Är nu klar med MainView där man väljer användare och kan skapa nya användare, MyFriendaView där man listar alla sina vänner och kan lägga till nya vänner samt en påbörjad FriendPanormaView som visar all info om en vän. En av kontrollerna i panoramavyn ska innehålla bilder kopplade till vännen. Till den vyn har jag också lagt till en CameraCaptureTask som används för att ta en ny bild. Jag har dock ingen aning om hur jag ska kunna visa upp den bild som tagits så det får bli ett uppdrag för uppehållet i Chicago. Roten i min objektmodell är en lista av User-objekt. Den listan sparas också ner när applikationen deaktiveras och laddad när den aktiveras. Efter stoppet i Chicago med tillgång till Internet så blev koden för att ta en bild med hjälp av CaptureCameraTask enligt följande:

private void AddNewPicture()
{
var cameraCaptureTask = new CameraCaptureTask();
cameraCaptureTask.Completed += cameraCaptureTask_Completed;
cameraCaptureTask.Show();
}

void cameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
var image = new BitmapImage();
image.SetSource(e.ChosenPhoto);
SelectedFriend.Images.Add(image);
}
}

Efter mellanlandningen i Chicago var jag dock tvingad att ge upp. För lite ström och för lite utrymme i planet satte stopp för FlightChallenge denna gång. Jag tänkte dock fortsätta med projektet så jag återkommer!

Flight Challenge

- Skrivet på planet på väg till Chicago -

Några dagar innan resan till Mix 2011 i Las Vegas fick jag en utmaning av mina gamla kollegor på Connecta. Utmaningen gick ut på att bygga en app till Windows Phone 7 på resan till Las Vegas. Inte nog med att tiden är begränsad så är det också ont med ström i economy class. Men utrustad med två datorer och ett stopp i Chicago på tre timmar bara för att ladda batterier så ska det nog gå vägen.

Innan jag åkte hemifrån såg jag till att jag hade allt jag behövde installerat. Det inkluderade Visual Studio 2010 med Windows Phone 7 SDK, Expression Blend 4, MVVM Light Toolkit och Windows Phone Training Kit och underbara ReSharper!

När jag hade checkat in på Arlanda började jag skissa på gränssnitt och datamodell till min app. Och appen då? Jag har två döttrar som är 6 & 9 och vi pratar ofta om vilka appar man skulle kunna utveckla. Ofta handlar det om något kopplat till Lady Gaga men den jag ska bygga idag heter Mina Vänner. I Mina Vänner kan man registrera sig som användare och sedan lägga till sina vänner. Man tar en bild på vännen och så får han eller hon svara på några frågor om sig själv. Det finns en uppsjö av sådana böcker som ockå används flitigt hemma.

Nu är första sprinten avklarad och jag har skapat grundstrukturen i projektet, min datamodell, min första Vy och tillhörande VyModell. Det är lite svårt att styra över sprintlängden utan jag får anpassa mig efter serveringstiderna. Levererat värde än så länge är att jag kan skapa nya användare och lista existerande användare.

Målet för nästa sprint är att jobba med persistering av objektmodellen så att saker sparas när man avslutar. Jag behöver också snart lägga till möjligheten att kommunicera mellan vymodeller i form av Messaging (tack MVVM Light) samt navigering till nya vyer.

Man kan även följa utmaningens framgång eller fall på Twitter och #FlightChallenge.

Nytt jobb - nya ambitioner!

Tiden går så extremt snabbt. Sedan en tid tillbaka har jag börjat på DPE på Microsoft som Plattformsevangelist och idag när jag kollade igenom min blogg så är det ju inte ofta jag kommer med nya inlägg. Har nu varit på Microsoft i precis en månad och ambitionen är helt klart att väcka bloggandet till liv igen.


Fokus i min nya roll kommer initialt att vara Windows Azure men jag kommer också att jobba en hel del med Microsoft Surface och ser väldigt mycket fram emot Surface 2.


De första fyra veckorna har varit mycket intensiva. Techdays där jag pratade om Windows Azure + Windows Phone = Love!, Windows Azure Acceleration Labs med kunder, lite affärsutveckling på Surface och en del Windows Phone 7.


Igår anlände jag till Las Vegas för att vara med på MIX11. Ska bli extremt kul! Resan hit var lång men gick bra och igår kväll var jag bara och promenerade runt på en massa hotell och casino.


Idag är det heldag med DPE från hela världen som sedan avslutas med middag.


onsdag, december 15, 2010

CommunicationObjectFaultedException i Azure 1.3

Igår uppdaterade jag ett Azure-projekt till SDK 1.3 och ett skumt fel dök upp. Jag fick följande exception:

Microsoft.WindowsAzure.ServiceRuntime Critical System.ServiceModel.CommunicationObjectFaultedException: The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.

Konverteringen funkade bra och mina tester funkade bra så jag checkade gladeligen in. Skulle sedan lägga till ett projekt, labba lite med det och då när jag skulle testköra allt tillsammans: CommunicationObjectFaultedException!!!

Med SDK 1.3 så dyker det här felet upp om i Windows Azure compute emulator när en web.config för en Azure roll är markerad som read only. Felet kommer inte att dyka upp när man deployar till Windows Azure eftersom att attribut på filerna resettas när man gör en deployment.

För att komma runt problemet måste man antingen ta bort read only-flaggan på varje web.config eller checka ut filen.

Mer info finns här: http://msdn.microsoft.com/en-us/library/gg508669.aspx

tisdag, november 30, 2010

Windows Azure SDK 1.3 är släppt

I dagarna släpptes version 1.3 av Azure SDK och Azure Tools for Visual Studio. Mycket av det som lanserades på PDC10 är nu tillgängligt och så även den nya Management Portalen. Den är numera helt byggd i Silverlight och är en mycket trevligare upplevelse än tidigare.



Det kan initialt vara lite svårt att hitta sina existerande tjänster eftersom det första du möts av är dokumentationen. Men klicka på New Hosted Service i The Ribbon och sedan Cancel så kommer man till administrationsgränssnittet. Jag antar att det inte är den rätta vägen men det är den enda jag har hittat!



Väl framme så ser man alla sina tjänster, sina storage accounts, sina affinity groups osv.

En ny detalj som var något som länge har varit efterfrågad är möjligheten att vara flera personer som administrerar ett konto. Dvs att det kan vara en person som registrerar tjänsten medan det finns flera som administrerar den. Tidigare har man varit tvingad att dela konto och lösenord mellan varandra och det har verkligen inte känts optimalt. Nu finns dock möjligheten att lägga till administratörer! Klicka bara på User Management i menyn och sedan på Add New Co-Admin i the Ribbon. Great!!


fredag, oktober 29, 2010

VM Role

Igår på PDC10 tillkännagavs en ny roll i Windows Azure – Virtual Machine Role (VM Role). Denna roll kompleterar de tidigare rollerna Web Role och Worker Role. Med en VM Role kan man köra en image, en VHD (virtual hard disk), av en Windows Server 2008 R2 i Windows Azure. Ett scenario med en VM role är att enklare kunna flytta line of business-applikationer till Windows Azure.

Den VHD man laddar upp måste köra Windows Server 2008 R2 64 bit. Det är samma operativsystem som alla roller kör i Windows Auzre och det enda som kan hanteras. Observera att när man jobbar med en VHD i Windows Azure så får man själv ta ansvar för att t ex uppdatera operativsystemet vilket är något som man slipper med de andra rollerna.

När man har laddat upp en VHD och skapat en VM role kan man skala ut den på samma sätt som man gör med andra roller. Genom att sätta de antal instanser man vill ha så kommer Windows Azure att spinna igång det antalet och lastbalansera mellan dessa. Dessa kommer dock att helt sakna tillstånd. Man kan aldrig garantera att en användare kommer tillbaka till samma instans och därför kan inget rörande ett tillstånd eller applikationsdata sparas direkt i en vm roll. Så innan man kan flytta sin applikation till en VM Role i Windows Azure måsta man lösa lagring av data.

Ett exempel på hur man kan göra det, är att flytta datalagring till Azure Storage eller till SQL Azure. Ett annat alternativ är att använda Azure Connect. Med Azure Connect kan man koppla ihop roller i Azure med servrar eller databaser on premises. Jag fick en fråga av en kollega om man skulle kunna installera Sharepoint i VM Role och köra den i Windows Azure och det skulle alltså vara fullt möjligt med Azure Connect. På en VHD kan man installera t ex Sharepoint och konfigurera den att använda en SQL Server på en annan maskin. VHD:n med Sharepoint laddas upp till Windows Azure och ansluts till den lokala domänen där SQL Servern ligger.

Jag tror inte att det är ett vettigt scenario att installera Sharepoint på en VM Role i Windows Azure. Aktuella scenarios är om man har en lång installation, en installation som inte går att scripta eller en installation som är känslig och komplex. Om man har något av dessa scenarios så kan Windows Azure VM Role vara rätt väg att gå.

Prissättningen för VM Role kommer att se likadan ut som för andra typer av roller och man betalar per timme och för storleken på instansen.

torsdag, oktober 28, 2010

Nyheter i Windows Azure.

Idag på Keynote på PDC lanserades en hel del nyheter rörande Windows Azure. Här är några av dessa sammanfattade:

· Virtual Machine Role. För att enklare ge stöd för existerande applikationer som är utvecklade för Windows visades en Virtual Machine Role. Det här var väntat och har pratats om en del den sista tiden. Med en VM Role kan man ladda upp en färdigkonfigurerad virtuell maskin direkt till Windows Azure. På sikt kommer man också att direkt kunna skapa virutella maskiner direkt i Windows Azure.

· Flera administratörer för ett konto. Det här är en liten förändring men ack så efterlängtad och viktig. Jag anser att ett delat konto för att deploya och hantera roller är den största säkerhetsrisken med Windows Azure. Det är nu löst och man kan hantera flera användare genom administrationsportalen för Windows Azure.

· Ny portal. Portalen för Windows Azure har länge varit eftersatt. Begränsad funktionalitet och en väldigt begränsad upplevelse för användaren. Nu kommer en helt ny portal som är baserad på Silverlight. Den nya portalen är ännu inte tillgänglig och jag har bara sett den i demo på scen än så länge men det ser väldigt bra ut!

· Utökade rättigheter och fullständig IIS. Med utökade rättigheter (elevated privileges) kan man göra saker som tidigare inte varit möjligt som t ex att installera ett com-objekt under uppstart. Med fullständig IIS kan man i en Web Role ha flera web sites och Virtual Applications. Tidigare har en web role kört i en Hosted Web Core som var isolerad från IIS. Numera kommer man att köra direkt i w3wp-processen.

· Windows Azure Virtual Network. Roller i Azure kan ingå i ett virtuellt nätverk med andra domäner. På så sätt kan man t ex lägga till en maskin i Windows Azure till ditt eget lokala nätverk.

· Remote Desktop. Med Remote Desktop kan man, direkt från utveckalarportalen klicka på Connecta och öppna en Remote Desktop till den aktuella instansen i Windows Azure. När man deployar en app till Windows Azure kan man välja att konfigurera för Remote Desktop. Självklart används certifikat för säker access. När man har remote desktop mot en instans i Windows Azure kan man se vad som är deployat, ändra filer och inställningar. Dessa förändringar är så klart stateless och kan förloras men det kan vara bra vid en felsökning. Om man gör det här i en produktionsmiljö kan det vara bra att plocka bort den aktuella instansen från lastbalanseraren så att den inte träffas av webbtrafik under tiden. Det kan man göra via PowerShell cmdlets på den aktuella instansen.

· Windows Azure Marketplace. På PDC09 visades Dallas för första gången. Genom oData kan man komma åt olika datakällor, antingen gratis eller som man betalar för. Dessa datakällor kan man använda i sina egna appliktioner. Alla dessa datakällor samlas nu i det som kallas Windows Azure Marketplace. Inom kort kommer även en nya del av Windows Azure Marketplace som innehåller delar eller hela applikationer som man kan köpa eller använda.

Det var mycket mer som visades. Mer information kommer att komma vad tiden lider och en bra källa är Windows Azure Team Blog

fredag, augusti 20, 2010

Certifikat för utveckling i Windows Azure med SDK 1.2

I juni släpptes en ny version av Windows Azure SDK (version 1.2). Den innehöll många mycket bra nyheter som gör livet som Azure-utvecklare mycket enklare.

Fullt stöd för Visual Studio 2010 RTM samt stöd för .NET 4 var väntat (och efterlängtat!). En annan nyhet är två tillägg till Server Explorer. Dessa ger möjlighet att få en read only-vy av de tjänster man har i Azure Compute samt Azure Storage.

Numera är det möjligt att deploya direkt från Visual Studio. Tidigare kunde man bara bygga paket och fick själv ladda upp dessa genom portalen alternativt med hjälp av PowerShell. Det här är ett enormt lyft och gör hantering av deployment samt historik av deployade paket mycket enklare.

Alla externa verktyg som på något sätt ska komma åt Windows Azure Managements api måste använda sig av ett X.509-certifikat. Man kan använda ett existerande certifikat eller utfärda ett nytt eget. Enklaste sättet att utfärda ett eget certifikat är att använda Visual Studio.

  • Klicka på Windows Azure Compute i Server Explorer och välj Add Slot…

image

  • Högerklicka på den vita rutan och välj New…

image 

  • Skapa ett nytt certifikat genom att välja <Create…> i rullistan i steg 1.
  • Kopiera pathen till filen som representerar certifikatet genom att klicka på länken i steg 2.

Oavsett om man väljer ett existerande certifikat eller om man har utfärdat ett eget måste man ladda upp det till Azure Portalen.

  • Logga in på portalen och klicka på Account

image

  • Klicka på Manage My API Certificates och ladda där upp det certifikat som du precis kopierat pathen till.
  • Klicka på Account igen och kopiera ditt Subscription ID som finns längst ner på sidan.
  • Ge dina rättigheter ett vänligt namn.

image

Du kan nu lista de slots du har för din tjänst i Azure och lägga till respektive slot du vill kunna granska i Server Explorer.

 

Cerebrata Cloud Storage Studio

Samma certifikat som nu finns uppladdat i Windows Azure-portalen kan också med fördel användas av andra verktyg. Jag är ett fan av Cerebratas Cloud Storage Studio där det också finns möjlighet att övervaka tjänster i Azure, göra nya deployments, starta och stoppa tjänster samt byta mellan Staging och Produktion.

I Cloud Storage Studio är det bara att klicka på Connect to Hosted Service, klistra in sitt Subscription ID från Azure-portalen samt peka ut certifikatet.

image

Om det certifikat som ska användas är genererat av Visual Studio enligt ovan så hittar man det under:

  • Certifikate Store
    • Certificates – Current User
      • My

image

onsdag, mars 24, 2010

TechDays 2010

Två intensiva dagar i Örebro är över för denna gång och jag måste säga att TechDays 2010 var ett klart lyft jämfört med 2009!


Lyckligtvis fick jag möjlighet att hålla min session, A Lap Around Visual Studio 2010 under dag 1 vilket gjorde att jag sedan kunde ta det lugnt och bara “vara” resten av tiden. Sessionen var relativt välbesökt men i en lokal som tar 1400 personer är det svårt att uppskatta hur många det var på plats. Allt flöt på bra och jag har fått mycket positiv feedback efteråt. Ska bli spännande att se utvärderingarna! Jag fokuserade på nyheterna i IDE’n, nyheterna i språken med en demo om Covariance, visa lite av parallell extensions och avslutade med lite nyheter i WPF 4. Det är så klart svårt att täcka speciellt mycket på bara en timme men det kändes ändå som att det blev en bra översikt över nyheterna.


Direkt efter min session hoppade jag in i en Taxi och åkte till Örebro Universitet för att köra min session igen på TechDays@Campus. Ett mycket bra initiativ från Microsoft och Örebro Universitet! Studenterna fick möjligheten att se keynote från dag 1 streamat och hade sedan valt ut fyra sessioner som de vill ha levererade på plats. Före mig hade Magnus Mårtensson pratat om Azure Storage, Tiberiu Covaci om parallell computing och Tess Ferrandez om ASP.NET debugging. Gruppen var lite sliten och något desarmerad när jag kom dit kl 15.00 och jag antar att Tess session kanske var lite väl komplex. Jag började med att fråga hur många som hade använt någon version av Visual Studio och såg tre händer… Det gjorde att jag fick ändra lite i min session, hoppa över några demos och prata mer om hur det har varit tidigare och visa tydligare visa på förändringar.


Connecta var med som utställare och vi hade även tagit dit vårt Surface bord. Som vanligt drog Sonicspree mycket folk!


TechDays - Surface


På kvällen var det underhållning med Henrik Schyffert som alltid är helt lysande!



imac




//Björn

fredag, februari 26, 2010

Visual Studio 2010 - IDE

Det finns en hel del nyheter i IDE’n i Visual Studio 2010. Den är numera byggd i WPF vilket kommer att möjliggöra tredjepartstillverkare att bygga mycket intressanta tillägg framöver!

New Project:
Precis som tidigare har man möjlighet att välja vilket ramverk man ska jobba med. Det innebär att man kan tidigt börja använda VS2010 även om man inte är redo att gå upp till .NET 4. Men i New Project är den mest välkomna nyheten att man nu kan söka bland installerade mallar. Sökrutan högst upp till höger filtrerar bland alla installerade mallar oavsett i vilken nod i trädet man står i när man startar sökningen. Jag hade önskat att man skulle ha gjort en större förändring och tydligare framhäva möjligheten att söka eftersom att det är så otroligt snabbt sätt att hitta den mall man behöver. Samma sökmöjlighet finns även när man väljer Add New Item. Som vanligt finns det också en hel del mallar att ladda ner i Visual Studio Gallery.

image

Extensions Manager:
Under Tools – Extension Manager hittar man en ny dialog som kan användas för att installera olika tillägg till Visual Studio. Det är relativt enkelt att skapa egna och det finns även många att ladda ner. Tillägg man kan hitta i det online gallery som är integrerat i Visual Studio kan vara små små förändringar eller större verktyg som t ex ReSharper. Det pratades tidigt i utvecklingen av VS2010 att man skulle kunna skinna IDE’n och med ett liten tillägg som heter Visual Studio Color Theme Editor är det i alla fall möjligt att enkelt ändra det färgschema som VS2010 använder. Nedan finns två exempel på teman som jag skapat. Ett som är lite mer nertonat a la Expression och det andra med lite mer klara färger.

image image

Ett av mina favorit-tillägg är ItallicComments. Ett litet tillägg som gör så att kommentarer i kod blir kursiva.

image

IntelliSense:
Ända sedan jag testade Visual Assist från Whole Tomato för ett antal år sedan har jag önskat att få IntelliSense som är implementerad som “innehåller” istället för “börjar med” och nu kommer den nyheten till VS2010. Det finns också stöd för att göra sökningar med Pascal Casing men det är en funktion som jag har märkt att jag aldrig använder. Det känns som att det tar längre tid att komma på vad det är för Pascal Casing på AreAnyTouchesCapturedWithin än att skriva t ex Touch. Men med nya IntelliSense kan man alltså också skriva AATCW.

Call Hierarcy:
För att förenkla för utvecklare att förstå hur kod hänger ihop har man lagt till ett par intressanta nyheter. Ett sådant är Call Hierarcy som visar vad som anropar en metod samt vad den metoden i sin tur anropar. Ställ dig på en metod och tryck CTRL+K, T så kommer Call Hierarcy-fönstret fram. Calls to visar vilka anrop som kommer in till metoden och Calls From visar vad den i sin tur anropar. Mycket värdefull hjälp för att framför allt snabbt få koll på vem som anropar en metod som man ska ändra!

image

Pin:
Det finns många möjligheter att pinna saker i VS2010. Den mest uppenbara är att man t ex kan pinna sln-filer så att de alltid finns med i Recent Projects-listan. En lite mer dold feature är att man kan pinna inspektioner som man gör under debugging. När man gör en mouse over på en variabel under debugging får man som vanligt upp information om vilket värde den variabeln håller. Den visualiseringen har nu en liten nål så att man kan pinna den och behöver då inte längre hålla kvar musen där för att se dess värde. Efter det att man har pinnat visualiseringen kan man också expandera fram ett kommentarsfält. Hela den här visualiseringen går också att pinna så att även om man scrollar så ligger den kvar på samma ställ samt att man även enkelt kan flytta den.

image image

Det är var några av de nya features som finns i VS2010 som gör livet som utvecklare lite enklare och trevligare!