[.NET] Les collections immuables sont maintenant disponibles en version finale !

Microsoft vient d’annoncer que les collections immuables (Immutable Collections) sont maintenant disponible en version finale via la galerie NuGet.

Pour rappel, les collections immuables permettent de créer des listes qui ne change jamais cela permet de :

  • Partager une collection en privé et publique en s’assurant qu’elle ne sera jamais modifié.
  • Permet de faire de la programmation fonctionnelle (c’est un univers où tout est immuable…)
  • Et cerise sur le gâteau, elles permettent d’être utilisées facilement dans les scénario multi-thread. Leur design fait qu’elles sont automatiquement thread-safe…

Au passage, cette bibliothèque n’est pas intégré dans le .NET Framework, afin que l’équipe de développement de Microsoft puisse nous produire des releases régulières… Et ainsi d’éviter de baver ou d’attendre comme un gamin à noël, les prochaines versions du .NET Framework.

Dans les semaines qui vont venir j’écrirai quelques articles consacrés à ces collections afin de vous expliquer leur utilité. En attendant, ne restez pas immuable, et téléchargez cette bibliothèque depuis la galerie NuGet.

[.NET] Attention à la redéfinition de la méthode GetHashCode()

Aujourd’hui, un développeur d’un client m’a signaler un « bug » dans la classe Dictionary<TKey, TValue> du .NET Framework. Après avoir étudié son problème pendant plus de 2 heures, (et je ne vous parle pas de mes cheveux !), le bug du Dictionary<TKey, TValue> venait du fait qu’il avait redéfini la méthode GetHashCode() sur un objet qui se basait sur des champs non-immuables !

(suite…)

[.NET] CCI Explorer une autre alternative open source de .NET Reflector

Je viens de livrer sur CodePlex la première version de mon projet CCI Explorer. Ce projet est une alternative open source de .NET Reflector qui est maintenant devenu payant.

Comme son nom l’indique, CCI Explorer se base sur le projet open source “Common Compiler Infrastructure” de Microsoft qui permet de décompiler et d’analyser du code depuis des assemblys .NET. Ce projet est utilisé par FxCop/Code Analysis, Sand Castle et Code Contracts.

Bien évidemment le projet en est à sa première version alpha, il manque donc plein de fonctionnalités, mais vous pouvez soumettre vos retours directement sur le site du projet.

Voici le lien pour télécharger la version 0.1.0.

[Moi] De nouveau nommé MVP C# !

Pour la 4ème fois je viens d’être nominé MVP C# ! Cette récompense est le résultat de mon implication dans la communauté Microsoft (Blog, Forums MSDN et dernièrement la publication de mon livre sur C#).

Logo MVP

Cette année je continuerai mon implication dans les forums MSDN et j’essayerai de publier beaucoup plus d’article sur mon blog !

Posted in C#. Tags: , . Un commentaire »

[Linq] Enumerable vs Queryable

Beaucoup de personnes ne savent pas réellement la différence entre l’utilisation des classes statiques Enumerable et Queryable. Elles offrent les mêmes méthodes d’extensions, elles produisent le même résultat, mais pourtant en interne elle se comportement très différemment.

(suite…)

Posted in C#, Linq. Tags: , . 7 Comments »

[C#] Equivalent de la fonction GetSetting() de VB .NET

Les VB-iens sont réputés pour être les plus fainéants dans la plateforme .NET. En effet, ils disposent d’une fonction GetSetting() permettant de récupérer des paramètres d’une application dans la base de registre.

(suite…)

Posted in C#. Tags: , . Pas de commentaire »

[C#] Clonez typé !

Lorsque l’on clone un objet sous .NET qui implémente l’interface ICloneable, on doit toujours « caster » le résultat de la méthode « Clone ».

(suite…)

Posted in C#. Tags: , , . Pas de commentaire »