BindingRedirect en 5 min

Le “BindingRedirect” permet d’indiquer comment charger des assemblies à la compilation d’un exécutable. L’intérêt de cette technique est: de pouvoir choisir une version différente de celle utilisée à la compilation, de faire ces indications sans avoir à recompiler l’application. Chargement des assemblies Par défaut, les dépendances sont chargées par Fusion exécuté par le compilateur JIT…

Continuer à lire

Quelques patterns pour attendre la fin de l’exécution d’une tâche*

*: Le terme “Tâche” est utilisé içi au sens large et non au sens de la Task Parallel Library (TPL). Lorsque plusieurs threads sont utilisés et qu’il est nécessaire de synchroniser certains de ces threads, on peut être amener à implémenter des mécanismes d’attente. Ces mécanismes permettent ainsi: D’éviter un accès concurrent à une section…

Continuer à lire

Utilisation des fichiers XSD en 5 min

Les fichiers XML Schema Definition (XSD) permettent de décrire la structure d’un document XML. Le grand intérêt de ce fichier est de servir à la validation du document XML en définisant des règles. Génération automatique d’un fichier XSD à partir d’un fichier XML Avec Xsd.exe Cet outil fait partie du SDK Visual Studio. Il est…

Continuer à lire

Les "dumps" mémoire en 5 min

Lorsqu’un bug se produit en production, il n’est pas toujours facile de reproduire le problème sur une plateforme de dévelopement pour le corriger ensuite. Sur certaines applications, il peut être récurrent d’échouer à trouver le scénario exact qui permet de révéler le bug. Si ce problème se présente régulièrement, une possibilité est de générer un…

Continuer à lire

"ConcurrentDictionary" en 5 min

A partir du framework 4.0, la structure de données "ConcurrentDictionary" permet de stocker des objets rangés par clé tout en autorisant des accès provenant de "threads" multiples sans se préoccuper des problématiques de synchronisation. Son utilisation est très similaire à celle du dictionaire mise à part qu’elle possède des méthodes pour guider l’implémentation et s’affranchir…

Continuer à lire

Design pattern: Service Locator

Objectif: Proposer une implémentation simple de l’inversion de contrôle Justification Lorsqu’un objet doit utiliser une compétence implémentée dans un autre objet, la première approche est d’instancier cet autre objet et de l’utiliser au moyen de ces membres publiques. Par exemple, si on prends la classe suivante: public class ConsumingObject { private ConsumedObject consumedObject; public ConsumingClass()…

Continuer à lire

Fichier de configuration en .NET en 10 min

Fichier de configuration simple Ajouter un fichier à un projet avec Visual Studio Clique droit sur le projet => Add => New item => Application configuration file. Le fichier rajouté sera appelé "App.config". Lorsqu’il sera copié dans le répertoire de l’exécutable, il sera nommé: "[nom de l’exécutable].exe.config". Le contenu du fichier sera: <?xml version=”1.0″ encoding=”utf-8″…

Continuer à lire

Injection de dépendances en utilisant Unity en 10 min

L’intérêt de l’injection de dépendances est de permettre: – une meilleure maintenabilité, – de mettre en place plus facilement une méthode TDD (Test Driven Development), – d’être plus flexible (plus facile de s’adapter à une nouvelle implémentation), – d’être plus extensible (ajout plus facile de nouvelles fonctionnalités), – supporter le "late binding" (inclure des modules…

Continuer à lire