Tutorial .Net CE  |  Tutorial c# (.net)
chestionare programare

Archive for the ‘Windows Mobile’ Category

SFM – proiect final partea 2-a

Monday, September 6th, 2010

     In articolul trecut din seria Compact Framework, am inceput crearea unei aplicatii.

sfmProj

     Continuam constructia acesteia, astfel:

     Pentru forma principala MainWindow vom adauga urmatoarele controale din Toolbox:

  • un Panel pnlTop in care vom adauga:
  • un CheckBox chYears care va contine anii pentru inregistrari.
  • un CheckBox chMonths care va contine lunile in care au avut loc inregistarile.
  • un LinkLabel llClearFilter care va avea scopul eliminarii filtrarii date de unul din controalele Combobox.

Pentru controlul container pnlTop vom fixa proprietatea Dock – Top.

(more…)

SFM – proiect final partea 1

Tuesday, August 10th, 2010

     In acest articol vom incepe partea a treia din aceasta serie dedicata Windows Mobile si Compact Framework, la sfarsitul careia vom avea o aplicatie 100% functionala scrisa in C#. Aceasta parte va fi o insumare a celor prezentate pana in acest moment.

     Dezvoltarea unei aplicatii mobile este procesul prin care o aplicatie este construita pentru dispozitivele mobile (PDA, EDA, telefoane mobile). O astfel de aplicatie poate fi preinstalata in timpul fabricatiei sau cumparata/descarcata de la magazinele online.

I. Consideratii generale

     Foarte multi oameni au probleme in a-si contabiliza bugetul de cheltuieli personale, ajungand la finalul lunii in situatia de a nu sti pe ce au cheltuit salariul sau alte venituri. Plecand de la acest considerent doresc sa scriu o aplicatie care sa ii ajute pe oamenii care vor sa aiba o evidenta a cheltuielilor personale. Momentul cel mai bun de a nota o cheltuiala este in momentul in care ea este facuta, am decis ca aceasta aplicatie trebuie sa rueze pe un dispozitiv mobil – dispozitiv la care utilizatorul are in permananeta acces. Am ales, in acest caz, sa dezvolt o aplicatie care ruleaza pe telefoanele mobile cu sistem de operare Microsoft Windows Mobile 6.5.

II. Hardware necesar

     Toate telefoanele a caror care ruleaza Windows Mobile 6.5.

(la sfarsitul articolului, exista pentru download o lista cu cele mai populare telefoane cu Windows Mobile 6.5)

(more…)

Contact, Task, Appointments (PIM)

Tuesday, August 3rd, 2010

    Cu ajutorul Pocket Outlook Object Model, se poate accesa datele de Calendar, Contacts, si Tasks. Aceste date sunt cunoscutate si sub numele de date PIM (Personal Information Management). Toate elementele de tip PIM sunt derivate din clasa PimItem, iar fiecare are o proprietate unica, ItemId.

    Toate proprietatile claselor derivate din PimItem au evenimente corespunzatoare. De exemplu, pentru proprietatea Body, exista evenimentul de BodyChanged.

    Observatie: Aceste evenimente reflecta doar schimbarile din codul scris de noi, pentru aplicatia noastra. Daca utilizatorul modifica elemente din aplicatiile PIM standard sau dintr-o aplicatie third-party, datele in aplicatia noastra nu se vor actualiza automat.

    In cadrul aplicatiei pe care o voi da ca exemplu in acest articol, presupunem ca ne dorim ca ea sa contina un meniu care sa fie format din: Sarcini, Contacte, Intalniri. Crearea unui meniu este foarte usor de realizat si am aratat-o in cadrul articolului Controale CE.

    Asa cum ne-am obisnuit, va trebui sa adaugam referinta in proiect si in cod.

        using Microsoft.WindowsMobile.PocketOutlook

    Este nevoie sa deschidem o sesiune Outlook cu ajutorul clasei OutlookSession.

        OutlookSession session = null;

    O vom instantia la evenimentul de Form_Load.

(more…)

SMS in .Net CE

Thursday, July 22nd, 2010

     Un serviciu de baza folosit de telefoanele mobile (efectuarea apelurilor –articolul ) este trimiterea de SMS – uri (Short Message Service). Acesta permite utilizatorului sa trimita mesaje cu un numar de maxim 160 de caractere de pe un dispozitiv mobil catre altul.

     API-urile managed Windows Mobile includ functionalitati diverse si multe pentru dezvoltatori. Cea mai complexa si cea mai utilizata librarie este Microsoft.WindowsMobile.PocketOutlook, care este foarte usor de folosit. Ea este folosita in lucrul cu Calendar, Contacts, Tasks si SMS.

     Clasa SmsMessage, localizata spatiul de nume Microsoft.Mobile.PocketOutlook, permite trimiterea de sms-uri catre o adresa sau mai multe. Clasa SmsMessage deriva din clasa Message si se aseamana cu clasa EmailMessage, dar cu mai putine proprietati.

     Pentru a putea sa simulam trimiterea sms-urilor cu un emulator, va trebui ca acesta sa fie conectat la retea, lucru pe care l-am realizat in articol API-ul telefonului: apel.

(more…)

API-ul telefonului: apel

Monday, July 12th, 2010

     .Net Compact Framework suporta Platform Invoke (P/Invoke). Acest serviciu permite codului managed sa apeleze functii unmanaged care se afla ind dll-uri. P/Invoke exista si in .Net Framework, bineinteles, cu diferente fata de cel din .Net Compact Framework.

     Subiectul acestui articol nu il reprezinta prezentarea P/Invoke, asa ca voi rezuma modul de folosire.

     In primul rand, la design time, trebuie sa specificam ce functie unmanaged vrem sa apelam. Pentru ca in acest articol, vom crea o aplicatie care sa apeleze un numar de telefon, vom scrie urmatorul cod:

        [DllImport("phone.dll")]
        private static extern IntPtr PhoneMakeCall(ref PhoneMakeCallInfo ppmci);

     Urmeaza mai tarziu, apelul metodei si tratarea eventualelor exceptii.

(more…)

Threading in .Net CE

Thursday, July 8th, 2010

     Sistemele de operare moderne suporta multitasking (capacitatea de a incarca mai multe programe in memorie simultan si sa imparta timpul CPU  intre programe). De exemplu, momentul cand in sistemul de operare Windows am deschis mai multe programe (Winamp, Internet Explorer, Messenger).

     Sistemele de operare moderne suporta multithreading. (capacitatea de a suporta mai multe unitati de executie intr-un singur proces, fiecare thread(fir de executie) avand “bucati” din timpul CPU).

     Am ales sa scriu un articol despre threading pentru ca orice aplicatie, cat de cat serioasa, nu poate rula pe un singur thread (nevoia de a rula alte operatii in acelasi timp in background este mare). Problema intervine atunci cand este nevoie ca ele sa imparta aceleasi resurse.

(more…)

WCF – partea 2-a

Monday, June 28th, 2010

     Ce mi-am propus in acest articol? As vrea sa creez un serviciu WCF pe care sa il accesez de pe un dispozitiv Windows Mobile. Serviciul nu o sa fie de o complexitate mare, ci mai degraba trivial: vom introduce numele unui utilizator, iar serviciul “ii va raspunde” cu un “salut”. Sa incepem:

     Vom avea nevoie ca solutia noastra din Visual Studio sa contina 3 proiecte:

1. WCF Library – proiect care va contine efectiv implementarea serviciului WCF.

WCFProject

2. Console Application – proiect care va gazdui serviciul WCF. Va fi de tip “self-hosted”  (nu gazduit in IIS).  (IIS,  mai scriu)

ConsoleHostService

3. Windows Mobile – proiect care constituie clientul de pe care vom apela minunatul nostru serviciu. :)

(more…)

WCF – prima parte

Thursday, June 17th, 2010

     Comunicarea cu resursele serverului este un aspect foarte important pentru o aplicatie a unui dispozitiv mobil care este inclus intr-o arhitectura distribuita. Exista mai multe optiuni disponibile dezvoltatorului care doreste o comunicare eficienta intre server si dispozitiv:

Web Services mesaje SOAP transmise prin HTTP

Sockets – protocol particular TCP/IP,

Direct Database Access – conexiune “live” la SQL Server prin TCP/IP sau HTTP care foloseste ADO.NET pentru schimbul de date

Syncronization – sincronizarea intre SQL Server si clientul SQL Server CE prin RDA, Merge Replication sau ADO.Net Sync Services

(more…)

Conectarea la retea

Thursday, June 10th, 2010

     Dispozitivele moderne Windows Mobile includ o varietate de optiuni pentru conectarea la retea , diferenta majora dintre ele fiind data de viteza.

     Pentru inceput, vom stabili conexiunea implicita de internet a dispozitivului mobil pe cea folosita de sistemul desktop.

     Accesam din Control Panel, Windows Mobile Device Center.

Windows Mobile Device Center

     In Connection Settings, stabilim setarile astfel:

Connection Settings

(more…)

LinqToDataSet

Sunday, May 30th, 2010

    Continuam seria articolelor dedicate Linq in .Net Compact Framework cu Linq to DataSet.

LinqOnCF

Pentru a putea beneficia de facilitatile Linq in C# cand vom aplica Linq asupra DataSet-urilor, este nevoie de referinte catre urmatoarele assembly-uri:

System.Core.dll – defineste nucleul LINQ API. Este obligatoriu pentru a putea folosi LINQ.

System.Data.DataSetExtensions.dll – O extensie care integreaza tipurile ADO.NET cu Linq (Linq to DataSet).

     De cele mai multe ori, perspectiva dezvoltatorului in realizarea unei aplicatii  care lucreaza cu datele este urmatoarea:

(more…)