Microsoft a creat prima data .Net Framework pentru sistemele desktop si pentru sistemele server, apoi a construit pe baza acestuia un framework mai mic, orientat pe client, .Net Compact Framework (.net CF are ca marime 8% din .Net Framework).
Cele doua platforme au foarte multe in comun, incepand de la tipurile de date, spatii de nume, clase, proprietati, metode, evenimente. Aceasta arhitectura comuna permite si folosirea codului intre cele doua tipuri de programare: desktop si dispozitive mobile.
Avantaje ale .Net Compact Framework
Formele pentru date: contine un set bogat de controale pentru dezvoltarea interfetei utilizator: etichete, textbox, meniuri.
Sirurile de caractere: Lucrul cu acest tip de date este foarte usor, mai ales datorita claselor String, StringBuilder si a expresiilor regulate.
Datele: Pentru citirea si scrierea datelor relationale exista clasele din ADO.NET. De asemenea, se poate realiza si accesarea bazelor de date locale (SQL MOBILE) sau remote (SQL 2005/2008).
XML: lucrul cu eXtensible Markup Language, analiza si serializarea datelor in acest format.
Web Services – conectarea la un Serviciu Web prin doua mecanisme diferite: Windows Communication Foundation si conectarea prin interfata .Net Web Service, traditionala.
Dezavantaje ale .Net Compact Framework
Principala problema cu care se confrunta dezvoltatorii experimentati de .Net este aceea ca pe aceasta platforma nu gasesc metodele si proprietatile pe care le aplicau in platforma mare, in diferite situatii.
Nu exista suport server-side code in .Net Compact Framework. Nu putem folosi .Net CF pentru Web Server ASP.NET.
Nu putem scrie cod managed intr-un process nativ. (acest lucru ar fi facut posibila dezvoltarea driver-elor pentru dispozitiv).
Managementul memoriei
.Net CF utilizeaza memoria disponibila cu grija, neaccesand RAM-ul atunci cand nu ruleaza o aplicatie. De asemenea, se elibereaza RAM atunci cand se inchide un program.
.Net Compact Framework foloseste sistemul de operare Windows CE pentru functionalitatile nucleu si cateva particularitati pentru fiecare dispozitiv in parte. Au fost reconstruite pentru a rula mai eficient pe aceasta platforma tipuri si assembly-uri pentru Windows Forms, grafice, desen, Web Services.
Common Language Runtime a fost de asemenea reconstruit, pentru a permite resurselor sa ruleze pe memorie limita si pe energia bateriei.
Cum sa instalam .Net Compact Framework
.Net Compact Framework se instaleaza automat la instalarea Visual Studio.
Unele dispozitive contin .Net Compact Framework instalat in ROM -ReadOnlyMemory- (exceptie versiunea 3.5), dar platforma se poate instala si in RAM (Random Access Memory).
Daca .Net Compact Framework este instalat pe sistem, il putem instala pe un dispoztiv, in doua modsuri:
I. La deployment-ul unui proiect din Visual Studio:
Click dreapta in Solution Explorer, pe proiect, Properties.
In sectiunea Devices, bifam optiunea Deploy the latest version of the .Net Compact Framework (including Service Packs).
II. Prin Windows Explorer:
Desktop-ul trebuie sa aiba instalat Mobile Device Center sau ActiveSync. Navigam in directorul: \Program Files\Microsoft.NET\SDK\CompactFramework\v2.0 or v3.5\WindowsCE. Selectam fisierul Cab potrivit pentru platforma dispozitivului si tipul de arhitectura CPU si il copiem in memoria aparatului. Click-ul pe fisierul Cab copiat in dispozitiv, va apela procesul Wceload.exe pentru instalare.
In cazul in care nu este instalat, din orice motiv, .Net Compact Framework pe sistemul pe care lucram, Microsoft pune la dispozitie o pagina web de unde se poate descarca.
Vom crea un exemplu care va afisa ora exacta.
Pornim Visual Studio si selectam o aplicatie de tip SmartDevice, de tip Standard, cu baza .Net Compact Framework 3.5.
Vom avea nevoie de un control Timer si un Label.
Vom apela functia GetSystemTime in cod nativ. Exista si functia complementara SetSystemTime, cu ajutorul careia se poate seta timpul.
Functia GetSystemTime va returna ora de tipul UTC (Coordonated Universal Time – Greenwich Mean Time). Pentru a afisa ora noastra locala, vom adauga/scadea diferenta de ore .
Declaram mai intai faptul ca vrem sa folosim o metoda nativa din Windows Embedded CE.
[DllImport("coredll.dll")] private static extern void GetSystemTime(ref SYSTEMTIME lpSystemTime);
In constructorul formei, vom seta proprietile controlului Timer, timer1:
Construim o structura, pe care o vom transmite ca parametru functiei GetSystemTime:
//structura care contine variable ale timpului private struct TimpSistem { public ushort an; public ushort luna; public ushort ziSaptamana; public ushort zi; public ushort ora; public ushort minute; public ushort secunde; public ushort millliSecunde; }
Metoda care va fi apelata la o fiecare secunda a timer-ului, la evenimentul de Tick, este:
//metoda ce va afisa textul etichetei la evenimentul de Tick al timer-ului private void AfiseazaTimp(object sender, EventArgs e) { var timpSistem = new TimpSistem(); GetSystemTime(ref timpSistem); //adun cu o unitate ora timpSistem.ora += 1; lblTimp.Text = "Data exacta : " + timpSistem.an + " / " + timpSistem.luna + " / " + timpSistem.zi + "\n" +"OraExacta: " +timpSistem.ora + " : " + timpSistem.minute+" : "+timpSistem.secunde+" : "+timpSistem.millliSecunde; }
Intreaga solutie poate fi descarcata aici.
.Net Compact Framework foloseste aceeasi documentatie referitoare la clase, cu .Net Framework. Ea poate fi consultata pe siteul Microsoft.
Pagina web dedicat acestei platformei, este msdn.
Dupa cum s-a putut observa si din codul folosit mai sus, experienta in dezvoltarea Windows Mobile pe baza platformei .Net CF, nu este foarte diferita de cea cu care suntem invatati, a .Net Framework-ului.
In urmatorul articol, vom discuta despre controale Windows Forms disponibile in .Net Compact Framework.
Pingback/Trackback
Tweets that mention Despre Compact Framework | by zeltera -- Topsy.com