Implémentation d’un Timer avec TPL

Dans cet article, on cherche à proposer une implémentation d’un Timer en utilisant TPL (i.e. Task Parallel Library). Il existe une classe qui permet d’effectuer un traitement de façon périodique: System.Threading.Timer. Cette classe n’est pas très moderne puisqu’elle existe depuis les premières versions du Framework. Elle permet d’effectuer correctement un traitement périodique toutefois elle souffre…

Continuer à lire

Performance Monitor en 10 min

Performance Monitor (appelé aussi perfmon) est un outil de monitoring et d’alerte présent sur les plateformes Windows. Il permet de facilement observer des métriques concernant un processus spécifique ou les caractéristiques d’une machine. La plupart de temps, les développeurs oublient d’utiliser un outil comme celui-ci pour évaluer le comportement de leur application au cours du…

Continuer à lire

Comment configurer un projet multi-target dans Visual Studio 2017 ?

Il existe une fonctionnalité dans Visual Studio 2017 qui n’est pas évidente à repérer et qui consiste à avoir plusieurs frameworks cibles pour un projet donné. Traditionnellement dans Visual Studio, on crée un projet pour un framework donné, or depuis la multiplication récente des cibles de compilation (.NET Standard ou .NET Core), il peut être…

Continuer à lire

Téléchargement de composants .NET hors-ligne

Le plus souvent, les fichiers d’installation des composants .NET impliquent d’être connecté à internet au moment de l’installation. Par exemple, c’est le cas pour Visual Studio Community ou les Build tools. Parfois, on peut ne pas disposer d’une connexion au moment de l’installation, en particulier si on effectue l’installation sur un serveur qui se trouve…

Continuer à lire

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