PDA-applikationer med .NET: Lektion 2

Idag: .NET och .NET Compact Framework.

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 16 minuter, ca 7 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: Kompilering

Kommer ni ihåg grundkursen om programmering?

Kompilering

Bild 2: Den gamla vanliga sortens programmering

Varje datortyp, och varje operativsystem, har sitt eget körbara format och sin egen kompilator. Det behövs till exempel en särskild kompilator för Windows och en annan kompilator för MacOS X. Även hur källkoden får se ut skiljer sig en del, särskilt om man vill använda operativsystemanrop eller grafik.

Flera olika versioner av källkoden, och flera olika körbara program. (Eller så utvecklar man bara för Windows på x86 och inget annat.)

Den gamla vanliga sortens programmering

Bild 3: Java från Sun Microsystems

Ett språk (Java) kompileras till kod, bytekod, för en "virtuell maskin" (JVM, Java Virtual Machine). Den virtuella maskinen finns för många olika operativsystem och många olika datorer.

En enda version av källkoden, och ett enda körbart program. (Operativsystem och datortyp spelar inte längre så stor roll.)

En bild som visar idén med Java

Bild 4: .NET från Microsoft

Många språk (bland annat C#) kompileras till kod, Intermediate Language, för en "virtuell maskin" (JVM, Java Virtual Machine). Den virtuella maskinen finns för Windows.

En enda version av källkoden, och ett enda körbart program. (Och ett enda operativsystem, nämligen Windows.)

Fast det är inte riktigt sant: Microsoft har gjort "virtuella .NET-maskiner" även till Windows CE på olika typer av handdatorer. Andra arbetar med att utveckla .NET-maskiner för annat än Windows.

En bild som visar idén med .NET

Bild 5: .NET Compact Framework - en delmängd av .NET

.NET Framework ("den virtuella maskinen") är ganska stor, och får inte plats på smådatorer. .NET Compact Framework är en mindre version av vanliga skrivbords-.NET.

Den här bilden känner vi igen från lektion 1. Vi har gjort en enkel tillämpning i .NET Compact Framework, med några knappar och textfält, och kör den på en handdator med Pocket PC.

En tillämpning körd på en handdator

Bild 6: Samma tillämpning körd i skrivbords-.NET

.NET Compact Framework är en delmängd av vanliga skrivbords-.NET. En del klasser, och en del finesser i klasserna, från skrivbords-.NET saknas i .NET Compact Framework. Allt i .NET Compact Framework finns med i skrivbords-.NET. Därför kan en tillämpning, som utvecklats och kompilerats för .NET Compact Framework, även köras i vanliga skrivbords-.NET! (Men inte tvärtom.) Här i Windows XP, men det funkar även i Windows 2000.

Samma tillämpning körd i skrivbords-.NET

Bild 7: Mer om .NET Compact Framework

Kursboken uppdelad i hanterbara delar

Läsanvisningar

Den här lektionen motsvaras av kapitel 1, .NET Compact Framework Architecture, i kursboken. Läs kapitlet översiktligt som bakgrund.

Några frågor som kan användas som instuderingsfrågor:

  1. Vad är .NET?
  2. Vad är de viktigaste likheterna och skillnaderna mellan .NET (från Microsoft) och Java (från Sun)?
  3. Vad är Windows CE?
  4. Vad är Pocket PC?
  5. Hur förhåller sig Windows CE till Pocket PC?
  6. Vad är .NET Compact Framework?
  7. Hur skiljer sig .NET Compact Framework från skrivbordsvarianten av .NET Framework?
  8. Vad är Visual Studio .NET 2003?
  9. Vad är C#?
  10. Vad är lättast för en programmerare: att börja med .NET Compact Framework och sen fortsätta med skrivbordsvarianten av .NET Framework, eller att börja med skrivbordsvarianten och sen fortsätta med .NET Compact Framework? Varför?
  11. Vad är "managed code"?
  12. Vad är "unmanaged code" (eller "native code")?
  13. Vad är en emulator?
  14. Vad är "Windows Forms", "Web Forms" och "Web Services"?
  15. Vad är en "assembly" i .NET? Vad motsvaras det av i Java?
  16. Vad är "DLL hell", och hur löser man det problemet i .NET?
Om du vill skriva svar på instuderingsfrågorna, räcker det för de flesta frågorna med en eller några få meningar.

Ett tillägg hösten 2006 (inte med på ljudspåret):

Det finns en ny version av Visual Studio .NET, nämligen Visual Studio 2005 (alltså utan ".NET" i namnet). Boken använder Visual Studio .NET 2003 i sina exempel, och det gör även den här webbkursen, men om man vill (och törs) kan man i stället använda Visual Studio 2005. Jag har inte provkört alla exempel, men det verkar fungera ganska lika.

Programmeringsövningar

Det finns inga programmeringsövningar till den här lektionen.

Föregående lektion | Lektionslista | Nästa lektion


Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), 22 augusti 2006