C# 2013-01-15 1 Winstrand Development
C# med ASP.NET Innehåll Sidhänvisningar ser ut såhär Och hänvisar till Murach 2010 s. 23 Winstrand Development för EC Utbildning 2013-01-15 2
.NET Framework 3 Winstrand Development
.NET Framework.NET Framework.NET är ett framework, ramverk, skapat av Micosoft. Ett ramverk kan sammanfattas som en uppsättning med komponenter som kan återanvändas på liknande sätt fast tillhöra olika domäner, såsom på webben eller skrivbordet. Winstrand Development för EC Utbildning 2013-01-15 4
.NET Framework.NET Languages Visual C# Visual Basic Other languages.net Framework.NET Class Library ADO.NET ASP.NET Windows Forms Other classes Intermediate Language Common Language Runtime Memory Management Common Type System Operating System and Hardware Windows XP Windows Server 2008 Other OS Winstrand Development för EC Utbildning 2013-01-15 5
.NET Framework En.NET-applikations skapelse En.NET-applikation skrivs i ett.net-språk såsom C# eller Visual Basic. Till skillnad från att skriva ett program i t.ex. C/C++ där koden kompileras till maskinkod direkt kompileras istället.net-koden till Intermediate Language (IL). IL är ett språk som bara.netframework förstår. När det sedan är dags att köra applikationen så görs IL-koden om till fungerande maskinkod för den specificerade arkitekturen. Winstrand Development för EC Utbildning 2013-01-15 6
.NET Framework C# Source code Visual Studio VB Source code Other.NET language C# Compiler VB Compiler Compiler Är del av ett assembly som är en fil i formatet.exe eller.dll Intermediate Language (IL).NET Framework Common Language Runtime Just-in-Time (JIT) Compiler Machine Code Winstrand Development för EC Utbildning 2013-01-15 7
Programmeringsspråket C# 8 Winstrand Development
Språket C# Språket C# C# har en syntax som bygger på språken C och C++. Det kan ses som ett syskonspråk till Java. Kod indelas i block med hjälp av måsvingar { }. En instruktion avslutas med semikolon;. Görs inte detta kommer du att få ett felmeddelande. Hello World Winstrand Development för EC Utbildning 2013-01-15 9
Språket C# Riktlinjer för att skriva kod Att skriva bra kod handlar inte om att kunna göra så kluriga lösningar som möjligt, utan att skriva kod som andra kan förstå. Viktigt att tänka på är: Indentering jämför bilderna nedan. Det är samma program vilken är lättast att förstå? Bra namn på variabler, klasser metoder osv. Namnet bör reflektera dess funktionalitet. VS Winstrand Development för EC Utbildning 2013-01-15 10
Språket C# Kommentarer Är text i koden som ignoreras av kompilatorn. I C# finns det tre olika sorters kommentarer Enradig med // XML-dokumentation /// Flerradig och inline med /* */ Winstrand Development för EC Utbildning 2013-01-15 11
Språket C# Kommentarer En kommentar ska beskriva varför man gör någonting, inte hur. Hur någonting utförs kan man läsa sig till i koden. XML-dokumentation är mycket användbart. Använd alltid när du ska dokumentera klasser och metoder. Winstrand Development för EC Utbildning 2013-01-15 12
Visual Studio 2010 2013-01-15 13 Winstrand Development
Visual Studio 2010 Visual Studio 2010 Vi kommer att jobba med Microsoft Visual Studio 2010 för att utveckla våra C#- och ASP.NET-applikationer. Visual Studio är ett IDE (Integrated Developer Environement) där vi kan skriva kod, kompilera, debugga, publicera webbsidor mm. Vanligtvis har man flera fönster öppna för att få en bra överblick. Winstrand Development för EC Utbildning 2013-01-15 14
Visual Studio 2010 Winstrand Development för EC Utbildning 2013-01-15 15
Visual Studio 2010 Winstrand Development för EC Utbildning 2013-01-15 16
Debugging med Visual Studio 2010 2013-01-15 17 Winstrand Development
Debugging med Visual Studio 2010 Debugging Applikationer kan köras i lägena debug eller release. Vi kommer mestadels jobba i debug-läge. Debug används när applikationen utvecklas då buggar ska hittas och elimineras Extra data och info sparas för att lätt kunna stoppa exekveringen när applikationen körs Release används för att optimera applikationen för en offentlig version till slutanvändaren Extra data från Debug-läget har tagits bort Winstrand Development för EC Utbildning 2013-01-15 18
Debugging med Visual Studio 2010 Ikon Kommando Kortkommando Beskrivning Start Debugging F5 Start Without Debugging Break All Ctrl + F5 Starta eller fortsätt debugexekveringen av applikationen Starta applikationen utan att ha debuggern inkopplad Ctrl + Alt + Break Pausar exekveringen Stop debugging Shift + F5 Stoppar debuggern och avslutar applikationen Restart Ctrl + Shift + F5 Startar om applikationen och debuggern Step Into F11 Kör en instruktion åt gången Step Over F10 Kör en instruktion åt gången men gå ej in i funktionsanrop Breakpoint F9 Lägger till en manuell brytpunkt i applikationen. Winstrand Development för EC Utbildning 2013-01-15 19
Debugging med Visual Studio 2010 Vanliga fel Fel vid Compile time Upptäcks då man skriver koden Felstavningar Använder variabler som ej tilldelats ett värde Fel vid Runtime Upptäcks först när programmet körs Konvertering mellan olika typer Hämtar fel tabell från en databas Varningar Bör behandlas som fel Breakpoints Exekveringen stannar där du lagt till en breakpoint Användbart vid längre körningar på kritiska ställen Winstrand Development för EC Utbildning 2013-01-15 20
Refactoring med Visual Studio 2010 Refactoring Betyder att man gör om koden, vanligast är att byta namn på variabler och klasser. Winstrand Development för EC Utbildning 2013-01-15 21
Console-applikationer 2013-01-15 22 Winstrand Development
Console-applikationer Console-applikationer Innan vi kommer skapa ASP.NET-applikationer för webben kommer vi att lära känna språket C# genom att skriva Console-applikationer. I Consolen läser man in och skriver ut text från via klassen Console. Dess viktigaste metoder är Console.Writeline( Min text ) skriver ut texten inuti anropet på en rad och lägger till radbryte Console.Write( Min text ) skrivs ut utan att lägga till radbryte Console.ReadLine() läser in de tecken som användaren skrivit, fram till enter Console.Clear() Tömmer consolefönstret. Winstrand Development för EC Utbildning 2013-01-15 23
Console-applikationer Att skapa ett nytt projekt Skapa projektet i din arbetsmapp Winstrand Development för EC Utbildning 2013-01-15 24
Console-applikationer Console Exempel Winstrand Development för EC Utbildning 2013-01-15 25
Variabler och datatyper 2013-01-15 26 Winstrand Development
Variabler och datatyper Variabler En applikation arbetar med data som sparas i variabler camelcase ska användas för variabelnamn Exempel: myvariable, counttotal, nameofmydog Ge variabeln ett beskrivande namn Namnet bör reflektera vad värdet representerar, såsom sum, count, personname int a, b, c; är svårare att förstå än int firstvalue, secondvalue, result; En variabel deklareras enligt följande: Datatyp variabel = data; Datatyp data variabel Winstrand Development för EC Utbildning 2013-01-15 27
Variabler och datatyper Vanliga datatyper C#-typ.NET-typ Beskrivning byte Byte Ett 8-bitars heltal (integer) short Int16 Ett 16-bitars heltal (integer) int Int32 Ett 32-bitars heltal (integer) long Int64 Ett 64-bitars heltal (integer) float Single Ett 32-bitars flyttal (single-precision floating-point) double Double Ett 64-bitars flyttal (double-precision floating-point) decimal Decimal Ett 128-bitars flyttal bool Boolean Ett booleskt värde, kan enbart vara true eller false char Char En bokstav (character) i unicode-format string String En textsträng innheållande variabelt antal chars object Object Basklassen för alla.net-typer. Winstrand Development för EC Utbildning 2013-01-15 28
Variabler och datatyper Unsigned Heltalstyperna (int, long etc.) kan representeras som unsigned, dvs. osignerad. Typerna heter ushort, uint och ulong byte och char är alltid unsigned Vanliga tal kan vara både positiva och negativa (+ och -). Ett unsigned-värde däremot kan bara representera positiva värden. I gengäld kan ett unsigned-värde vara dubbelt så stort. Exempelvis är en vanlig int -2,147,483,648 till +2,147,483,647, medan en uint är från 0 till 4,294,967,295 Winstrand Development för EC Utbildning 2013-01-15 29
Variabler och datatyper Datatypssuffix Används för att definiera värdets datatyp och finns för vissa inbyggda datatyper (se tabell nedan). Om inte datatypen definieras kan detta leda till kompileringsfel. Detta fel inträffar i första raden nedan: decimal goldenratio = 1.6180339887; decimal goldenratio1 = 1.6180339887M; Suffix Datatyp Exempel U uint 496U L long 9814072356L F float 2.236068F D double 1.732050807569D M decimal 1.41421356237309504880M Winstrand Development för EC Utbildning 2013-01-15 30
Variabler och datatyper Aritmetiska operatorer Operator Namn Exempel Rangordning 1 ++ Increment. Ökar värdet med 1 x++; //x = x + 1 -- Decrement. Minskar värdet med 1 x--; //x = x 1 Rangordning 2 - Minustecken x = x + (-x); //x = 0 + Plustecken x = +1; //x = 1 Rangordning 3 * Multiplikation x = 15 * 3; //x = 45 / Division x = 15 / 3; //x = 5 % Modulo (rest av division) x = 4 % 3; //x = 1 Rangordning 4 + Addition x = 2 + 3; //x = 5 - Subtraktion x = 10 7; //x = 3 Winstrand Development för EC Utbildning 2013-01-15 31
Variabler och datatyper Aritmetiska operatorer Operatorerna används alltså när man utför aritmetik, såsom addition och subtraktion. Beräkningar utförs i den inbördes rangordningen som visades på föregående slide. Parenteser går före den inbördes rangordningen. int result; // 1. Beräknar 6 * 7 = 42 // 2. Beräknar 5 + 42 = 47 result = 5 + 6 * 7; // result = 47 // 1. Beräknar 5 + 6 = 11 // 2. Beräknar 11 * 7 = 77 result = (5 + 6) * 7; // result = 77 Winstrand Development för EC Utbildning 2013-01-15 32
Variabler och datatyper Räkneexempel Heltalsaritmetik Flyttalsaritmetik Winstrand Development för EC Utbildning 2013-01-15 33
Variabler och datatyper Tilldelningsoperatorer Operator Namn Beskrivning = Tilldelning x = y += Addition x = x + y = Subtraktion x = x y *= Multiplikation x = x * y /= Division x = x / y %= Modulo x = x % y Winstrand Development för EC Utbildning 2013-01-15 34
Variabler och datatyper.net-klassen Math I.NET finns en klass skapad enbart för att göra matematiska beräkningar: Math. Denna klass består enbart av statiska metoder och properties. Exempel på användning: double myvalue; myvalue = Math.Abs(-15.4); //myvalue = 15.4 myvalue = Math.Sqrt(25); //myvalue = 5 myvalue = Math.Pow(3, 4); //myvalue = 81 myvalue = Math.E; //myvalue = 2.718281... myvalue = Math.Cos(Math.PI);//myValue = -1 Winstrand Development för EC Utbildning 2013-01-15 35