Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Despre fire de executie in c# (threads)

   De multe ori, aplicatiile au nevoie de mult timp pentru a rezolva o sarcina (descarcarea unui fisier, printare, generarea unui raport etc), timp in care programul nu poate raspunde unei alte actiuni a utilizatorului. Pentru a face ca o aplicatie sa indeplineasca o sarcina si sa poata primi si altele in acelasi timp, sunt folosite firele de executie multiple (multiple threads).

   Intr-un program liniar se executa o singura linie de cod, se asteapta pentru completare si apoi se continua cu urmatoarea linie de cod.  Programul nu poate raspunde actiunii unui utilizator in acest timp si chiar in cazul mai multor procesoare, va fi folosit doar unul singur, limitand performanta, datorita programarii single-thread.

Continue reading

Cateva reguli de scriere

Nu stiu daca sunt cel mai in masura sa scriu despre asa ceva, dat fiind ca nu am o indelungata experienta in lumea scrisului, insa “o sa ma risc”! Tot ce scriu e rezultatul experientei proprii, cateva reguli pe care le-am dedus sau invatat citind ceea ce altii au scris. Nu, nu o sa scriu despre ce trebuie scris, ci despre cum trebuie scris, chestii tehnice, de genul: daca tot e titlu, fa-l mai mare decat restul textului, ca sa stim si noi ca e titlu; sau: daca tot te apuci de scris ceva, macar scrie corect. Aminteste-ti ca gramatica nu e optionala la scris.

Scrisul de tip messenger este numai pentru messenger. Acolo trebuie sa comunici rapid, de obicei cu prieteni, cu care iti permiti sa spui/scrii orice si oricum, si, de obicei, ei fac la fel. Insa in momentul in care ai iesit in public, incearca sa nu zgarii retina cititorului prin compozitii de text si imagine greu digerabile. Si prin greu digerabile ma refer atat la cunoscutul stil messengerist care combina tot soiul de icons cu text si combinatii de prescurtari etc cat si la texte scrise negliject, cu gramatica sau semne de punctuatie lipsa.

Continue reading

Aplicatie utila: paint.Net

Mai devreme sau mai tarziu toti ajungem sa avem nevoie de un editor de imagini.
Fie ca vrem sa corectam o fotografie, fie ca vrem sa o redimensionam, sa "taiem"
un detaliu pe care nu il vrem acolo, cand trimitem o poza pe email etc. Nu pot sa
imi imaginez pe cineva nu are nevoie de un astfel de program.

Ce face acum omu' care are nevoie de un editor ocazional? Ori cauta pe net tot
soiul de demo/shareware si, de obicei gaseste tot soiul de chestii ciudate, ori
cauta un program consacrat si il imprumuta – un crack gaseste tot omu pentru ultima
versiune de photoshop. Insa aici apar alte probleme: nu stii daca nu cumva acest
crack nu este de fapt un virus/troian care ajuta pe o parte, si pe alta parte iti
trimite toata lista de contacte la un grup de baieti buni.

Continue reading

c# events | evenimente in c# (.Net)

    In stransa legatura cu facilitatea delegate a limbajului C#, prezentam evenimentele, events.

   Cele mai multe evenimente sunt actiuni ale utilizatorilor (click, schimbarea unei liste, introducere de text, sfarsitul unui calcul etc).

    In .Net, obiectele cunoscute ca si event senders, declanseaza evenimente atunci cand au loc actiuni. Event receivers se ocupa de aceste evenimente prin rularea unei metode numite event handler. Pentru ca event sender-ul nu stie care metoda se va ocupa de eveniment, trebuie creat un delegate care sa se comporte ca un pointer catre event handler.

    Pentru a produce un eveniment, trebuie sa parcurgem 3 pasi : sa declaram un delegate, sa construim un obiect eveniment, sa apelam delegatul intr-o metoda.

Continue reading

Afisarea unui XML intr-un GridView

Un document xml poate stoca date de tip tabela. Ce inteleg prin date de tip tabela? Daca am tabelul de mai jos:

id projName verion asignedTo lastUpdateDate
175077 UI Web john smith 1/4/2009 9:57:15 PM
175078 Windows UI olga bruno 2/4/2009 10:07:20 AM
175079 2.0 CommeonDLL Adrian Blumer 15/2/2009 07:12:21 AM
175070 1.0 WS Joseph Lee 6/1/2010 11:11:10 AM

pot salva acest tabel ca document xml asa:
Continue reading

despre delegates – Introducere

    In programare, exista situatii cand trebuie sa executam o anumita actiune, dar fara sa stim in avans ce metoda sau ce obiect vom apela pentru executarea actiunii. Exemplu : la apasare, un buton va sti ca trebuie sa notifice un anumit obiect , dar nu stie exact care. Solutia simpla consta in conectarea butonului la un delegat si apoi acesta sa indice catre o anumita metoda.

    Un delegat este un obiect care poate referi o metoda. Chiar daca nu este un obiect, o metoda ocupa un loc in memorie, iar aici, la aceasta adresa, va fi transmis controlul la invocarea metodei.

Continue reading

Despre xml si database

In ultima perioada, in anumite proiecte, nu foarte mari, e drept, am inceput sa inlocuiesc bazele de date cu fisiere xml.

Pana nu de mult in orice aplicatie in care trebuia sa salvez date (ma refer la aplicatii web) foloseam sql. Am remarcat ca sqlserver e o aplicatie destul de “greoaie” si ca pentru a salva data simple, de genul date despre useri, taskuri ale userilor, preferinte, setari ale aplicatiei etc, date care nu necesita, sa zicem, mai mult de 300k total spatiu in fisier xml, e mai simplu sa lucrez cu fisiere xml.

Continue reading

Interfete in .Net

    Scriam in articolul despre mostenire (inheritance) ca mostenirea unei clase foarte importanta in C#. Dar, un altfel de mostenire, cea a interfetelor, are o putere mult mai mare.

    O interfata defineste  un set de metode, proprietati, evenimente, indexatori care vor fi implementate de o clasa. Atentie, interfetele NU implementeaza, ele sunt abstracte si doar isi descriu  membrii. Interfata precizeaza CE trebuie facut, dar NU si CUM trebuie facut.

   Sintactic, interfetele sunt asematoare cu clasele abstract, cu mentiunea ca nici o metoda nu poate avea corp. Se foloseste cuvantul cheie interface.

Continue reading

programare orietntata pe obiecte: mostenirea

    Mostenirea este unul din principiile fundamentale ale programarii. Cum functioneaza? Definim o clasa generala, clasa de baza, ce are caracteristici comune pentru o multime de elemente asemanatoare. Apoi, clasa de baza va fi mostenita de alte clase, clase derivate, care isi vor adauga pe langa caracteristicile mostenite, numai caracteristici care le identifica in mod unic. O clasa derivata este o versiune specializata a unei clase de baza. O clasa derivata va mosteni toate variabilele, metodele, proprietatile si indexarile definite in clasa de baza, la care va adauga elemente proprii, unice.

    Este nevoie de conceptul de mostenire pentru a evita repetitia definirii unor clase care au in comun mai multe caracteristici. In programare, mostenirea se refera la clasificare, la o relatie intre clase.

Continue reading