Visual Studio 2005: Skapa ett handdatorprogram med C#

Vi ska skapa ett enkelt .NET-program i C#, som går att köra på en handdator med .NET Compact Framework.

Bild 1: Starta Visual Studio

Visual Studio 2005 finns som ett menyval i Start-menyn:

Visual Studio i Start-menyn

Bild 2: Visual Studio-fönstret

När Visual Studio 2005 startat ser det ut så här:

Visual Studio-fönstret

Bild 3: Skapa ett nytt projekt

Det som en del andra kanske skulle kalla för ett "program" eller en "mjukvara", kallar Visual Studio för "projekt". Vi skapar ett nytt projekt genom att klicka File -> New -> Project:

Menyval i Visual Studio-fönstret

Bild 4: Nytt projekt-fönstret

Nu får vi välja vilken sorts projekt vi ska skapa. Vi ska skapa ett projekt med språket Visual C#, och det ska vara för en Smart Device. Vi väljer att det ska fungera med Pocket PC 2003, och bland mallarna ("templates" på engelska) väljer vi Device Application.

Nytt projekt-fönstret

Bild 5: Projektet i Visual Studio-fönstret

Nu kan vi börja jobba med vårt nya projekt. Notera designverktyget ("designern") till vänster, som vi kan använda för att bygga det grafiska användargränssnittet för programmet.

Visual Studio-fönstret med designverktyget

Bild 6: Ta fram verktygslådan

Om verktygslådan med diverse olika knappar och inmatningsfält inte syns, kan man få fram den genom att klicka View -> Toolbox.

Verktygslådan

Bild 7: Dra en knapp till designverktyget

Ta tag i en knapp ("Button") i verktygslådan och dra den till designverktyget. Knappen får namnet "button1".

Designverktyget med en knapp

Bild 8: Dra ännu en knapp till designverktyget

Dra ännu en knapp från verktygslådan till designverktyget. När knappen finns på designverktyget kan man flytta den med musen, eller ändra storleken på den genom att ta tag i ett hörn.

Designverktyget med två knappar

Bild 9: Designern kan generera kod

Designern kan generera C#-kod utifrån den design vi byggt upp grafiskt. Man kan få fram koden genom att klicka View -> Code.

Kod-vy i Visual Studio-fönstret

"Bild" 10: Den genererade koden

Här är ett utdrag ur den kod som designverktyget genererat. (Den finns inte i filen Form1.cs, utan i Form1.Designer.cs, som man kan hitta i "Solution Explorer" till höger i Visual Studio-fönstret.) I koden ser man till exempel att den andra knappen är större än den första.

Ändringar som görs i koden, till exempel om man ändrar storleken på en knapp, återspeglas sen i vad designverktyget visar grafiskt. Man kan växla mellan designverktyget och kodfönstret genom att klicka på flikarna.

// // button1 // this.button1.Location = new System.Drawing.Point(36, 36); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(72, 20); this.button1.TabIndex = 0; this.button1.Text = "button1"; // // button2 // this.button2.Location = new System.Drawing.Point(81, 105); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(120, 50); this.button2.TabIndex = 1; this.button2.Text = "button2";

Bild 11: Bygg ihop programmet så det går att köra

Programmet finns än så länge bara i form av källkod (även om den kan visas både som text och grafiskt), och den kan inte köras av datorn. Därför måste programmet kompileras och länkas, eller "byggas". Det gör vi genom att klicka Build -> Build Solution, alternativt genom att trycka på snabbtangenten F6. (Snabbtangenterna kan bli lite olika i olika installationer, förmodligen beroende på vilka inställningar man har.)

Menyval i Visual Studio-fönstret

Bild 12: Starta programmet

Sen startar vi programmet genom att klicka Debug -> Start Debugging, alternativt genom att trycka på F5.

Menyval i Visual Studio-fönstret

Bild 13: Var ska programmet köras?

Man får välja var programmet ska installeras, eller "deployas". Om vi har en riktig handdator ansluten kan vi välja den, men här väljer vi den vanliga Pocket PC-emulatorn.

Deploy-fönstret

Bild 14: Emulatorn

Emulatorn startar, och kör vårt program. Man kan trycka på knapparna, men än så länge händer inget, för vi har inte skrivit någon programkod som kan köras vid knapptryckningarna. (Den måste vi skriva för hand, utan hjälp av designverktyget!)

Emulatorn med vårt program

(Själv kör jag själva Windows i VMware. VMware är en emulator, men emulerar en hel PC och inte en handdator. En fördel med Visual Studio 2005 är att man kan köra Pocket PC-emulatorn inuti VMware. I Visual Studio .NET 2003 gick inte det.)

Bild 15: Man kan köra Pocket PC-programmet i vanliga Windows

För att ett .NET-program ska kunna köras, krävs en omgivning med bland annat färdiga klasser. Den .NET-omgivning som används på handdatorer och andra små datorer kallas .NET Compact Framework. Den är en delmängd av den vanliga .NET-omgivningen, som används på vanliga skrivbordsdatorer och som kallas .NET Framework.

Eftersom .NET Compact Framework är en delämängd av .NET Framework, finns alla klasser och metoder som finns med i .NET Compact Framework också i .NET Framework. (Undantag är saker som är gjorda speciellt för handdatorer, till exempel den kompakta databashanteraren SQL Server CE.) Det betyder att ett program som skapats och byggts ihop för .NET Compact Framework också kan köras under vanliga .NET Framework.

Vi börjar med att leta rätt på den körbara EXE-filen, DeviceApplication1.exe, som ligger i en katalog som på min dator heter C:\Documents and Settings\Padrone\My Documents\Visual Studio 2005\Projects\DeviceApplication1\DeviceApplication1\bin\Debug. Leta rätt på den med den vanliga utforskaren i vanliga Windows, och starta den genom att som vanligt klicka på ikonen. Då startar programmet, och dyker upp som ett vanligt programfönster i Windows:

PDA-programmet kört i Windows


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 28 september 2006