Klicka på startknappen i den lilla mediaspelaren ovan för att lyssna på lektionen. (Man kan behöva vänta en stund på att ljudfilen laddas ner.) Om mediaspelaren inte syns, eller om det inte fungerar av något annat skäl, kan man klicka här för att ladda ner mp3-filen (ca 22 minuter, ca 10 megabyte). Beroende på hur webbläsaren är konfigurerad kan det kräva ett separat mp3-spelarprogram av något slag. Tänk på att lektionerna ger en översikt och introduktion. Du måste läsa i kursboken och arbeta med övningarna för att tillgodogöra dig kursen! Bild 1: Kort om Visual Studio .NET 2003 Ett tillägg hösten 2008 (inte med på ljudspåret): Det finns nyare versioner av Visual Studio .NET, och den senaste heter Visual Studio 2008 (alltså utan ".NET" i namnet). Boken använder Visual Studio .NET 2003 i sina exempel, och det gör även många av exemplen i den här webbkursen, men vi ska använda Visual Studio 2008. Dessutom kan man, om man redan har den installerad, använda Visual Studio 2005. Det mesta fungerar likadant i alla tre versionerna, men ibland kan fönstren se lite olika ut. Läs mer om Visual Studio 2008 här! En integrerad programmeringsomgivning med kompilator, editor, debugger, designverktyg mm. Kan skapa olika typer av applikationer, som fönster- och konsol-applikationer. Kan skapa både .NET- och native-kod. Bild 2: Emulatorn Visual Studio .NET 2003 innehåller en PocketPC-emulator, som man kan använda för att provköra sina .NET Compact Framework-program. Bild 3: Riktig handdator (En bild från lektion 1.) Man kan även installera sitt program på en riktig handdator. Bild 4: Visual Studio, med emulator och en handdator (En bild från lektion 1.) Från vänster: Den riktiga handdatorn. Emulatorn. Visual Studio (med designverktyget!) Bild 5: MSDN Academic Alliance Vi laddar hem Visual Studio från Microsofts "MSDN Academic Alliance". Du måste vara registrerad på kursen, och ha aktiverat den e-post-adress du fått av Örebro universitet. Det är till den e-post-adressen som webbadressen, och ditt login-namn och ditt lösenord skickas. Så här ser webbplatsen ut: Bild 6: Fler program från MSDN Academic Alliance Från MSDN Academic Alliance kan man ladda hem inte bara Visual Studio, utan även Windows XP. Bild 7-8: Installera Visual Studio .NET 2003 Ett tillägg hösten 2008 (inte med på ljudspåret): I den här kursen använder vi numera Visual Studio 2008. Ignorera därför vad som står här, och läs mer här om hur man laddar ner, installerar och använder Visual Studio 2008. Det är möjligt att inledningen av installationen kan variera lite, beroende på hur man gör när man laddar ner Visual Studio (eller får den på annat sätt). Själv fick jag i alla fall en ISO-image som jag brände en cd-skiva av, och på den cd-skivan fanns en självuppackande Zip-fil (560 megabyte), som sen gick att packa upp till en katalog på hårddisken (1248 megabyte), och som sen drog igång installationen. Bild 9: Installationen börjar Efter uppackningen av Zip-filen startades installationen automatiskt. Det finns fyra steg i installationen: Bild 10: Saker som Visual Studio .NET 2003 vill ha ("prerequisites") Om man inte installerat Microsofts webserverjox (IIS och Front Page) tidigare på datorn, så kan man installera det nu. Bild 11: Man kan behöva Windows-skivan Se upp med att man kan behöva ha installationsskivan för Windows 2000 eller Windows XP tillgänglig, för att installera webserverjoxet. Bild 12: Installationen av själva Visual Studio Som steg två kommer själva Visual Studio att installeras. Det var ett antal olika fönster som man fick ta sig igenom. (Jag hade inga dokumentationsskivor, så jag gjorde inte steg 3, och steg 4 fungerade inte på min dator.) Bild 13: Windows Update Steg 4 fungerade inte, men vanliga Windows Update laddade ner en del patchar. Bild 14: Starta Visual Studio Vi ska prova att skapa ett litet program. Starta Visual Studio. Bild 15: Visual Studio-fönstret Så här ser det ut. Bild 16: Skapa ett projekt Klicka på File och välj New och Project. Bild 17: Välj rätt sorts projekt Det ska vara ett projekt av typen C#-projekt och enligt mallen Smart Device Application, dvs ett handdatorprogram i C#. Bild 18: Välj målplattform och projekttyp Välj Pocket PC och Windows Application. Bild 19: Utvecklingsmiljön Nu är projektet igång. Notera designverktyget ("designern") till vänster. Dra dit en knapp. Bild 20: En knapp Knappen får namnet "button1". Bild 21: En knapp till Knappen får namnet "button2". Man kan ändra storleken på den. Bild 22: Designern kan generera kod Dubbelklicka på formulärets namnlist. Man kan växla mellan designverktget och kodfönstret, Bild 23: Kompilera, "deploya" och kör Enklast att klicka på Start: Tillägg till bild 23: Startar programmet inte? Start betyder "starta debuggern", så programmet körs i debuggern. För att köra debuggen måste man (i alla fall i Windows XP) ha en aktiv nätverksanslutning. Har man inte det står Visual Studio still en stund, och sen får man ett felmeddelande i Output-fönstret. En lösning är att använda Start Without Debugging. Man kan också installera något som heter "Microsoft Loopback adapter", och som är en "låtsas-nätverksanslutning". Bild 24: Var ska programmet köras? Emulator eller riktig handdator? Välj emulatorn. (Samma dialogbox på sidan 85 i kursboken visar flera olika emulatorer.) Bild 25: Emulatorn Emulatorn igång, körande vårt program. "Bild" 26: Programmet Designverktyget genererar C#-kod i filen Form1.cs: 1 using System; 2 using System.Drawing; 3 using System.Collections; 4 using System.Windows.Forms; 5 using System.Data; 6 7 namespace SmartDeviceApplication1 8 { 9 /// 10 /// Summary description for Form1. 11 /// 12 public class Form1 : System.Windows.Forms.Form 13 { 14 private System.Windows.Forms.Button button1; 15 private System.Windows.Forms.Button button2; 16 private System.Windows.Forms.MainMenu mainMenu1; 17 18 public Form1() 19 { 20 // 21 // Required for Windows Form Designer support 22 // 23 InitializeComponent(); 24 25 // 26 // TODO: Add any constructor code after InitializeComponent call 27 // 28 } 29 /// 30 /// Clean up any resources being used. 31 /// 32 protected override void Dispose( bool disposing ) 33 { 34 base.Dispose( disposing ); 35 } 36 #region Windows Form Designer generated code 37 /// 38 /// Required method for Designer support - do not modify 39 /// the contents of this method with the code editor. 40 /// 41 private void InitializeComponent() 42 { 43 this.mainMenu1 = new System.Windows.Forms.MainMenu(); 44 this.button1 = new System.Windows.Forms.Button(); 45 this.button2 = new System.Windows.Forms.Button(); 46 // 47 // button1 48 // 49 this.button1.Location = new System.Drawing.Point(120, 80); 50 this.button1.Text = "button1"; 51 // 52 // button2 53 // 54 this.button2.Location = new System.Drawing.Point(88, 120); 55 this.button2.Size = new System.Drawing.Size(96, 48); 56 this.button2.Text = "button2"; 57 // 58 // Form1 59 // 60 this.Controls.Add(this.button2); 61 this.Controls.Add(this.button1); 62 this.Menu = this.mainMenu1; 63 this.Text = "Form1"; 64 this.Load += new System.EventHandler(this.Form1_Load); 65 66 } 67 #endregion 68 69 /// 70 /// The main entry point for the application. 71 /// 72 73 static void Main() 74 { 75 Application.Run(new Form1()); 76 } 77 78 private void Form1_Load(object sender, System.EventArgs e) 79 { 80 81 } 82 } 83 } "Bild" 27: Ett mer avancerat programexempel i boken! Boken innehåller ett mer avancerat programexempel, som faktiskt gör något, och som visar en del fler finesser både i C# och i Visual Studio. Provkör programexemplet på samma sätt som visas i boken! Man kan ladda ner exempelkoden från http://www.paulyao.com/cfbook/code, men gör inte det utan mata in den själv genom at följa instruktionerna i boken. Den mesta koden genereras av Designern, så det är inte så mycket att skriva. Saker att lära sig av exemplet: Klassen System.Windows.Forms.Form Kontroller (engelska: controls) = widgets, dvs knappar mm Att lägga till nya formulär till en applikation Att lägga till nya klasser till en applikation Händelser (engelska: events) Händelsehanterare (engelska: event handlers) Namnrymder (engelska: name spaces) Läsanvisningar Den här lektionen motsvaras av kapitel 2, What is a .NET Compact Framework Program?, i kursboken. Det är själva provkörandet av Visual Studio som är det viktiga här (se avsnittet Programmeringsövningar nedan), men det finns också några frågor som kan användas som instuderingsfrågor: För att kunna köra ett .NET Compact Framework-program på sin handdator, måste man ha .Net Compact Framework-biblioteken installerade. Varför måste man det? Hur kan den installationen vara gjord? Vad är klassen System.Windows.Forms.Form? I Visual Studio finns Designern (the Designer). Vad används den till? Designern har två visningslägen eller vyer: designvyn (Design View) och kodvyn (Code View). Vad är det för något, och hur hänger de ihop? Boken rekommenderar att man låser storleken på fönstret som ens applikation visar (rutan "The Locked Property" på sidan 83). Varför det? Boken rekommenderar att man testar sin applikation på samma sorts handdator som ens användare senare ska använda. Varför det? Om jag testar min skrivbordsapplikation på en Dell-PC så kan man ju köra den lika bra på en PC från Hewlett-Packard eller Compaq? Vad är en namnrymd ("namespace")? Hur skiljer sig en namnrymd från en klass? Designern genererar klasser som bland annat innehåller metoden InitializeComponent. Vad innehåller den metoden? När körs den? Designern genererar även metoden Main. Vad innehåller den metoden? När körs den? Några av de vanligaste fönsterkomponenterna (eller "kontrollerna") är knappar, textfält och etiketter. I Java finns klasserna JButton, JTextField och JLabel för detta. Vad heter motsvarande klasser i C#? Hur placerar C#-programmet ut fönsterkomponenterna i fönstret? Annorlunda uttryckt: Hur bestämmer det vilka som ska vara med, och var de ska vara? Vad innebär händelsestyrd programmering ("event-driven programming")? Vad är en händelse ("event")? Vad är en händelsehanterare ("event handler")? Precis som i Java har även C# statiska metoder och variabler. De markeras med nyckelordet static? Vad innnebär det att en metod är statisk? Vad innnebär det att en variabel är statisk? Om du vill skriva svar på instuderingsfrågorna, räcker det för de flesta frågorna med en eller några få meningar. Programmeringsövningar Skaffa Visual Studio 2005 Professional Edition från universitetet, genom MSDN Academic Alliance. Installera. Gå sen igenom kapitlet och provkör exemplen. Man kan ladda ner exempelkoden från http://www.paulyao.com/cfbook/code, men gör inte det utan mata in den själv genom at följa instruktionerna i boken. Tillägg: Pocket PC 2003 i Visual Studio .NET 2003 Man kan ladda ner ett tillägg till Visual Studio .NET 2003 som gör att man kan skapa program för Pocket PC 2003, som är en nyare version av Pocket PC. Läs mer här! (Behövs inte för Visual Studio 2005.) Föregående lektion | Lektionslista | Nästa lektion Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 22 augusti 2008
Klicka på startknappen i den lilla mediaspelaren ovan för att lyssna på lektionen. (Man kan behöva vänta en stund på att ljudfilen laddas ner.) Om mediaspelaren inte syns, eller om det inte fungerar av något annat skäl, kan man klicka här för att ladda ner mp3-filen (ca 22 minuter, ca 10 megabyte). Beroende på hur webbläsaren är konfigurerad kan det kräva ett separat mp3-spelarprogram av något slag.
Det finns nyare versioner av Visual Studio .NET, och den senaste heter Visual Studio 2008 (alltså utan ".NET" i namnet). Boken använder Visual Studio .NET 2003 i sina exempel, och det gör även många av exemplen i den här webbkursen, men vi ska använda Visual Studio 2008. Dessutom kan man, om man redan har den installerad, använda Visual Studio 2005. Det mesta fungerar likadant i alla tre versionerna, men ibland kan fönstren se lite olika ut.
Läs mer om Visual Studio 2008 här!
En integrerad programmeringsomgivning med kompilator, editor, debugger, designverktyg mm.
Så här ser webbplatsen ut:
I den här kursen använder vi numera Visual Studio 2008. Ignorera därför vad som står här, och läs mer här om hur man laddar ner, installerar och använder Visual Studio 2008.
Det är möjligt att inledningen av installationen kan variera lite, beroende på hur man gör när man laddar ner Visual Studio (eller får den på annat sätt). Själv fick jag i alla fall en ISO-image som jag brände en cd-skiva av, och på den cd-skivan fanns en självuppackande Zip-fil (560 megabyte), som sen gick att packa upp till en katalog på hårddisken (1248 megabyte), och som sen drog igång installationen.
(Jag hade inga dokumentationsskivor, så jag gjorde inte steg 3, och steg 4 fungerade inte på min dator.)
En lösning är att använda Start Without Debugging. Man kan också installera något som heter "Microsoft Loopback adapter", och som är en "låtsas-nätverksanslutning".
(Samma dialogbox på sidan 85 i kursboken visar flera olika emulatorer.)
1 using System; 2 using System.Drawing; 3 using System.Collections; 4 using System.Windows.Forms; 5 using System.Data; 6 7 namespace SmartDeviceApplication1 8 { 9 /// 10 /// Summary description for Form1. 11 /// 12 public class Form1 : System.Windows.Forms.Form 13 { 14 private System.Windows.Forms.Button button1; 15 private System.Windows.Forms.Button button2; 16 private System.Windows.Forms.MainMenu mainMenu1; 17 18 public Form1() 19 { 20 // 21 // Required for Windows Form Designer support 22 // 23 InitializeComponent(); 24 25 // 26 // TODO: Add any constructor code after InitializeComponent call 27 // 28 } 29 /// 30 /// Clean up any resources being used. 31 /// 32 protected override void Dispose( bool disposing ) 33 { 34 base.Dispose( disposing ); 35 } 36 #region Windows Form Designer generated code 37 /// 38 /// Required method for Designer support - do not modify 39 /// the contents of this method with the code editor. 40 /// 41 private void InitializeComponent() 42 { 43 this.mainMenu1 = new System.Windows.Forms.MainMenu(); 44 this.button1 = new System.Windows.Forms.Button(); 45 this.button2 = new System.Windows.Forms.Button(); 46 // 47 // button1 48 // 49 this.button1.Location = new System.Drawing.Point(120, 80); 50 this.button1.Text = "button1"; 51 // 52 // button2 53 // 54 this.button2.Location = new System.Drawing.Point(88, 120); 55 this.button2.Size = new System.Drawing.Size(96, 48); 56 this.button2.Text = "button2"; 57 // 58 // Form1 59 // 60 this.Controls.Add(this.button2); 61 this.Controls.Add(this.button1); 62 this.Menu = this.mainMenu1; 63 this.Text = "Form1"; 64 this.Load += new System.EventHandler(this.Form1_Load); 65 66 } 67 #endregion 68 69 /// 70 /// The main entry point for the application. 71 /// 72 73 static void Main() 74 { 75 Application.Run(new Form1()); 76 } 77 78 private void Form1_Load(object sender, System.EventArgs e) 79 { 80 81 } 82 } 83 }
Man kan ladda ner exempelkoden från http://www.paulyao.com/cfbook/code, men gör inte det utan mata in den själv genom at följa instruktionerna i boken. Den mesta koden genereras av Designern, så det är inte så mycket att skriva.
Saker att lära sig av exemplet:
Det är själva provkörandet av Visual Studio som är det viktiga här (se avsnittet Programmeringsövningar nedan), men det finns också några frågor som kan användas som instuderingsfrågor:
Föregående lektion | Lektionslista | Nästa lektion