Mises à jour des templates Visual studio pour BenchmarkDotNet

Suite à plusieurs demandes, j'ai mis à jour mon extension BenchmarkDotNet pour Visual Studio. Désolé pour le retard.

Cette extension a vocation à simplifier la création de projets de benchmarks, l'ajout de benchmarks, et leur exécution.

Si cela vous intéresse, l'extension est disponible via le Markateplace.

Bien évidemment, son code est accessible via GitHub.

Jérémy Jeanson

Une entreprise de la Tech peut-elle vraiment changer vos rêves en réalité ?

Pour les amoureux des nouvelles technologies, ou du développement, il y a de quoi s'émerveiller tous les ans. Quelle que soit la technologie choisie, il y a de quoi s'amuser. Même s’il est vrai que certains, comme les développeurs .net, sont un  peu mieux lotis (Web, mobiles, tablettes, consoles, Windows, Linux, …)

Le jour où vous choisissez de partager vos connaissances, vous vous éclatez encore un peu plus. Certes, cela demande davantage de travail, et vous expose aux avis des autres développeurs. Mais cela en vaut la peine.

Petit effet de bord imprévu : Plus vous arrivez à intéresser d'autres développeurs, plus vous échangez, et plus vous gagnez en connaissance, et compétences.

Comment nuget.org m'a fait totalement changer d'avis sur dependency-check ?

En fin d'année 2023, j'ai publié un retour d'expérience sur dependency-check et son intégration dans Azure DevOps. À l'époque, je ne recommandais pas l'outil pour les développeurs .net. Depuis, les choses ont changé.

Mon article m'a permis d'avoir des retours d'utilisateurs Java.

Petite pause : Oui, dans ce monde de brutes, les développeurs Java, et .net, peuvent échanger sans en venir aux mains.

À ma grande surprise, ceux-ci partageaient le même avis que moi. Je les trouvais même plus critiques (si, c'est possible). Ils mettaient en avant le trop grand nombre de faux positifs. Situation que je commençais aussi à rencontrer.

Comment contourner la pire méthode de .net ?

Régulièrement, on me dit que je ne suis pas assez critique vis-à-vis de .net. Je suis désolé de contrarier les personnes qui pensent de la sorte. Depuis que j'utilise .net, je ne l'ai jamais regretté. Nous avons là un ensemble de solutions qui évoluent dans le temps pour nous offrir toujours plus de facilité, de productivité, avec un très beau niveau de performance.

Cependant, il existe une méthode qui fait tache dans ce beau tableau :


Path.GetDirectoryName(path);

Cette méthode est un véritable piège.

Comme indiqué dans la documentation, l'appel à Path.GetDirectoryName("C:\MyDir\MySubDir") retourne "C:\MyDir". Il faut un "\" en fin de string pour que la méthode retourne "C:\MyDir\MySubDir".

Concrètement, cette méthode n'est intéressante que pour obtenir le Path vers le répertoire d'un fichier. Que ce soit le nom de la méthode, ou le nom de son argument, tout est trompeur.

Pour vérifier le nom d'un répertoire, j'ai pris l'habitude d'utiliser (on pensera à effectuer un Trim() sur le path pour éviter les problèmes)


var name = new DirectoryInfo(path).Name;

C'est un peu dommage, mais c'est ainsi.

Jérémy Jeanson

Comment éviter les problèmes de fonts avec Gulp 5 ?

Suite à la montée de version de Gulp4 vers Gulp 5, vous avez peut-être rencontré un problème avec vos polices de caractères. Ceci est lié à une évolution majeure : Gulp 5 produit par défaut des sorties encodées en UTF-8. Toutes les Streams sont donc maintenant encodées pour s'assurer de ne produire que des fichiers en UTF-8. Ce qui peut avoir un effet des effets de bord sur les polices de caractères.

Ceci est décrit ici.

Pour résoudre le problème, il suffit donc d'indiquer à Gulp de ne pas toucher à l'encodage des fichiers.

Exemple avec une méthode chargée de copier des fonts :


function copyFonts() {
  return src([
    "./_www/fonts/*",
    "./node_modules/@fortawesome/fontawesome-free/webfonts/*"],
    {
      encoding: false
    })
    .pipe(dest("./wwwroot/fonts/"));
}

Jérémy Jeanson