Welcome to MSDN Blogs Sign in | Join | Help

Robert Folkesson

Roses are #FF0000,
Violets are #0000FF,
All my base are
belong to you.
Vårdvalet i Västra Götaland med hjälp av Scrum, Team Foundation Server och Silverlight

Tidigare i höst fick alla invånare i Västra Götalandsregionen möjlighet att välja vilken vårdcentral de skulle tillhöra. Det här är ett val som alla invånare över 16 år i Sverige kommer att få göra. Det är upp till de olika regionerna att själva skapa IT-system som stöder hanteringen. Förutom själva valet av vårdcentral ska också ersättningen till de olika vårdcentralerna hanteras baserat på vårdvalet.

Silverlight-baserad klient

Inom Västra Götalandsregionen (VGR) valde man att skapa en webbaserad lösning med en Silverlight-klient för att hantera vårdvalet på vårdinrättningarna. Utvecklingsprojektet har arbetat med mycket kort tidsmarginal. Man har från april i år till slutet på augusti lyckats skapa en väl fungerande lösning som har rullats ut till de flesta vårdinrättningarna i regionen.

vardvalklient Att valet föll på Silverlight som klientplattform berodde mycket på att VGR ville slippa utmaningarna att hantera tillstånd i en traditionell ASP.NET-baserad webbapplikation. Samtidigt ville man ändå ha fördelarna av en webbaserad distribution (enkel uppdatering, körs direkt i webbläsaren). Man ville också slippa anpassa lösningen för olika versioner av webbläsare, vilket ofta kan vara ett tidsödande och dyrt arbete i traditionella webblösningar.

Överlag är VGR mycket nöjda med valet av Silverlight men naturligtvis har det funnits ett antal utmaningar i projektet. I efterhand så är en av lärdomarna att de borde ha fått med sig infrastrukturansvariga mycket tidigare i projektet för att underlätta utrullningen av Silverlight. Att få till effektiva GUI-tester och bristen på utskriftsstöd i Silverlight 3 har varit två andra utmaningar i projektet.

Team Foundation Server och Scrum

ToolTip_sm En av anledningarna till att projektet över huvud taget gick att genomföra med så korta tidsramar är att de använt sig av Scrum för sin utvecklingsprocess och kört strikt testdriven utveckling samt att de hade möjlighet att använda Team Foundation Server som processmotor. Genom att köra korta iterationer (två veckors-sprintar) så har projektet kunnat hålla verksamheten konstant involverad. Beställarna har hela tiden känt att de har haft bra koll på statusen i projektet och full kontroll över prioriteringen av funktionerna. 

Förutom Team Foundation Server med Conchangos Scrum-mallar så har projektet även använt ett verktyg som heter Pivotal tracker, där främst verksamheten arbetat med uppföljning och prioritering av backloggen i projektet.

En snygg sak som man har gjort i byggprocessen är att låta byggservern producera olika kataloger med korrekt konfigurerade .config-filer för test-, demo- och drift-miljöerna med hjälp av ett open source-projekt för MS Build som heter MSBuild Community Tasks Project och funktionen XmlMassUpdate.

Jag hoppas också inom kort kunna publicera en längre intervju på Channel9 som jag och Dag König gjorde med utvecklingsteamet.

Missa inte Windows Azure Developer Challenge

AzureHome

Windows Azure Developer Challenge är en tävling för utvecklare med målsättning att bygga lösningar på Windows Azure.

  • Startdatum [har redan varit] och sista dag den 13:e januari kl 12.00*.
  • Tävlingen är personlig och öppen endast för svenska medborgare.
  • Du kan anmäla hur många bidrag du vill.
  • Bidragen bedöms av en jury från svenska Microsoft kontoret
  • Bidragen bedöms utifrån innovation, originalitet och utnyttjandet av tjänsterna i plattformen.
  • Vid anmälan anger du uppgifter om dig själv så vi kan nå dig. En beskrivning av din lösning. Länk till antingen din site på Azure som är lösningen i sig eller där vi kan nå eventuell programvara som behövs.

* Perfekt julpyssel alltså :-)

Augmented reality på PDC09


Huvudet i molnet

I utställararean på PDC hade Azure-teamet ställt en av de containrar som normalt står i ett av Microsofts nya datacenter och som innehåller ett par tusen rackmonterade servrar.

AzureContainer Jag och Björn Eriksen från Connecta tog chansen att känna på hur molnet känns inifrån – när kylningen slår på i full effekt:

Nyheter från PDC 2009

Under Professional Developer Conference i Los Angeles har en mängd nyheter presenterats, här är ett urval av godbitarna:

  • windows-azure-platform-headline MIcrosofts chefarkitekt Ray Ozzie talade om hur Windows Azure har utvecklats sedan förra PDC:n och använde begreppet: “three screens and a cloud” för att beskriva hur PC:n, mobilen och de nya smarta apparater som vi har i hemmen (t.ex. TV m XBox 360) kommer att utnyttja tjänster i molnet i framtiden. “Three screens and a cloud” är ett begrepp som jag tror vi kommer få höra fler gånger i samband med Microsofts vision för Software + Services med olika typer av klienter och molnbaserade tjänster.

  • Bland nyheterna i Windows Azure annonserades stöd för inte bara Java och PHP, utan också MySQL, Apache, Memcached och MediaWiki (som är plattformen Wikipedia körs på). Matt Mullenweg, grundade  av Wordpress, introducerade en demo som visade hur Wordpress kördes i Azure. Ett antal färdiga ‘acceleratorer’ finns tillgängliga för att bygga lösningar med bl.a. MySQL, Apache och MediaWiki.

  • Windows Azure får också stöd för flera olika storlekar på virtuella maskiner: Small, Medium, Large och XLarge, där XLarge är en maskin med åtta processorer, 14GB minne och hög IO.

  • Microsoft Pinpoint är en ny katalogtjänst som kopplar ihop utvecklare och leverantörer med kunder som har behov av produkter eller tjänster. logoEn del av Pinpoint är något som än så länge går under kodnamnet “Dallas” – som enklast kan beskrivas som ett sätt att prenumerera på datakällor, där data kan komma från t.ex. nyhetsbyråer, myndigheter eller finansanalysföretag.


  •  Windows Server AppFabric annonserades. Lokalt installerad är AppFabric är en sammanslagning av det som tidigare hette “Dublin” och den distribuerade cachefunktionen  “Velocity”.  Det innebär att AppFabric erbjuder en körmiljö för WCF-tjänster och WF-arbetsflöden samt tillgång till en distribuerad cache för webbapplikationer. Allt administreras via ett gränssnitt som jackar in i IIS Manager.

  • AppFabric är också en del av Windows Azure. Den del av Windows Azure som tidigare hette .NET Services, som innehåller en Service Bus och Access Control-del, har nu rullats in i något som heter Windows Azure platform AppFabric. Det här är ett stort steg mot Microsofts vision om hur vi i framtiden bygger modelldrivna applikationer.  Modellerna beskriver vad applikationen ska göra, snarare än exakt hur den utför arbetet – det är upp till den aktuella miljön som applikationen körs i. I ett demo visades hur en modell av en applikation skapades, packades ihop och driftsattes i AppFabric med hjälp av VS 2010. Applikationen flyttades sedan till Windows Azure AppFabric och kunde också övervakas med System Center som övervakade lösningen och kunde ge förslag att skala ut lösningen med fler virtuella servrar i takt med att lasten ökade. 

  • Under dag 2 annonserade Scott Guthrie att Silverlight 4 Beta 1 finns tillgänglig, bara fyra månader efter att vi släppte Silverlight 3. Silverlight 4 innehåller mängder av ny funktionalitet – här är ett urval av godsaker: Print Support, Implicit Styling, WebCam/Microphone Support, RichTextArea Control, Right-Mouse Button Events, Drag-n-Drop/Clipboard Access, UDP/Multicast. En personlig favorit är stöd för Commands som gör det enklare att använda MVVM-mönster. En annan sak som är riktigt riktigt cool är att du nu kan ge Silverlight applikationer Full trust vilket möjliggör att du t.ex. kan komma åt lokala filsystemet, plocka upp att hårdvara kopplats in – men också att du via COM kan integrera med t.ex. Outlook, Excel - eller vilken annan applikation som helst på maskinen som exponerar COM-interface. Missa inte kolla in Scott Guthries keynote från dag 2(publiceras inom kort). En ny version av WCF RIA Services (tidigare .NET RIA Services) annonserades också.

  •  Datafeeds64Under dag 2 annonserades också publik tillgänglighet av Office 2010 Beta och Sharepoint Server 2010 Beta. Sharepoint 2010 innehåller ett ton förbättringar och nyheter för utvecklare. Logo_MSFTOffice2010_187x54Du kan nu köra Sharepoint server på en vanlig utvecklarmaskin och har möjlighet att debugga din kod direkt i VS 2010, utan att behöva lägga över ett paket på en testserver och göra attach mot en process på servern. Sharepoint designer är helt omarbetad och du har nu möjlighet att bygga egna anpassade Ribbon-kontroller i gränssnittet. En av de saker som jag tycker är riktigt cool i Sharepoint 2010 och Office 2010 är stödet för Open Data-protokollet, eller ‘OData’ som det kallas för. Med hjälp av OData kan all data som finns i Sharepoint 2010 enkelt exponeras via REST-baserade tjänster som klienter, t.ex. Excel 2010 via  PowerPivot, kan anropa och använda sig av. Funktionalitet för att hantera OData finns nu också inbyggd i WCF Data Services (tidigare ADO.NET Data Services).


    Det har annonserats mängder med mer godsaker för utvecklare – stay tuned för mer tekniska djupdykningar i olika tekniker. Om du har möjlighet så missa inte heller PDC 2009 Afterparty som arrangeras nu på onsdag 25/11 i Stockholm - där Johan Hedberg från Logica, Joakim Karlsson (Microsoft Consulting Services), Dag König och jag själv väljer några favoritämnen från PDC 2009 som vi talar om.


Scott Guthrie kommer till Sverige!

Den 2 december kommer Scott Guthrie till Stockholm.

Det är en unik chans för dig att få möjlighet att lyssna till en 5 timmar (!) lång föreläsning av mannen bakom ASP.NET.
Håll utkik efter din inbjudan, men boka redan nu den 2 december för Scott Guthrie.

UPDATE: Registrera dig för seminariet med Scott Guthrie i Stockholm.


Uppdaterar bloggen asap med klockslag, plats och länk till inbjudan – tills dess: håll tillgodo med en video som visar hur The Gu förbereder sina sessioner.

Nya utvecklarkurser om SharePoint 2010 och Office 2010 på Channel9

CH9TrainingCourses

Igår lanserades två nya utvecklarkurser på Channel9 för SharePoint 2010 och Office 2010. Dessa erbjuds i form av en serie videoinspelningar gjorda av MVP:er som går igenom hur du som utvecklare kan dra nytta av alla spännande nyheter i Sharepoint och Office-plattformen.

SharePoint 2010 Developer Training

Office 2010 Developer Training

I början av december kommer dessa kurser kompletteras med hands-on-labbar, källkod och mer material – peta in Channel9:s RSS-feed i din favoritläsare för att inte missa uppdateringarna.

Nya intro-filmer till ASP.NET MVC 2 och Microsoft Ajax Library på Channel9

Fredrik Normén, som till vardags arbetar som utbildare på Cornerstone, har spelat in en serie screencasts där han ger bra kortare introduktioner till nyheter som kommer i ASP.NET MVC 2 samt Microsoft Ajax Library.

Du hittar alltid de senaste filmerna som publiceras från Sverige på Channel9 här. Ploppa in RSS-feeden i din favorit-feedreader för att vara säker på inte missa nya filmer.

Så skapar du en Jump list i Windows 7

En Jump list i Windows 7 är ett sätt att skapa en intuitiv snabbare navigering för användaren direkt åtkomlig i aktivitetsfältet (Taskbar). I och med införandet av Jump list kan man säga att alla applikationer har fått möjlighet till en egen mini-startmeny som du som utvecklare kan anpassa.

Ett exempel är den Jump List som Windows Live Messenger-klienten erbjuder:

MSNJumpList

Här är en översikt över vilka delar en Jump list kan innehålla:

image_4

En Jump List kan alltså innehålla:

  • Destinationer, eller sökvägar, till information eller filer.

    Dessa delas in i
    • en fastlåst sektion (Pinned category),
    • en sektion med nyligen använda (Known categories)
    • eventuella egendefinierade sektioner (Custom Categories).
  • Verbi form av ‘Tasks’, d.v.s. uppgifter som kan utföras av användaren. En typisk sådan kan t.ex. vara att spola fram en låt i en mediaspelare.

Som utvecklare kan du använda dig av det API som aktivitetsfältet exponerar genom ett antal COM–interface för att styra funktionaliteten i din applikations Jump List.

Application ID

Till att börja med så är det rekommenderat att du ger din applikation ett ‘Application ID’. Applikations ID:t används för att gruppera applikationer och processer i aktivitetsfältet. Alla applikationer och processer som har samma Applikations ID kommer att dela Jump List och aktivitetsfältsikon med varandra. Om du t.ex. har flera instanser av Internet Explorer igång så kommer dessa visas som en ikon i aktivitetsfältet och de kommer också att ha en gemensam Jump List där du ser de senaste adresserna som du surfat till.

Om du inte ger din applikation ett ID kommer operativsystemet att automatiskt tilldela ett ID till applikationen. Men rekommenderat är alltså att du själv kontrollerar detta för att kunna styra grupperingen i aktivitetsfältet. ID:t används också för att registrera din applikation för kända filtyper – för att automatiskt kunna hålla reda på och visa senast öppnade dokument i Jump List.

Se bloggposten ‘Developing for the Windows 7 Taskbar – Application ID’ för hur du skapar ett Application ID.

Destinations

För att din applikation ska kunna öppna destinationer/sökvägar som visas i Jump List så måste en registrerad ‘file handler’ finnas för den aktuella filtypen i registret. Det innebär inte att din applikation måste vara ‘default handler’ för den aktuella filtypen, men en registrering måste alltså finnas där.

När din applikation är registrerad för en viss filtyp kommer filer som användare öppnar via filutforskaren genom dubbelklick eller som öppnas via Common File Dialog (CFD) automatiskt att läggas till listan över nyligen använda ‘Recent’ – i applikationens Jump List.

Om du vill skapa en egen kategori med en anpassad lista kan du göra det genom ett interface som heter ICustomDestinationList. Bloggposten ‘Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 2’ går igenom det i detalj med kodexempel i C++ och C#.

Tasks

Som du såg i översiktsbilden ovan så kan du också skapa ‘Tasks’, alltså verb som är direktingångar till funktionalitet i din applikation. I exemplet Windows Live Messenger ovan så är det endast ‘Tasks’ som användaren kommer åt – ändra status, logga ut, navigera till MSN m.m.

Ett ‘Task’ är ett sätt att erbjuda ett gränssnitt för användaren att direkt från Jump List kunna köra din applikations exekverbara fil, på samma sätt som om du hade anropat den från en kommandoprompt med tillhörande argument.

‘Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 3’ innehåller bra exempel i C++ och C# på hur du lägger till egna ‘Tasks’ för din applikation.

Om du utvecklar i .NET så rekommenderas också varmt att du laddar hem Windows® API Code Pack for Microsoft® .NET Framework som innehåller wrappers runt bl.a. de COM-interface som du använder för att skapa och hantera Jump List-objekt. Den innehåller också en mängd färdiga bra demoexempel som du kan lära ifrån.

Visual Studio 2010 Beta 2 tillgänglig samt MSDN Relaunch

Igår gjordes Visual Studio 2010 Beta 2 tillgänglig för MSDN-prenumeranter, du hittar den under ‘MSDN Subscriber downloads’. Har du inte tillgång till MSDN-prenumeration får du vänta ytterligare några dagar innan den görs publikt tillgänglig. EDIT: alla versioner av Visual Studio 2010 Beta 2 finns nu tillgängliga här.  

Vi passade på att fira detta genom att göra senaste MSDN Radio till en Visual Studio 2010-special, där vi fick hjälp av vår Tools & MSDN-expert Simon Holm att reda ut vad de olika versionerna av Visual Studio kommer att heta och innehålla samt vilka uppgraderingsvägar som finns tillgängliga.

logo_msdnI samband med att Visual Studio 2010 Beta 2 släpptes så sjösattes också den nya strukturen och designen av våra MSDN-sajter. Det är ett arbete som vårt webbteam sysslat med under en tid där man också tagit fram en ny stilig logotyp för MSDN. Kolla in www.msdn.se för den uppdaterade looken.

Du är inbjuden till Windows 7 lanseringen

clip_image001

Den 23 oktober lanserar Microsoft Windows 7 på Tekniska museet i Stockholm. I samarbete med Handelskammaren och Företagarna presenteras en komplett orgie i teknik under en heldag. Tillsammans med  Dell, Dustin, Samsung, HP, Lenovo, Acer och Asus  visas det senaste inom PC och Netbooks med Windows 7, skrivare, kameror, mobiltelefoner, skärmar, mjukvara, spel m.m. Det kommer också finnas folk på plats som svarar på frågor om Windows 7 och hårdvara.

Programmet ser ut så här (det är fri entré & kostnadsfria seminarier):

10.00-20.00: Öppet hus
10.00-11.00: Småföretagarfokus med Anna-Stina Nordmark VD på Företagarna &
Per Adolfsson, direktör Microsoft om hur du som företagare kan frigöra tid, fokusera på kärnverksamheten, öka din konkurrenskraft och finna nya affärsmöjligheter med ett bra IT-stöd.
10.00-11.00: Utbildningsfokus hur tekniken kan påverka produktiviteten i utbildningen och minska tiden för administrationen.
11.00 och varje halvtimme: Demo-jams med experter som visar funktioner för arbete, utbildning och hemmet.
15.00-16.00: Studenter högre utbildning, den digitala livsstilen.

Plats: Tekniska museet, Museivägen 7, Stockholm.
Viska ”Microsoft” i receptionen, så går du in gratis (alternativt överraska med att kunna det hemliga handtecknet :-)
Lokal: Södra Stallet

Anmäl dig till Windows 7-lanseringen här.

ASP.NET MVC 2 Preview 2

Nyligen släpptes ASP.NET MVC 2 Preview 2. Denna version lägger sig snällt och prydligt jämsides med ASP.NET MVC 1.0 vilket gör att den inte stökar med dina befintliga projekt.

ASP.NET MVC Preview 2 finns idag endast i en version för Visual Studio 2008 SP1/.NET 3.5 SP1. Där får du tillgång till en helt ny mall för ASP.NET MVC 2-projekt. Den kommer också att finnas inbyggd i den kommande Beta 2-versionen av Visual Studio 2010.

En av de riktigt spännande nyheterna i ASP.NET MVC 2 Preview 2 är möjligheten att ange valideringsregler i din domänmodell med hjälp av System.ComponentModel.DataAnnotations. Det bygger på att du med hjälp av en partiell klass anger valideringsregler för olika egenskaper på dina domänklasser. Reglerna valideras sedan på klienten med hjälp av jQuery Validation-biblioteket och användaren får en direkt återkoppling - utan någon postning tillbaka till servern.

I följande exempel har jag angett en regel som säger att egenskapen VacationsHours på Employee-klassen måste ha ett värde mellan 0 och 80:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
 
namespace Mvc2FirstLook.Models
{
    // Metadataklass för Employee
    [MetadataTypeAttribute(typeof(EmployeeMetadata))]
    public partial class Employee
    {
 
        internal sealed class EmployeeMetadata
        {
 
            //  Privat konstruktor, metadataklasser ska inte instansieras
            private EmployeeMetadata()
            {
            }
 
            // Tillåt endast värden mellan 0 och 80
            [Range(0, 80, ErrorMessage="VacationHours måste vara mellan 0 och 80")]
            public short VacationHours;
 
        }
 
    }
 
}

På klientsidan i min vy lägger jag till en referens till Javascript-filerna jquery-1.3.2.js, jquery.validate.js och MicrosoftMvcJQueryValidation.js. Jag behöver också slå på valideringsfunktionen genom att sätta EnableClientValidation:

EDIT: Jon tipsar om att lägga Javascript-filer sist i HTML-koden för att möjliggöra parallell nedladdning av refererade bildfiler (om dessa ligger på olika hostnames eller domäner). I mitt enkla exempel hade jag inga bilder så då gör det ingen skillnad, men det är ett mycket bra tips för riktiga lösningar. Ett annat tips är att använda sig av ett s.k. Content Delivery Network för att servera filer som inkluderas i många sidor – t.ex. scriptfiler. Microsoft har nyligen lanserat Microsoft Ajax CDN som innehåller både ASP.NET AJAX- och jQuery-scriptfiler. Dessutom borde jag naturligtvis ha pekat på den minifierade jQuery-filen (den ligger också på Microsoft Ajax CDN). Fler bra prestandatips hittar du i Yahoos Best Practices for Speeding Up Your Web Site.

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>

<h2>Edit</h2>

    <%= Html.ValidationSummary("Edit was unsuccessful. Please correct the errors and try again.") %> 
   
   
<% Html.EnableClientValidation(); %>

    <% using (Html.BeginForm()) {%>

        <fieldset>

            <legend>Fields</legend>

                <%= Html.Hidden("EmployeeID", Model.EmployeeID) %> 
           <p>

                <label for="NationalIDNumber">NationalIDNumber:</label>
                <%= Html.TextBox("NationalIDNumber", Model.NationalIDNumber) %> 
                <%= Html.ValidationMessage("NationalIDNumber", "*") %>

            </p>

            <p>

                <label for="Title">Title:</label>
                <%= Html.TextBox("Title", Model.Title)%> 
                <%= Html.ValidationMessage("Title", "*")%>

            </p>

            <p>

                <label for="VacationHours">VacationHours:</label>
                <%= Html.TextBox("VacationHours", Model.VacationHours) %> 
                <%= Html.ValidationMessage("VacationHours", "*") %>

            </p>

            <p>

                <input type="submit" value="Save" />

            </p>

        </fieldset>

    <% } %>


Om användaren nu sätter ett felaktigt värde i VacationHours visas meddelandet direkt:

clientvalidationASPNETMVC

Det som jag tycker är riktigt coolt med DataAnnotations är att det är samma teknik för att ange valideringsregler som används i ASP.NET Dynamic Data och i .NET RIA Services. Det innebär att du kan ha en enda gemensam plats för alla dina valideringsregler och sedan få dessa regler validerade i t.ex. en Silverlight-klient eller en HTML-vy genererad av MVC-ramverket.

Men – det skulle ju inte vara ASP.NET MVC om det inte också gick att skjuta in sin egen funktionalitet för validering :-)  MVC-ramverket har i Preview 2 fått en providermodell för där du kan stoppa in din egen Model Validation Provider, om den inbyggda inte skulle motsvara dina krav.

En annan stor nyhet i Preview 2 är något som kallas ‘Area’ som kan användas för att förenkla struktureringen av större sajter rent kodmässigt. Mikael Söderström har skrivit en utmärkt artikel om Area i ASP.NET MVC 2 Preview 2.

Lär dig utveckla för Windows 7 med Windows 7 Training Kit

Windows 7 Training Kit for Developers innehåller presentationer, hands-on labbar och demos som snabbt får dig på banan när det gäller Windows 7-utveckling.

I träningspaketet kan du bland annat gå igenom följande nyheter som du kan utnyttja för att få dina applikationer att verkligen skina på Windows 7:

  • Aktivitetsfältet och s.k. Jumplist
  • Bibliotek – s.k. ‘Libraries’
  • Multitouch
  • Sensorer och Location
  • Ribbon
  • Trigger Start-tjänster
  • Instrumentation och eventspårning
Applikationskompatibilitet är naturligtvis ett extremt viktigt område, materialet täcker in följande:
  • Versionskontroll
  • UAC Data Redirect
  • Session 0-isolering
  • Installer-detektion
  • User Interface Privilege-isolering
  • Hög DPI-inställning

VIssa delar i träningspaketet kräver att du har Windows Code Pack och Windows 7 SDK installerat.

Här laddar du hem Windows 7 Training Kit for Developers.

TechDays 2010 - Örebro 23–24 mars

Vi är i full färd med förberedelser inför TechDays 2010 och håller bland annat som bäst på att säkra upp både svenska och utländska toppnamn som talare. Boka in den 23 och 24 mars, och ställ in siktet på ännu ett fullspäckat svenskt evenemang för utvecklare, tekniker och IT-chefer.


Visible Earth imagery owned by NASA

Om du bokar senast den 31 oktober så sparar du 1500 kr.

Läs mer på techdays.se >>

Så skapar du en förloppsindikator för Windows 7 aktivitetsfält med .NET

En av de många små nyheterna som gör Windows 7 så mycket trevligare att arbeta med är möjligheten att ha en “progress bar”, eller förloppsindikator (i ett försök att använda en hyfsad svensk översättning), i Windows 7 aktivitetsfält.

Vad det handlar om är att kunna ge användare en direkt visuell återkoppling till att ett program arbetar med något och hur långt det har kommit. Ett bra exempel är filutforskaren som i Windows 7 visar hur mycket som återstår av en filkopiering:

TaskbarProgress

I bilden ovan ser du hur kopieringen hunnit ungefär en tiondel vilket indikeras av den gröna stapeln. Genom en snabb blick ner på aktivitetsfältet kan du se om programmet arbetar, ungefär hur långt det kommit eller om det är klart - utan att behöva växla mellan öppna program. Klart smidigt!

För att komma åt de nya API:erna i Windows 7 som .NET-utvecklare kan du använda dig av ett bibliotek med färdiga funktioner från Microsoft som heter Windows API Code Pack for Microsoft .NET Framework. Där hittar du bland annat ett Shell-projekt som innehåller den statiska klassen Taskbar. Taskbar har en Progressbar-egenskap som du använder för visa pågående aktivitet i ditt program.

Progressbar har ett CurrentValue och ett State. CurrentValue är ett värde mellan 0 och 100 som avgör hur långt programmet har kommit i arbetet, alltså hur långt stapeln ritas ut. 

State är en enumeration som kan vara antingen Error, Indeterminate, NoProgress, Normal eller Paused:

TaskbarButtonProgressState

Indeterminate används när du vill visa att det inte går att avgöra hur långt en process kommit, alltså ett obestämt tillstånd. När State är satt till Indeterminate visas en grön markering som rör sig i sidled över ikonen i en loop tills tillståndet ändras.

Jag har skapat en enkel WPF-applikation som visar på olika tillstånd och hur förloppet indikeras i aktivitetsfältet:

Taskbardemo1

Här kan du ladda hem WPFTaskbarDemo1.

More Posts Next page »
Page view tracker