Développeur .NET. J’ai commencé l’IT sur du Pascal il y a 11 ans et juste par hasard lors d’un cours facultatif au lycée, et je n’ai jamais imaginé que ça sera ainsi la suite. Le hasard fait des miracles
Billets de blog par cet auteur
Performances de LINQ
2023-09-06 par Badre BSAILA
LINQ est un ensemble de méthodes qui traitent les collections fonctionnellement. En fournissant une fonction qui va transformer/filtrer/aggréger/projeter un élément, LINQ est capable de propager la fonction sur l’entièreté de la collection. Ce qui permet d’aligner l’écriture des traitements itératifs sur des collections et en simplifier la complexité cyclomatique. La convenance des fonctions LINQ a un coût et le but de ce billet sera de vous présenter ce qu’on perd en performance en les privilégiant.
Garbage Collector en .NET - Partie 5
2021-04-18 par Badre BSAILA
Re-bienvenue à la série de gestion mémoire en .NET. J’ai du l’arrêter à cause de quelques événements majeurs dans ma vie perso/professionnelle et je m’en excuse. Sans plus d’attente, let’s GO. Dans cette partie, je vais parler des 2 manières pour mesurer l’évolution de la mémoire d’une application dans le temps : les compteurs de performance (pour Windows) et les événements ETW (CrossPlatform). Stay tuned.
Garbage Collector en .NET - Partie 4
2020-10-04 par Badre BSAILA
Re-bienvenue dans la série dédiée à la gestion mémoire dans .NET. Je couvre dans cet article les notions de collection concurrente, non-concurrente, et d’arrière-plan GC. J’explore aussi les 2 types de GC: workstation-GC et server-GC.
Garbage Collector en .NET - Partie 3
2020-09-20 par Badre BSAILA
Dans les précédents articles, j’ai exposé quelques notions sur la gestion mémoire .NET notamment : le tas managé, LOH, GC, la collection, les générations et les ségments. J’ai aussi montré comment on les quantifie avec windbg. Dans cette 3ème partie, je vous explique comment le GC parcourt le graphe des objets et décide quel objet va être collecté.
Garbage Collector en .NET - Partie 2
2020-08-23 par Badre BSAILA
Dans le précédent article, J’ai exposé quelques notions sur la gestion mémoire .NET notamment : le tas managé, LOH, GC, la collection, les générations et les ségments. Aujourd’hui, je ferai une démonstration de ces dernières. Les prérequis pour pouvoir la suivre sont :
Garbage Collector en .NET - Partie 1
2020-08-09 par Badre BSAILA
L’environnement d’exécution .NET (CLR: Common Language Runtime) possède un Garbage Collector (GC) qui s’occupe de la mémoire: il gère l’allocation et la libération des ressources pour une application. Le GC permet de:
Vue générale de Kafka
2020-05-31 par Badre BSAILA
Kafka est une implémentation du célèbre patron de conception publish-subscribe. Il permet à deux composants de communiquer avec un modèle événementiel. Kafka possède plusieurs points forts : performant, distribué (pouvant même couvrir plusieurs régions-cloud), scalable et tolérant aux pannes. Je vais essayer de se focaliser sur l’architecture technique plutôt que les librairies clientes (peut être que je vais prévoir un autre billet pour ça) et comment elle lui confère les propriétés précédentes. Bonne lecture !
Nième article sur le DevOps
2020-05-24 par Badre BSAILA
DevOps est un vrai buzz-word et se cache sous ce petit acronyme une littérature abondante sur comment les DSI peuvent s’organiser pour livrer des produits de grande valeur-ajoutée. Dans cet article, je vais me focaliser sur les aspects business, organisationnels et techniques du DevOps, ceci dit l’aspect technique est le plus facile à implémenter. Aussi je vais me baser un peu (trop) sur la littérature de Microsoft car le concept est vu différemment par les usagers.
Principes d'ingénierie logicielle pour une bonne santé mentale
2020-01-26 par Badre BSAILA
La vie est très challengeuse, demandeuse en temps, patience et efforts et très improbable. Notre bien-être se trouvent par moments dégradé et nous ne pouvons plus supporter son poids. Si vous êtes timides et très sensitives, ou/et vous souffrez déjà des symptômes de dépression, anxiété, phobie sociale, trouble bipolaire…etc les choses peuvent vite se compliquer pour vous. Durant ce billet, je vais essayer de résumer mon retour d’expérience de 8 années consécutives de trouble bipolaire et comment ma carrière d’ingénierie logicielle m’a aidé à accepter ma situation et m’a appris à mieux vivre mon quotidien.
Penser fonctionnel avec F#
2020-01-08 par Badre BSAILA
F# (F désigne Fun) est un langage fonctionnel-orienté objet membre de la famille des langages de la plateforme .NET. Il a été créé par Don Syme de l’entité Microsoft Research UK, Cambridge (toujours architecturé par lui-même). Sa genèse a commencé en 2002 et était une des ripostes des défenseurs des langages fonctionnels fortement typés face à la montée en puissance de l’orienté objet durant la dernière décennie du 20ème siècle. Le développement de l’essentiel du socle F# a été mené entre 2004-2007. F# est open-source, cross-platform (Windows, Linux, MacOS) et peut être utilisé pour faire du développement web, mobile, desktop et Azure. Plusieurs EDI le supportent: VS, VS Code, Jet Brains Rider, et Emacs.
Docker Desktop supporte WSL2
2019-11-24 par Badre BSAILA
Bonne nouvelle pour ceux qui développent pour Linux sous une configuration Windows, les équipes de Docker et Microsoft collaborent depuis plusieurs mois pour arriver à une mouture de Docker Desktop, qui n’utilise plus la VM MobyLinux sous Hyper-V, mais plutôt le noyau Linux embarqué sous Windows appelé communément Windows Sub-system for Linux (WSL). Aujourd’hui ils sont arrivés à un stade assez avancé, d’un côté Microsoft vient d’embarquer depuis peu WSL dans sa version 2 sur la build de production de Windows, quand aux équipes de Docker ils ont livré une version expérimentale sur le canal Edge utilisant WSL2 à la demande.
MS Ignite The Tour - Paris
2019-10-20 par Badre BSAILA
Pas plus d’un mois pour que Microsoft Ignite The Tour débarque pour la 1ère fois à Paris le 13-14 Novembre à Paris Convention Center - Porte de Versailles. Pour rappel, cet événement sillonne quelques 30 villes dans le monde entier chaque année pour y organiser des conférences dédiées aux dernières technologies Microsoft de développement, collaboration, cloud et infrastructure. Les animateurs sont des MVP, experts, et bien sûr des ingénieurs Microsoft de hauts calibres.
.NET Core 3.0 is out
2019-10-05 par Badre BSAILA
On finit le semaine sur une bonne note, .NET Core 3.0 est publié avec un lot de nouveautés intéressantes. Support de Windows Forms + WPF, nouvelles API pour le format JSON, support de l’architecture ARM64, support de C# 8.0 + F# 4.7, et des améliorations de performance sont au menu.
Identity sans EF, Yes we can
2019-09-15 par Badre BSAILA
Identity est le nuget de référence pour implémenter l’authentification dans la sphère .NET Core. Il a été conçu en définissant un certain nombre d’interfaces pour qu’il inter-opère avec différentes bases de données et solutions de persistance. Aujourd’hui l’implémentation la plus poussée et utilisée est celle avec EF Core. Mais dès qu’on pense à utiliser d’autres BD non supportées par EF ou d’autres ORM, on se heurte au peu de ressources dédiées à ce sujet. Le but de ce billet est de vous montrer que le processus n’est pas si dûr que ça et qu’il est très instructif. On s’intéressera plus particulièrement à faire fonctionner Identity en utilisant Dapper et une base de données SQL Server.
Service mesh avec Linkerd
2019-08-31 par Badre BSAILA
Linkerd est un service mesh pour les plate-formes de µ-service tels que Kubernetes, Mesos, DC/OS… etc (Linkerd 1.x supporte toutes ces plateformes tandis que les versions 2.x supportent juste K8S à l’heure actuelle), Il ajoute les fonctionnalités d’observabilité (Etude de l’état interne d’un système à partir de ses outputs), monitoring, fiabilité et sécurité à vos conteneurs sans nécessiter de changement de code. Pour simplifier nous allons parler que des versions 2.x.