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

Archive for the ‘Programare’ 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…)

Operatia de Debug in Visual Studio

Thursday, August 26th, 2010

Una dintre cele mai importante facilitati pe care o ofera Visual Studio este cea de Debug. Ce inseamna asta? A face Debug inseamna a analiza ce se intampla, la executie, in interiorul aplicatiei asupra careia facem Debug. Aceasta operatie are ca scop gasirea si repararea erorilor (bugs) dintr-o aplicatie. Aceasta operatie se face cu ajutorul uor instrumente speciale, numite debuggers. Cu ajutorul acestor unelte se poate vedea la runtime ce se intampla in timpul executiei aplicatiei asupra careia se face operatia de debug. In cazul Visual Studio uneltele sunt incluse in pachetul Visual Studio, userul netrebuind sa instaleze separat nimic.

Exista, din cate stiu eu, doua metode de a porni o operatie de debug: prin apasarea butonului Start Debuging din toolbar-ul Standard (sau comanda din meniul Debug) sau, metoda a doua, prin atasarea de o aplicatie care ruleaza, folosind comanda Attach to Process, din acelasi meniu. Vezi in imaginile urmatoare cele doua optiuni.
(more…)

Chestionare programare

Monday, August 23rd, 2010

Mi-am propus sa fac o seire de chestionare, de genul celor pe care le completam de cate ori mergem pe la interviuri pentru un loc de munca nou. Pentru asta am nevoie de ajutorul vostru, celor care citesc acest blog.
Cum poti tu contribui: trimite, printr-un comentariu, o intrebare din domeniul .Net (c#, asp.net, sql, webservices, .Net CE, javascript, etc). Comentariile nu vor fi publicate, insa intrebarile vor fi adunate, cand vor fi suficiente pentru a forma cateva chestionare. Respectivele chestionare vor fi publicate.
Ce ar trebui sa contina o intrebare care sa fie inclusa in chestionare:

  • Intrebarea propriuzisa.
  • 4 variante de raspuns, dintre care zero sau mai multe corecte
  • Raspunsul corect, cu explicatia necesara – de ce e raspunsul respectiv corect.
  • numele si email-ul celui care trimite comentariu – bineinteles, nu vor fi publicate
  • Daca vrei sa postezi intr-un singur comentariu mai multe intrebari, poti folosi 3-4 enter-uri intre intrebari, a.i. sa fie usor de inteles unde se termina o intrebare si unde incepe alta.

Multumesc tuturor participantilor.

Visual Studio – Introducere

Wednesday, August 18th, 2010

Dupa ce am scris o serie destul de lunga de tutoriale de c# mi-am dat seama, dupa diversele intrebari pe care le primesc la comentarii, ca am uitat un lucru destul de important: nu am scris un articol introductiv referitor la uneltele de lucru. Acum intentionez sa corectez asta. Deci, articolul de astazi este despre uneltele de lucru pentru de care cineva are nevoie pentru a se apuca de invatat c# si pentru a realiza primele proiecte.
Cel mai important instrument este Visual Studio Express (in cazul seriei de tutoriale publicate aici Visual C# 2010 Express). Practic in afara de acest program nu mai e necesar nimic altceva, insa e recomandat un editor de imagini, pentru a putea face mici prelucrari de imagini, eu folosesc Paint.Net, un editor de texte, eu folosesc notepad sau EditPlus si un browser – cel mai bun prieten pe care il poti intreba despre o problema de programare e google!
(more…)

Argumente in linia de comanda.

Tuesday, August 17th, 2010

Marea majoritate a programelor pe care le folosim accepta la executie o serie de parametri. Asta arata cam asa: numeProgram.exe [lista de parametri], unde [lista de parametri] reprezinta o lista optionala de parametri transmisi programului numeProgram.exe.
Cei care au folosit sisteme de operare MS_DOS sau unix/linux stiu cel mai bine cat de util este ca un program sa poata fi executat cu o lista de parametri si sa nu trebuiasca sa interactionam cu el pe parcursul executiei.

Sa presupunem ca am un program care muta fisierele din directorul Images in directorul Pictures. Cand programul intalneste un fisier care este ReadOnly sau Hidden ar trebui sa ceara confirmarea (asa cum Windows Explorer face) pentru a muta fisierul. Sunt cazuri cand vreau sa nu fiu intrebat. Vreau sa pot sa ii spun de la inceput: nu ma intreba, daca exista ceva ReadOnly, muta fara sa intrebi, sau treci mai departe. Cum as vrea sa pot scrie asta? Cam asa: muta.exe -ro yes -h no. Tradus, asta ar suna cam asa: daca fisierul care trebuyie mutat e ReadOnly (-ro), muta-l. Daca fisierul e hidden (-h), nu il muta.

Un exemplu mai bun decat cel prezentat anterior este batranul notepad.exe. Cand vrem sa vedem un fisier text, pornim Windows Explorer, gasim fisierul care ne intereseaza si cu un simplu dublu click fisierul respectiv este deschis in notepad. Cum functioneaza asta? Simplu: windowsul executa, in fundal, o comanda de genul: notepad.exe fullPath_fisier.txt, unde fullPath_fisier.txt este parametru trimis aplicatiei notepad.

O alta operatie pe care o putem face prin intermediul programului notepad e sa tiparim un fisier text. Pentru a face asta, ne folosim de un alt argument: notepad.exe /P fullPath_fisier.txt.

(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…)

Simple Factory

Sunday, August 1st, 2010

Ce e Simple Factory? E o metoda de a crea in functie de anumit parametri instante ale unor clase diferite. Acest pattern (sau sablon – cum este tradus termenul in limba romana) este plementat intr-o clasa separata, a carui rol este acela de a lua decizia returnarii unei instante sau alteia in functie de anumiti parametrii.
Sa presupunem ca avem o clasa de baza, numita Person, abstracta. Din aceasta clasa derivam doua clase concrete: Child si Adult.
Clasa Person arata cam asa:
(more…)

Un meniu intr-o aplicatie consola

Wednesday, July 28th, 2010

Aplicatiile in modul consola sunt din ce in ce mai putine, insa inca exista si de multe ori sunt preferate celor care ruleaza in fereatra windows (winform). Exemple de aplicatii care sunt inca in format consola ar fi: ping, ipconfig etc; acestea sunt, in general, aplicatii de configurare a unui serviciu sau de obtinere a anumitor informatii de la system. Insa pot fi gasite si alte exemple.

In articolul de astazi voi exemplifica crearea unei aplicatii de tip consola, care va afisa un meniu (text) si in functie de alegerea facuta de user, va executa o anumita operatie.
(more…)

Blocuri repetitive in c#

Monday, July 26th, 2010

In limbajul c# exista mai multe posibilitati de a executa in mod repetat anumite blocuri de cod (ciclu). Aceste posibilitati sunt:

  • for
  • while
  • do…while
  • foreach

Aceste instructiuni sunt specifice multor limbaje si intelegerea folosiri lor ar trebui sa fie usoara pentru oriceine le-a mai folosit cu alte limbaje.

Le voi analiza pe rand, exemplificand utilizarea lor.

Cel mai simplu ciclu este ciclul for. Sintaxa generala este:

        for (int i = 0; i <= 5; i++)
        {
            //executa ceva de 5 ori
        }

(more…)