Interesting reads – .NET Garbage Collector

Some interesting articles about .NET Garbage Collector (i.e. GC): General documentation Fundamentals of Garbage Collection: https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals Garbage Collection Design: https://github.com/dotnet/coreclr/blob/master/Documentation/botr/garbage-collection.md Everything you need to know about .NET memory by Ben Emmett: https://vimeo.com/113632451 Learning How Garbage Collectors Work: http://mattwarren.org/2016/02/04/learning-how-garbage-collectors-work-part-1/ How does the GC work and what are the sizes of the different generations?: https://blogs.msdn.microsoft.com/tess/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations/ .NET Memory…

Continuer à lire

Interesting reads – Async/Await

Some interesting articles regarding async/await in .NET: General explanations Getting Started with Async / Await: https://blog.xamarin.com/getting-started-with-async-await/ Async and Await: http://blog.stephencleary.com/2012/02/async-and-await.html Eliding Async and Await: http://blog.stephencleary.com/2016/12/eliding-async-await.html Async/Await – Best Practices in Asynchronous Programming: https://msdn.microsoft.com/en-us/magazine/jj991977.aspx Performance matters Understanding & Profiling C# Async Await Tasks: https://stackify.com/csharp-async-await-task-performance/ Dissecting the async methods in C#: https://blogs.msdn.microsoft.com/seteplia/2017/11/30/dissecting-the-async-methods-in-c/ Extending the async methods in…

Continuer à lire

Eviter d’effectuer des “casts” avec Bridge et Visiteur

Lorsqu’on intervient sur du code existant, la plupart du temps, on manipule des objets sous leur forme générique, par l’intermédiaire de classes abstraites ou d’interfaces. Dans la majorité des cas, les membres exposés par la classe abstraite ou par l’interface suffisent à utiliser l’objet en faisant appel à des fonctions ou des données membres. Toutefois,…

Continuer à lire

Signature des assemblies par nom fort en 5 min

La signature des assemblies par nom fort est un procédé permettant d’assurer l’unicité d’une assembly. Il ne faut pas confondre la signature par nom fort (i.e. Strong Name signing) avec la signature électronique (i.e. digital signature). Si on souhaite sécuriser le contenu d’une assembly et assurer qu’elle n’a pas été altérée de façon malveillante il…

Continuer à lire

Comprendre .NET Standard en 5 min

Les technologies Microsoft adressent un grand nombre de plateformes différentes allant de systèmes d’exploitation comme Windows à des appareils mobiles comme les tablettes. D’autres parts, depuis quelques années, Satya Nadella a impulsé une “ouverture” des technologies Microsoft vers d’autres plateformes que Windows. Cette ouverture a encore augmenté le nombre de plateformes sur lesquelles des technologies…

Continuer à lire

Routed commands en WPF en 2 min

Les commandes routées WPF (i.e. routed commands) correspondent à une fonctionnalité permettant de découpler les éléments qui déclenchent une commande des éléments cibles sur lesquels les commandes vont s’exécuter. D’autres part les commandes routées permettent d’associer facilement des actions provenant de raccourcis clavier, d’actions réalisées avec la souris etc… Enfin elles peuvent activer ou désactiver…

Continuer à lire

“Mocker” une dépendance statique

Les objets statiques sont souvent utilisés pour mutualiser rapidement l’implémentation d’un comportement ou plus rarement pour partager des instances d’objets entre plusieurs classes. L’utilisation d’objets statiques peut être un choix d’architecture maitrisé. Dans ce cas, on a la possibilité de modifier l’implémentation des objets statiques ainsi que des objets consommateurs. Dans d’autres cas, l’utilisation d’objets…

Continuer à lire

Quelques outils pour résoudre les problèmes de chargement d’assemblies

Dans le cas de BadImageFormatException, parmi toutes les dépendances d’un exécutable, il est parfois difficile d’identifier l’assembly dont l’architecture cible est incompatible avec celle de l’exécutable. Certains outils permettent d’avoir plus d’informations sur les dépendances d’une assembly et de visualiser le détail de chargement des assemblies pour un exécutable donné. Sommaire Fusion DependancyWalker Identifier les…

Continuer à lire

Routed events en WPF en 3 min

Les évènements routés WPF (i.e. routed events) sont très similaires aux évènements classiques en .NET: Ils sont définis dans un objet, Peuvent être déclenchés par un objet différent du premier et Conduisent à l’exécution d’une callback ou plusieurs callbacks définies dans une 3e série d’objets. La grande différence entre les évènements routés WPF et les…

Continuer à lire

Arbre logique et arbre visuel WPF en 2 min

En WPF, les éléments visuels sont organisés hiérarchiquement avec une structure en arbre: des éléments sont ajoutés au contenu d’autres éléments formant des nœuds dans un arbre d’objets. Le developpeur implémente les relations entre les objets formant ainsi un arbre logique (i.e. logical tree). Lorsque les objets sont dessinés puis affichés au runtime, les relations…

Continuer à lire