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

Tips C# 7

Am intalnit situatia in care am fost nevoit sa generez campuri a caror valoare sa fie unica. Solutia mi-a fost oferita de structura Guid care va genera valori cu marimea de 128 biti. Probabilitatea ca acestea sa fie unice pentru toate calculatoarele, in toate retele, este foarte mare.

using System;

namespace GUIDExample
{
    class Program
    {
        static void Main(string[] args)
        {
            //F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4

            Console.WriteLine(Guid.NewGuid());
        }
    }
}

GUID este folosit in lucrul cu bazele de date si de sistemele de operare pentru a identifica in mod unic inregistrari, respectiv diferite componente.
Valorile GUID sunt generate printr-o combinatie formata din informatiile hardware si timp.

Open/Closed Principle

De cele mai multe ori, sarcinile pe care le primeste un programator constau in adaugarea de functionalitati pornind de la un cod existent. Modificare vechiului cod poate afecta functionarea corecta a programului. OCP propune ca structura aplicatie sa fie realizata in asa fel incat noile functionalitati sa fie adaugate cu minimul de modificari aduse vechiului cod.

Continue reading

Tips C# 5

Sa presupunem ca este nevoie de generarea unor numere random. Putem folosi clasa Random.

            Random r = new Random();
            Int32 number = r.Next();

Aceasta abordare este corecta pentru cazurile in care nu ne intereseaza securitatea. Altfel, se poate folosi din spatiul de nume System.Security.Cryptography clasa RNGCryptoServiceProvider:

            var crypto = new RNGCryptoServiceProvider();
            
            var bytes = new byte[4];
            //umple vectorul cu valori criptate
            crypto.GetBytes(bytes);
            //converteste un vector de bytes la int 
            Int32 number = BitConverter.ToInt32(bytes,0);

RNGCryptoServiceProvider foloseste in generare informatii ale procesorului, ale sistemului de operare, timp.
Atat Random cat si RNGCrptoServiceProvider sunt pseudorandom.

Tips C# 4

De multe ori a trebuit sa aleg intre tipurile numerelor in virgula mobila: float, double, decimal. Ma decideam asupra tipului dupa ce raspundeam la urmatoarele intrebari: Cat de mare pot fi numerele? Ce precizie mi-ar trebui si ar fi suficienta? Cerintele legate de memorie ale aplicatiei imi pot influenta alegerea? Numerele vin dintr-o baza de date in care marimea lor este specificata?
Pentru calculele financiare decimal este cel potrivit, intrucat precizia acestuia evita erorile care pot surveni la rotunjire.

Tip Marime Precizie
float 4 bytes 7
double 8 bytes 15-16
decimal 16 bytes 28-29

Windows Phone (X)

10 motive pentru Windows PhoneHit.Ro prezinta 10 motive pentru a folosi un Windows Phone: interfata unitara si simpla, integrare Microsoft Live, integrare Microsoft Office Mobile, Zune…
“How to get work done using only a Windows Phone” – Un video amuzant despre cum te poti descurca in multe situatii doar cu Windows Phone.
Mango, Tango – Zvonuri despre Tango, urmatorul update major pe care il va suferi Windows Phone.
Instagram – Windows Phone dezvolta Instagram, o aplicatie intens utilizata de clientii iOS.

Tips C# 3 – Windows 7 features

Exista un Code Pack pentru Microsoft .Net Framework la adresa http://code.msdn.microsoft.com/WindowsAPICodePack cu ajutorul caruia se pot accesa functionalitati specifice sistemului de operare Windows 7: API-uri pentru power management, Direct X, application recovery, Libraries, Aero Glass.

Exemplu:

                private bool monitorOn = PowerManager.IsMonitorOn;
                private int bateryLife = PowerManager.BatteryLifePercent;
                private bool isUpsPresent = PowerManager.IsUpsPresent;