10/12/2025
Microsoft .NET Compact Framework er en spændende teknologi, der revolutionerede udviklingen af applikationer til mobile enheder. For dem, der arbejder med ældre PDA'er, Pocket PC'er og andre enheder, der kører på Windows CE-baserede operativsystemer, var .NET Compact Framework et kæmpe spring fremad. Det forenklede processen med at skabe software til disse enheder, hvilket gjorde det mere tilgængeligt for udviklere.

I denne artikel vil vi udforske, hvad .NET Compact Framework er, hvorfor Microsoft skabte det, dets kernekomponenter, og hvordan du kan komme i gang med at udvikle din egen applikation. Vi vil også se på nogle af de begrænsninger, det har sammenlignet med det fulde .NET Framework, og give dig trin-for-trin vejledning til at bygge en simpel app.
- Hvad er .NET Compact Framework?
- Microsofts Motivation bag .NET Compact Framework
- Kernekomponenter i .NET Compact Framework
- Forskelle fra det Fulde .NET Framework
- Tilgængelighed og Udviklingsværktøjer
- Udvikling af en Simpel Applikation (Trin for Trin)
- Den Seneste Version
- Manuel Installation af .NET Compact Framework 3.5
- Konklusion
Hvad er .NET Compact Framework?
.NET Compact Framework er en optimeret version af det velkendte .NET Framework, designet specifikt til enheder med begrænsede ressourcer. Tænk på enheder som PDA'er, tidlige smartphones og andre håndholdte computere, der opererer med operativsystemer som Pocket PC 2000, Pocket PC 2002 og Windows CE.NET. Disse enheder har typisk mindre skærme, begrænset lagerplads og kører på batteristrøm, hvilket stiller særlige krav til softwareudvikling.
Før .NET Compact Framework var udvikling til disse enheder ofte en kompleks proces. Udviklere skulle kæmpe med værktøjskits som Microsofts eMbedded Visual Tools, der krævede dybdegående kendskab til specifikke programmeringsmodeller og enhedens operativsystem API'er. .NET Compact Framework ændrede dette ved at tilbyde en ensartet og forenklet programmeringsmodel, der minder meget om den, der bruges til desktop-applikationer.
Microsofts Motivation bag .NET Compact Framework
Hovedårsagen til Microsofts oprettelse af .NET Compact Framework var at strømline applikationsudvikling til enheder. Ved at tilbyde et managed execution environment (et styret udførelsesmiljø) gjorde .NET Compact Framework det markant lettere at skrive og køre applikationer på disse mobile platforme. Det bragte en del af den produktivitet og de udviklingsværktøjer, som .NET-udviklere var vant til fra desktop-verdenen, til den mobile sfære.
Kernekomponenter i .NET Compact Framework
Centralt i .NET Compact Framework er Common Language Runtime (CLR). CLR'en er hjertet i systemet og er ansvarlig for at køre .NET-applikationer. Den håndterer en række kritiske opgaver:
- Assembly Management: Tager .NET assemblies (pakker af kode) og opretter et applikationsdomæne, hvor de kan køre sikkert.
- Just-In-Time (JIT) Kompilering: Oversætter MSIL (Microsoft Intermediate Language) kode til maskinkode, der kan udføres direkte af enhedens processor.
- Hukommelsesstyring: Implementerer garbage collection, der automatisk frigiver ubrugt hukommelse.
- Klassestyring: Indlæser de nødvendige klasser for applikationen.
- Sikkerhed: Håndhæver sikkerhedsregler for at beskytte enheden og dens data.
CLR'en består af to hoveddele: udførelsesmotoren, der direkte eksekverer koden, og base class libraries (grundlæggende klassebiblioteker). Disse biblioteker indeholder et sæt af genanvendelige klasser, der fungerer som byggesten for applikationer.
Disse komponenter arbejder sammen i et lagdelt system. Applikationer, enhedsbiblioteker og grundlæggende klassebiblioteker opererer i det "managed space". CLR'en leverer udførelsesmiljøet og de grundlæggende tjenester. Udførelsesmotoren og Platform Adaptation Layer (PAL) udgør kernen. PAL'en fungerer som et abstraktionslag mellem udførelsesmotoren og enhedens underliggende operativsystem. Disse to lag er typisk pakket i en enkelt eksekverbar fil kaldet MSCOREE. For hver understøttet processorarkitektur findes der en specifik implementering af MSCOREE. Ændringer til nye platforme kræver primært opdateringer af PAL, da dette lag indeholder de platformspecifikke funktioner.
Forskelle fra det Fulde .NET Framework
Som nævnt er .NET Compact Framework en subset af det fulde .NET Framework. Mange funktioner, der er specifikke for PC-platformen, blev udeladt, da de ikke gav mening for enheder med begrænsede ressourcer. Her er nogle af de mest markante forskelle og udeladelser:
| Funktion | .NET Compact Framework | Fuldt .NET Framework |
|---|---|---|
| Applikationskonfigurationsfiler | Nej | Ja |
| COM Interop | Nej | Ja |
| Remoting | Nej | Ja |
| Udskrivning | Nej | Ja |
| SoapFormatter/BinaryFormatter | Nej | Ja |
| XPath/XSLT | Nej | Ja |
| System.Web Namespace | Nej | Ja |
| Brugergrænseflade | Windows Forms (Device UI) | Windows Forms, WPF, ASP.NET |
| Hukommelseskrav | Lavt | Højt |
| Ydeevne | Optimeret til enheder | Generel ydeevne |
Disse udeladelser var nødvendige for at holde frameworket letvægtigt og effektivt på enheder med begrænset hukommelse og processorkraft. Selvom det betyder færre funktioner, gør det også udviklingen mere fokuseret og ressourceeffektiv.
Tilgængelighed og Udviklingsværktøjer
Udvikling med .NET Compact Framework foregår typisk ved hjælp af Visual Studio. Visual Studio .NET (og senere versioner) inkluderer "Smart Device Extensions", som giver alle de nødvendige værktøjer til at skrive, debugge og deploye applikationer til mobile enheder. Udviklingsprocessen ligner meget den for desktop-applikationer, hvor du bruger de samme udviklingsprincipper, men med adgang til de specifikke Compact Framework-klassebiblioteker.
På nuværende tidspunkt understøtter .NET Compact Framework primært programmeringssprogene Visual Basic .NET og C#. Dette giver udviklere, der allerede er bekendt med disse sprog, en relativt nem overgang til mobil udvikling.
Udvikling af en Simpel Applikation (Trin for Trin)
Lad os nu se på, hvordan man bygger en grundlæggende applikation ved hjælp af .NET Compact Framework. Vi vil lave en simpel app, der viser en besked. Da ikke alle har adgang til en fysisk enhed, vil vi fokusere på at deploye til en emulator, som leveres med Visual Studio.
Trin 1: Opret et Nyt Projekt
Start Visual Studio og vælg at oprette et nyt projekt. Under projekt typerne skal du finde og vælge en Smart Device Extensions projekt. Giv dit projekt et passende navn, f.eks. "MinFørsteMobilApp". Klik derefter på "OK".
Trin 2: Vælg Enhedsprofil
Efter at have angivet projektnavnet, vil Visual Studio præsentere dig for en dialogboks, hvor du skal vælge en enhedsprofil. En enhedsprofil definerer målenheden eller platformen for din applikation. Vælg her f.eks. "Pocket PC" som platform og "Windows Application" som applikationstype. Dette indikerer, at du vil udvikle en Windows-baseret applikation til en Pocket PC. Klik "OK" for at fortsætte.
Trin 3: Design Brugergrænsefladen
Nu er det tid til at designe din applikations brugergrænseflade. Visual Studio vil åbne et designvindue, der ligner det for desktop-applikationer. Du kan trække og slippe kontroller som knapper, tekstbokse og combo-bokse fra værktøjskassen direkte ind på designfladen. Det er vigtigt at bemærke, at designfladens størrelse er foruddefineret baseret på den valgte enhedsprofil. Undgå at ændre formens størrelse, da det kan påvirke, hvordan appen ser ud på den faktiske enhed.
Lad os tilføje følgende elementer:
- En TextBox til brugerinput.
- En ComboBox til at vælge et navn.
- En Button til at udløse en handling.
Vi vil skrive kode til at fylde combo-boksen med nogle navne og vise en besked, når knappen klikkes.
Kodeeksempel (Visual Basic .NET):
Private Sub frmTest_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.Items.Add("Robin Cook") ComboBox1.Items.Add("Wilbur Smith") ComboBox1.Items.Add("J.K. Rowling") End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strResult As String = Nothing strResult = "Du indtastede:" & System.Environment.NewLine strResult = strResult & TextBox1.Text & System.Environment.NewLine & System.Environment.NewLine strResult = strResult & "Du valgte:" & System.Environment.NewLine strResult = strResult & ComboBox1.SelectedItem MessageBox.Show(strResult, "Besked", MessageBoxButtons.OK) End Sub Som du kan se, er koden meget lig den, du ville skrive til en desktop-applikation. Denne ensartethed er en af de store fordele ved .NET Compact Framework.
Trin 4: Kør og Test Applikationen
Når koden er skrevet og designet er færdigt, er det tid til at køre applikationen. Klik på "Start Debugging" (eller lignende) i Visual Studio. Du vil blive præsenteret for en dialogboks, der giver dig mulighed for at vælge, om applikationen skal deployes til en emulator eller en fysisk enhed. Vælg "Emulator".
Visual Studio vil nu starte emulatoren. Da din applikation afhænger af .NET Compact Framework, vil frameworket først blive installeret på emulatoren, hvis det ikke allerede er der. Derefter vil din applikations filer blive kopieret over, og applikationen vil starte.
Du kan finde de nødvendige .NET Compact Framework-filer installeret på din computer, typisk i en sti som: `C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE`. Her finder du undermapper for forskellige Windows CE-versioner og processorer.
Når applikationen kører i emulatoren, kan du interagere med den. Klik på knappen, og du vil se en beskedboks med de indtastede og valgte oplysninger.
Emulator Tilstande og Håndtering
Når du lukker emulatoren, får du typisk to valgmuligheder: "Save emulator state" eller "Turn off emulator".
- Save emulator state: Gemmer den aktuelle tilstand af emulatoren. Dette betyder, at enhver installation (som .NET Compact Framework) forbliver, og fremtidige applikationsdeployments vil være hurtigere, da disse filer ikke skal geninstalleres.
- Turn off emulator: Nulstiller emulatoren til dens oprindelige tilstand. Alle installationer og ændringer vil blive fjernet, hvilket betyder, at .NET Compact Framework og din app skal geninstalleres hver gang.
En vigtig pointe er, at når du lukker din applikation i emulatoren ved at klikke på "X"-ikonet, bliver den ofte kun sendt i baggrunden. Hvis du forsøger at deploye applikationen igen, mens den stadig kører i baggrunden, kan du støde på fejl som "sharing violation". For at undgå dette skal du stoppe applikationen manuelt via "Start -> Settings -> System -> Memory -> Running Programs", hvor du kan vælge din app og klikke på "Stop".
Vigtige Overvejelser ved Mobil Udvikling
Det er afgørende at teste din applikation på en fysisk enhed, før du frigiver den. Emulatoren giver en god simulation, men den kan ikke fuldt ud gengive den faktiske ydeevne og brugeroplevelse på en rigtig enhed. Enheder har begrænset processorkraft og hukommelse sammenlignet med din udviklingscomputer. Desuden mangler emulatoren ofte den taktile feedback og de input-begrænsninger (som primært stylus-baseret input), som en rigtig bruger oplever. Undgå grænseflader med for mange inputfelter, da det kan være besværligt at navigere med en stylus.
Den Seneste Version
Den seneste stabile version af Microsoft .NET Compact Framework er 3.5.7283, udgivet den 18. februar 2008. Denne version var den mest udbredte og blev brugt af omkring 89% af alle installationer. .NET Compact Framework kørte primært på Windows-operativsystemer designet til enheder.
Manuel Installation af .NET Compact Framework 3.5
Nogle brugere har oplevet udfordringer med at finde fungerende CAB-filer til manuel installation af .NET Compact Framework 3.5. Microsoft tilbød primært MSI-filer, der krævede brug af en ekstern computer og opsætning af ActiveSync. At finde direkte, fungerende links til CAB-filer kan være vanskeligt i dag, da teknologien er ældre.
Konklusion
.NET Compact Framework var en banebrydende teknologi, der gjorde det muligt for udviklere at skabe kraftfulde applikationer til enheder med begrænsede ressourcer. Selvom det nu er en ældre teknologi, er principperne og erfaringerne fra udvikling med .NET Compact Framework stadig relevante for at forstå mobiludviklingens historie og de udfordringer, der er forbundet med at optimere software til specifikke platforme.
Hvis du vil læse andre artikler, der ligner .NET Compact Framework: Udvikling til enheder, kan du besøge kategorien Software.
