Programmering II C#, ID1304
Vilka är lärarna? Michel Kaireus Mats Skoglund Föreläsare/Kursansvarig michel@kth.se 08-161697 Mats Skoglund Föreläsare matte@dsv.su.se
Vad omfattar kursen? Huvudsakligen tre block Arv, Avancerad C# syntax Flertrådad programmering Fönsterprogrammering Men även nätverkskommunikation Socket
Dagens agenda Idag kommer vi prata om: KursPM De tre övergripande blocken Arv Flertrådad programmering Fönsterprogrammering .Net Framework
Genomgång av kursPM
Kursen i korthet
Arv Ärva funktionalitet från en annan klass Fördelar: Nackdelar Ökar återanvändning av kod Bidrar ofta till bättre design Nackdelar Ökar komplexiteten
Flertrådad programmering En tråd är en exekveringspunkt som utför programinstruktionerna rad för rad De flesta program har bara en tråd De flesta spel har flera trådar (vilket inte betyder att alla flertrådade program är spel)
Flertrådad programmering- Demonstration
Fönsterprogrammering De grundläggande kontrollerna (knappar, textrutor, kryssrutor etc) Händelsehantering Avancerade kontroller (dialogrutor, tabeller, menyer etc)
Fönsterprogrammering- Demonstration
.NET Framework
.NET Framework Operating System Common Language Runtime Base Class Library ADO .NET and XML ASP .NET Web Forms Web Services ASP.NET Mobile Controls Windows Forms Common Language Specification VB C++ C# J# … Visual Studio .NET
.NET Framework .NET Framework är i grund och botten ett klassbibliotek med ca 4000 klasser, uppbyggt hierarkiskt och uppdelat i s.k. namnrymder eller namespaces. På toppen av .NET Framework levereras 4 programmeringsspråk VB.NET C++ C# J# … VB.NET som är en ny version av VB med bl.a. stöd för arv, multitrådning och felhantering med Try-Catch C++ har stöd för managed extensions för att använda klasserna i .NET Framework C# är det första komponentorient-erade språket i C/C++ familjen med stöd för properties, metoder, events och attribut J# ett java språk som stödjer JDK och är framför allt ett sätt för de utvecklare som använt tidigare java produkt VJ++ att migrera sina applikationer och förstås för javautvecklare att prova på .NET Framework Det finns fler språk att använda till .NET Framework. Närmare bestämt mer än 20 st
Common Language Specification .NET Framework Programspråksleverantörer stödjer .NET. Grunden för detta ligger i något som heter Common Language Specifikation. Detta är en specifikation som framförallt beskriver det s.k. gemensamma typsystemet som används i .NET Framework. VB C++ C# J# … Common Language Specification
Common Language Specification .NET Framework En annan central del i ramverket är stödet för WebServices, som alltså är helt integrerat. WebForms är till för att bygga webbapplikationer och WinForms för att bygga Windowsapplikationer. WebForms tillsammans med WebServices kallar vi gemensamt för ASP.NET. VB C++ C# J# … Common Language Specification ASP .NET Web Forms Web Services (ASP.NET ) Windows Forms
Common Language Specification .NET Framework Operationer mot olika typer av datakällor är numera XML baserade och ADO har blivit ersatt av en ny modell som heter ADO.NET. VB C++ C# J# … Common Language Specification ASP .NET Web Forms Web Services (ASP.NET) Windows Forms ADO .NET and XML
Common Language Specification .NET Framework Basklasserna innehåller just basfunktionalitet såsom t.ex. filhantering, kollektioner, trådhantering, reflection osv. VB C++ C# J# … Common Language Specification ASP .NET Web Forms Web Services ASP.NET Mobile Controls Windows Forms ADO .NET and XML Base Class Library
Base Class Library Basklasserna består av ett antal generella klasser: IO för olika typer av filhantering Threading för att skapa multitrådade applikationer Globalization för att skapa applikationer som är lands och språkoberoende Reflection ger möjligheten att i runtime inspektera en assembly för att kunna dra nytta av de typer som finns i den
Common Language Specification .NET Framework Grundstenen i ramverket utgörs av Common Language Runtime. Den ansvarar i huvudsak för laddning och exekvering av så kallade assemblies. VB C++ C# J# … Common Language Specification ASP .NET Web Forms Web Services ASP.NET Mobile Controls Windows Forms ADO .NET and XML Base Class Library Common Language Runtime
Common Language Runtime, CLR CLR'n har också inbyggd minnehantering eller så kallad garbage collection för att hantera frigörning av minnesresurser. Detta innebär att utvecklare kan allokera objekt utan att behöva fundera så mycket på att frigöra dom. CLR’n är även ansvarig bland annat för säkerhets- och trådhantering, laddning av nödvändiga klassbibliotek och debuging.
.NET Magic När källkoden är färdigt skriven så kompileras den med lämpligt kompilator till ett mellanformat som kallas Microsoft Intermidiate Language (MSIL) MSIL är processor-oberoende uppsättning av instruktioner som kan på ett effektivt sätt konverteras till native kod / maskin kod. MSIL kod är språk oberoende kod.
.NET Magic Class Loader länkar ihop MSIL-koderna. CLR laddar sedan IL-kod med hjälp av Class Loader och överlämna det till JIT-kompilatorn för att transformera det till native kod. Men precis innan Class Loader överlämna koden till JIT-kompilatorn laddas de nödvändiga klassbibliotek. CLR ansvarar för exekvering av koden