Vem är Johan Lindfors

Jag jobbar som teknisk chef på Microsoft i Sverige och ansvarar för vår tekniska evangelisering mot utvecklare. I den här bloggen har jag för avsikt att skriva om utveckling i allmänhet och på Microsofts plattform i synnerhet.

Är du intresserad av en XNA användargrupp?



Visa resultat!

Get Microsoft Silverlight

Olika upplösningar i ett XNA-spel

En fråga som dök upp under min presentation på Sommarkollo i tisdags var följande:

Fråga: Går det att ha olika skärmupplösningar för olika delar av ett spel? Med andra ord, kan jag låta min titelskärm vara renderad i 800x480 och sedan använda den inbyggda “scalern” för själva spelmomentet att rendera i 400x240 för att få ytterligare prestanda-förbättringar?

Svar: Jajamensan, det går att göra, och är inte speciellt svårt att ordna har det visat sig.

graphics.PreferredBackBufferWidth = 240;
graphics.PreferredBackBufferHeight = 400;
graphics.ApplyChanges();

Hemligheten är så klart anropet till ApplyChanges().

Postades 26. augusti 2010 09:18 av Johan Lindfors
Taggar: ,

Vill du bygga spel för Windows Phone 7?

Idag släpptes den första delen i en serie om utveckling av spel för Windows Phone 7. I den här första delen av fas ett så handlar det om plattforment, och då specifikt introduktion till spelutveckling med XNA Game Studio för WP7. Första delen innehåller bland annat en laboration där du bygger ett tvådimensionellt katapultspel, exempel för ljud, musik, partiklar och hur du hanterar orienteringen av telefonen. Ett par tekniska artiklar följer också med materialet som borde ge dig en bra grogrund för att sedan komma vidare när nästa del släpps i september.

Ladda hem materialet och börja bygga idag!

Postades 23. augusti 2010 21:10 av Johan Lindfors
Taggar: ,

Testa dina applikationer på Windows Phone 7

Inför lanseringen av Windows Phone 7 så vill jag ge dig som utvecklare och primärt partner till Microsoft möjligheten att testa dina applikationer som du bygger för Windows Phone 7 på en riktigt enhet. Dessvärre så har jag inte någon att i det här stadiet låna ut, utan istället så har jag ordnat halvdagar då du har möjlighet att komma till Microsoft och testa din kod på en redan konfigurerad utvecklingsmiljö med en riktig telefon.

Kravet är dock att du redan har kommit en bit i din utveckling och vill testa de förmågor av applikationen som inte lämpar sig att testa i emulatorn (eller inte går). Det är alltså inte meningen att de här halvdagarna kan användas för att påbörja en utveckling eller bara prova på hur det är att koda.

Dessa datum och tider finns att boka:WindowsPhone7Bing

Datum

Tid

Onsdagen den 25:e augusti 09.00 – 12.00
Onsdagen den 25:e augusti 13.00 – 16.00
Torsdagen den 26:e augusti 09.00 – 12.00
Torsdagen den 26:e augusti 13.00 – 16.00
Onsdagen den 1:a september 09.00 – 12.00
Onsdagen den 1:a september 13.00 – 16.00
Torsdagen den 2:a september 09.00 – 12.00
Torsdagen den 2:a september 13.00 – 16.00
Onsdagen den 15:e september 09.00 – 12.00
Onsdagen den 15:e september 13.00 – 16.00
Torsdagen den 16:e september 09.00 – 12.00
Torsdagen den 16:e september 13.00 – 16.00

Boka genom att maila mig på Johan(dot)Lindfors(at)microsoft(dot)com alternativt ringa 08-752 27 80.

Om du fortfarande inte har kommit igång så hittar du alla resurser som du behöver i form av verktyg, emulator, dokumentation, exempel osv här: http://developer.windowsphone.com

Här finns också en rejäl lista med strukturerat och organiserat material som kan hjälpa dig igång: http://indyfromoz.wordpress.com/windows-phone-7-resources/

Postades 18. augusti 2010 11:33 av Johan Lindfors
Taggar:

Missa inte dina fria timmar i molnet med MSDN

För dig som har en MSDN prenumeration finns det fria timmar att dra nytta av i Windows Azure Platform. Här finns det en riktigt bra beskrivning över hur du går tillväga för att använda timmarna och utvärdera plattformen, GRATIS!

Click to download Walkthrough DocumentsFråga: Varför måste jag ändå mata in ett kreditkort?
Svar: Tjänsten är designad så att ju mer du konsumerar desto mer kostar det. Det betyder att när dina fria timmar är slut så kommer din prenumeration att börja ticka kostnader, men du kan i processen markera att du inte vill automatiskt förnya din prenumeration på det sättet utan istället välja att “kliva av” när de fria timmarna är slut.

Glöm inte heller att ladda hem det uppdaterade “training kit” som nu finns tillgängligt. Där finns laborationer som snabbt hjälper dig igång med de olika komponenterna i Windows Azure Platform.

Postades 18. juni 2010 14:12 av Johan Lindfors
Taggar:

Hantera synlighet av element baserat på orientering

En dialog som nyss dök upp i en diskussionslista var angående hur det går att agera på förändring i orientering av enheten som då kan uppdatera gränssnittet. Med Windows Phone 7 och Silverlight så kan du markera dina sidor i en applikation till att ha stöd för både Portrait (stående) och Landscape (liggande) eller bara en av dem om så önskas. Med hjälp av de inbyggda panelerna så kommer sedan elementen i din applikation att automatiskt ställa in sig till skärmens orientering, mycket smidigt, men det finns begränsningar.

Exempelvis kalkylatorn i Windows Phone 7, har liksom kalkylatorer i andra plattformar, mer knappar synliga vid liggande orientering än vid stående. Men hur kan vi i våra applikationer förändra ett elements synlighet baserat på orientering?

Databinding och “value-converters” till räddningen.

Genom att helt enkelt databinda det element som vi vill ska kunna synas eller inte, specifikt egenskapen Visibility, till egenskapen på sidan som heter Orientation. Dessvärre så har dessa egenskaper olika typer och det är där en konverterare kommer till sin rätt. Följande kod skapar en en-vägs-konverterare (i och med att jag inte implementerar ConvertBack metoden) som hanterar konverteringen:

public class LandscapeVisibilityConverter : IValueConverter
{
    public object Convert(
        object value,
        Type targetType,
        object parameter,
        CultureInfo culture)
    {
        var orientation = (PageOrientation)value;
        Visibility visibility = Visibility.Collapsed;
        switch (orientation)
        {
            case PageOrientation.Landscape:
            case PageOrientation.LandscapeLeft:
            case PageOrientation.LandscapeRight:
                visibility = Visibility.Visible;
                break;
            default:
                break;
        }
        return visibility;
    }

    public object ConvertBack(
        object value, 
        Type targetType, 
        object parameter, 
        CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Hoppas att du får användning av den! Det är precis lika enkelt att skapa en PortraitVisibilityConverter, men det fixar du själv va, eller hur Smile

Postades 16. juni 2010 23:08 av Johan Lindfors

Optimera prestanda i Silverlight-applikationer för WP7

När du börjar utveckla applikationer för Windows Phone 7 med Silverlight så är det naturligtvis viktigt att kontinuerligt ha koll på systemresurser och optimera applikationens olika delar som exempelvis animationer. Allt för att få till en så bra upplevelse som möjligt för användaren.

Då kan det vara bra att slå på följande egenskap:

Application.Current.Host.Settings.EnableFrameRateCounter = true;

UPPDATERING:

I applikationer som väljer att visa SystemTray (som visar batteri osv) så kommer räknarna att hamna bakom denna, det betyder att för att vara säker på att se räknarna så är följande kodrader att föredra:

this.SetValue(Microsoft.Phone.Shell.SystemTray.IsVisibleProperty, false);
Application.Current.Host.Settings.EnableFrameRateCounter = true;

Då kommer du att få fem stycken räknare högst upp i vänsta hörnet som ger följande information:

  1. imageRender thread frame rate
  2. UI thread frame rate
  3. Vram used
  4. # textures used
  5. # intermediate textures used

Mer information om detta kan du få här: http://live.visitmix.com/MIX10/Sessions/CL60

Postades 11. juni 2010 17:35 av Johan Lindfors

Windows Phone 7 applikationer med lokal cache av data

Vill varmt rekommendera en presentation från TechEd 2010 i New Orleans som har titeln “Occassionally Connected applications with Windows Phone 7” som hölls av Rob Tiffany. Rob pratar om hur vi kan optimera våra applikationer både på servern och klienten för att underlätta kommunikation mellan telefonen och servern med hjälp av exempelvis WCF,  REST och JSON. Rob tar också upp en användning av Singelton-mönstret för att skapa en lokal “databas” av objekt som kan serialiseras ned på disk (i IsolatedStorage) för cachning av data samt hantering av tillstånd.

En mycket intressant diskussion med bra kodexempel och pedagogiskt upplägg!

Postades 11. juni 2010 17:06 av Johan Lindfors
Taggar: ,

Windows Phone 7 Developer Hub den 9:e juni!

Nu har det äntligen blivit dags för den första utvecklardagen som helt fokuserar på Windows Phone 7. Till min stora glädje så har vi lyckats få hit två internationella talare som bidrar med ytterligare djup och förståelse för plattformen, Ben Riga och Neil Hutson!

image003 Under dagen kommer vi att titta på både Silverlight och XNA som tekniker för applikationer på Windows Phone 7. Vi kommer också att titta ytterligare på vilka typer av applikationer som redan har börjat skapas samt hur Metro, det nya designspråket för Windows Phone 7, kan användas för att göra eleganta och effektiva applikationer som följer mönster och rekommendationer för plattformen.

Mellan 09.00 och 16.30 håller vi på den 9:e juni på Hotell Clarion Sign i centrala Stockholm. Anmälan kan göras redan idag! Vi bjuder på både lunch och fika under dagen!

Jag hoppas kunna publicera en detaljerad agenda inom kort, men det kommer bli mängder av teknik, massvis med demos och riktiga telefoner på scenen, säkerligen lite klämma och känna möjligheter också!

Här följer agendan för dagen:

Titel Längd
Introduction to Windows Phone 7 45 minuter
Lap around tools 15 minuter
Building Silverlight Applications for Windows Phone 90 minuter
Hardware Access (camera, accelerometer, touch, etc. ) 60 minuter
Building Windows Phone games with XNA 60 minuter
Efficient Design 75 minuter
Market Place 30 minuter

Vi hoppas fortfarande på att ha några fysiska enheter på plats för dig som deltagare att klämma och känna på, inget går väl upp mot “the real thing”. I värsta fall får jag bygga några själv enligt den här beskrivningen Smile

Ben Riga
Ben RigaBen Riga is Senior Technical Evangelist for Windows Phone 7 in Microsoft's Developer and Platform Evangelism  (DPE) group.  His responsibilities include demonstrating the compelling business value of the Windows Phone platform and how it extends the Microsoft stack to the device to help customers and ISVs to more quickly deliver mobile applications.  Ben supports the Microsoft field by engaging in key projects, recruiting target customers/partners, engaging customers and partners with feedback and managing the all-up engagement pipeline.

Neil Hutson
Neil Hutson Neil Hutson is the Senior Director of Technical Evangelism at Microsoft Corp.  In this role he is responsible for exciting developers about Microsoft’s emerging platform technologies and tools and leading key activities for Microsoft’s Premier PDC and MIX events. Over the past year the group has been focused on a number of major launches such as Windows Azure, Windows 7, Sharepoint and Visual Studio 2010. With the developer announcement of Windows Phone 7 at MIX10, Neil would like to share his knowledge of the platform here in Sweden. Prior to his current role, Neil was Director of Technical Evangelism for Windows Server, Microsoft Corp and also Chief Architect for .NET, Microsoft Europe, Middle East and Africa.

Jag kommer inte heller att kunna hålla mig från scenen, vad hade du väntat dig? :)

Anmäl dig idag!!!

Postades 19. maj 2010 20:33 av Johan Lindfors

MSDN TV Live – Nyheterna i Silverlight 4 nu på Channel9

Fredagen den 14:e maj höll Danwei Tran en presentation om nyheterna i Silverlight 4 som nu går att se på Channel9. Det kom tre frågor efter presentationen som jag här vill ge lite svar på:

Fråga: Hur ser det ut för Silverlight på andra plattformar?
Svar: Silverlight utvecklas av Microsoft för Windows (både PC och Windows Phone 7), Mac OSX och även för Symbian. Novell håller sedan på i och med Moonlight projektet att göra tekniken tillgänglig även på Linux.

Fråga: Finns Expression Blend med i MSDN prenumerationer?
Svar: Jajamensan, i prenumerationern med MSDN Premium eller högre så finns Expression Studio med och där ingår Expression Blend.

Fråga: Kan olika Silverlight applikationer i samma webbsida kommunciera med varandra?
Svar: Japp, tekniken som används är så kallade Senders och Recievers. Det finns en bra artikel på MSDN och jag har laddat upp ett kodexempel som använder VS2010 om du vill testa på tekniken själv.

Nästa vecka kommer Dag König att gå igenom CodeContracts i och med .NET Framework 4.0!

Postades 14. maj 2010 22:50 av Johan Lindfors

Integrera BlogEngine.NET med Facebook

Hittade ett inlägg på tyska som beskrev hur du kan integrera Facebooks “Gilla” knapp med BlogEngine.NET och det var väldigt, väldigt enkelt.  Här är en enkel och snabb guide även på svenska:

Du öppnar PostView.ascx som finns i ditt temas underkatalog till just Themes-katalogen. Lägg sedan till nedanstående kod där du ser det vara lämpligt och där du vill ha knappen synlig. Jag har som synes exempelvis valt att lägga den direkt under titeln på respektive inlägg.

<iframe style="border-bottom: medium none; border-left: medium none; width: 700px; height: 25px; overflow: hidden; border-top: medium none; border-right: medium none" src="http://www.facebook.com/plugins/like.php?href=<%=Post.PermaLink %>&layout=standard&show-faces=true&width=50&height:25px&action=like&colorscheme=light" frameborder="0" allowtransparency scrolling="no"></iframe>

Hemligheten ligger i <%=Post.PermaLink %> som genererar en permanent länk till inlägget och alltså blir det som registreras hos Facebook.

Vill du veta mer om funktionen och olika parametrar så rekommenderas facebooks dokumentation!

Postades 7. maj 2010 22:22 av Johan Lindfors

Den här bloggen använder BlogEngine.NET 1.6.0.0
Temat anpassat av Johan Lindfors