Clean Room Design

Je viens de tomber sur la technique du "clean room design" (voir ici pour une bonne définition).

C’est légal par "construction" mais ça me laisse un gout amère. Ca a du être inventé par un cabinet de lobbying qui plaide aussi pour l’ouverture du "passage du Nord-Ouest". Pas de chance pour les ours (de toute façon, ils n’ont pas d’âme).

Advertisements

Automatic generation of data-binding interfaces for data context objects

XamlBinding Custom Tool, un CustomTools pour VS 2005 (et peut-être VS 2008 un jour?) qui génère une implémentation de INotifyPropertyChange, ISupportInitialize, ISupportInitializeNotification et IChangeTracking.

Le tool utilise la réflexion pour trouver les différentes propriétées et génère le code de la partial class dans un fichier .XamlBinding.cs.

Un exemple de CustomTool assez sophistiqué qui dispose de son installeur.

http://www.clariusconsulting.net/blogs/kzu/archive/2007/09/27/33235.aspx

Documentation XML en C#

Voici un guide qui fait le point sur les différents tags qu’il est possible de placer dans des commentaires XML en C#.

Les tags standards mais aussi ceux spécifiques à NDoc et SandCastle sont clairement expliqués.

http://www.dynicity.com/products/xmldoccomments.aspx

Juste pour mémoire, NDoc est mort avant de fournir un support complet de .Net 2.0. On pourra comprendre pourquoi ici. On voit là les limites du développement libre quand il ne n’est pas adossé à de puissants parrains. On peut trouver ici une ultime version de la 2.0 Alpha conservée précieusement par un "adepte".

Dans la série “on apprend tous les jours quelque chose” : l’operateur C# ??

En C# l’operateur ?? teste si l’operande de gauche est non null, dans ce cas, il retourne cet operande et sinon retourne l’opérande de droite.

Donc en pseudo code:

return a ?? b;
equivaut à:
if(a!=null)
{
    return a;
}
else
{
    return b;
}

avec l’avantage que a ?? b est une expression qui peut s’utiliser directement alors que la version avec if/else doit être encapsulée dans une fonction.

http://weblogs.asp.net/scottgu/archive/2007/09/20/the-new-c-null-coalescing-operator-and-using-it-with-linq.aspx

Sources de .Net bientôt dispo

Une grande nouveauté qu’on n’attendait plus: le source de certaines librairies .Net 3.5 sera bientôt disponible (ainsi que les pdbs pour pouvoir débugger).
 
En quittant les MFCs pour le CLR, j’avais largement le sentiment de passer à la vitesse supérieure mais avec un manque. En effet, c’est grâce aux sources largement commentés des MFCs que j’ai pu avoir une idée assez précise de leur fonctionnement. J’ai pu faire des choses qu’il aurait été assez difficile de faire sans.
 
En passant à .Net, j’ai perdu cette possibilité. Dans un premier temps, je me suis rabattu sur Anakrinos. C’était un programme capricieux et les résultats étaient loins d’être garantis. Avec Reflector j’ai pu enfin répondre à certaines questions que je posais concernant la BCL. Mais rien ne remplace la possibilité de débugger directement en source. Voila une restriction qui va bientôt être levée, comme on peut le voir ici.
 
Un petit regret.
Les sources des MFCs étaient simples à comprendre au début et se sont complexifiés avec les versions (sans parler de la réunion MFC/ATL). J’ai pu rentrer dans les sources du début parce qu’ils étaient simples. J’ai ensuite progressé avec chaque version. Pour .Net, en commençant avec la version 3.5, j’ai peur d’être perdu alors que les sources de la version 1.0/1.1 auraient été plus simples. Le passage aux subtilités de la 2.0 m’aurait été facilité.
 
Remarque: Je viens de découvrir que Reflector est obfusqué depuis 2004. Ajoutez à cela que Reflector "impose" d’upgrader de temps en temps et vous pouvez vous demander s’il n’y a pas un léger risque. Wait and see. 
 
Suite: Maintenant que les sources sont disponibles, voici un lien expliquant comment les utiliser: Configuring Visual Studio to Debug .NET Framework Source Code.

Comment générer un “bon” password en .Net

Voici un Q/A un peu ancien sur DotNet Matters dans MSDN Magazine de Stephen Toub sur la génération de byte[] aléatoires.
 
Voici l’entrée de son blog:
ainsi que le pointeur direct sur MSDN mag:
 
Ca répond à une question que je m’étais posée sur la génération d’une clé aléatoire pour servir de password lors de la création de volume Cryptainer (une pass phrase peut faire jusqu’à 100 caractères).