Archives pour la catégorie dotnet-it

Hastable vs Dictionary

Lors du coaching d’un développeur débutant, une colle m’a été posée : « En .Net 2.0, faut-il utiliser Hashtable ou Dictionary<object, object> ?
J’ai donc décidé de me faire une idée précise des différences, dont voici les conclusions.

Utilisation:

string key = "test";
int valeur = 123;
Hashtable hTable = new Hashtable();
hTable.Add(key, valeur);
int maValeur = (int)hTable[key];
Dictionary<string, int> dictionnaire = new Dictionary<string, int>();
dictionnaire.Add(key, valeur);
int maValeur = dictionnaire[key];

A 1ère vue j’étais tenté de répondre qu’utiliser le dictionnaire générique permet de s’affranchir des problèmes de cast et assure un typage fort des paires clé/valeur.
La question qui est venue ensuite est : toute ses opérations liées à l’utilisation des génériques rendent-elles l’utilisation moins performante…
Voici la réponse :

Conclusion:
L’utilisation de la collection générique Dictionary<TKey, TValue> est plus performante et garantie un typage fort, donc un code plus stable. Il n’y a donc plus de questions à se poser

NB : Lors de la migration de code 1.1 vers 2.0, attention au changement de comportement l’indexeur . Sur une hashtable, si une clé n’existe pas elle renvoit null, sur un Dictionary celà lance une exception

Tags:

Pourquoi un nouveau blog sur .NET

Voilà encore un Blog sur .NET ! Oui mais pourquoi une telle démarche? Parti d’un constat simple qu’il manquait à nouveau de retours d’expériences sur la mise en place d’architectures en techno .NET nous avons choisit de lancer ce Blog. Que trouve-t-on alors dans ces billets ?

Nous travaillons depuis plusieurs années sur les architectures logicielles et nous avons constatés qu’après l’engouement autour des débuts de .NET avec les nombreux sites, les articles, les livres blanc.. plus rien de vraiment nouveau était apparu sur la communauté française. C’est pourquoi nous avons pris le parti de monter ce site pour faire le retour de nos expériences et des échanges que nous avons sur la mise en place d’architecture .NET.

La plate-forme possède aujourd’hui le recule et la maturité nécessaire pour une telle démarche.

Vous trouverez dans les billets de ce site des articles, des réflections et des news autour des frameworks .NET (CLR, WPF, WF, WCF, LINQ, ASP.NET MVC, Nhibernate, F#…) et des Architectures / Patterns (SOA, DTO….). Ces articles proposerons de manières pragmatiques nos retours et nous souhaitons vous les faire partager ainsi qu’échanger sur tous les sujets abordés.

A très bientôt,

Tags: