[{"content":"Working with Kubernetes from the terminal is powerful… but let’s be honest, it can also become painful very quickly.\nAt first, everything feels manageable:\nkubectl get pods kubectl logs my-pod kubectl describe pod my-pod But once your cluster starts growing, namespaces multiply, deployments scale, and microservices spread everywhere, the amount of commands, flags, and context switching becomes exhausting.\nThis is exactly where K9s comes in.\nIn this article, we’ll explore what K9s is, why it became one of the most loved tools in the Kubernetes ecosystem (as its github page shows so…), and how it can dramatically improve your daily developer or DevOps workflow.\nLet’s go 🔥\n","date":"May 24, 2026","section":"blog","title":"K9s, the Kubernetes tool that will probably replace half your `kubectl` commands","url":"https://www.dimitrilaaraybi.com/blog/k9s/"},{"content":"The .NET testing ecosystem has been dominated for years by well‑established frameworks such as xUnit, NUnit, and MSTest. They are mature, stable, and battle‑tested. But as .NET itself evolves, becoming faster, more async‑friendly, and more careful about performance, new tools are emerging to better match these modern expectations.\nOne of the most interesting newcomers is TUnit .\nIn this article, we’ll try to explore what TUnit is, its core concepts and advantages, but also explore concrete examples of tests compared to xUnit.\nLet’s go ! 🔥\n","date":"January 27, 2026","section":"blog","title":"Exploring TUnit, a modern take on .NET testing","url":"https://www.dimitrilaaraybi.com/blog/tunit/"},{"content":"C# 14 introduces one of the most requested language features in years: Extension Members.\nWhile C# has long supported extension methods, the new extension member system dramatically expands what developers can add to types they don’t control, enabling us to do pretty much whatever we want with non-user types 🔥\nIn this article, we’ll try to explain what are those new extension members and how to use it properly, so let’s go !\n","date":"December 24, 2025","section":"blog","title":"Exploring Extension Members in C# 14","url":"https://www.dimitrilaaraybi.com/blog/extensionmembers/"},{"content":"Introduction It’s been a recurrent meeting every 2 years, as this month Microsoft gave us the chance to try and adopt the new LTS version of our beloved framework, which is .NET 10 🔥\nIn this post, I’ll show you what are the big new improvements and features in this new LTS version, and also how to migrate your apps, which, you will see, has not changed a lot since the previous versions and this is a pretty good point.\n","date":"December 2, 2025","section":"blog","title":"Say Hello to .NET 10 !","url":"https://www.dimitrilaaraybi.com/blog/migratetodotnet10/"},{"content":"Introduction Microsoft certifications are a great way to validate your technical expertise and stay relevant in this fast-moving industry, especially when you’re working with an Azure cloud based enterprise environment, or dotnet based applications.\nBut certifications don’t last forever.\nMost role-based and specialty certifications expire after one year, which means you’ll need to renew them regularly. That’s the case of some of the certifications I earned some years ago especially on Azure and dotnet, and which I actually made blog posts about 😉\n","date":"August 22, 2025","section":"blog","title":"Renewing a Microsoft certification","url":"https://www.dimitrilaaraybi.com/blog/renewingcertification/"},{"content":"Introduction In many C#/.NET applications, business services rely on common dependencies like logging, mapping, time management, or database repositories.\nInjecting these repeatedly into every service can lead to boilerplate code, inconsistency and less room for dependancies with relevant business logic value.\nAnother drawback of this is that potential code scanners like Sonar could eventually raise some rules errors when some of your constructors injects too much parameters (which is the case by default in Sonar C# rules, 7 max allowed 😉). And this rule break could potentially block your quality gate ❌\n","date":"July 26, 2025","section":"blog","title":"Reducing dependencies with the IServiceUtils\u003cT\u003e pattern","url":"https://www.dimitrilaaraybi.com/blog/serviceutils/"},{"content":"Exploring the new HybridCache in .NET New major dotnet releases always come with their bunch of new interesting features.\nWith the release of .NET 9, Microsoft introduced a powerful new caching mechanism called HybridCache. It’s designed to combine the benefits of both in-memory and distributed caching, providing better performance and scalability for modern applications. Let’s dive into it 😎\nWhat is HybridCache? HybridCache is a new caching abstraction that intelligently uses both:\n","date":"May 31, 2025","section":"blog","title":"Combining memory and distributed cache with HybridCache","url":"https://www.dimitrilaaraybi.com/blog/hybridcache/"},{"content":"Introduction With .NET 8, Microsoft introduced a new solution file format: .slnx. This format aims to improve solution management, making large-scale editing scenarios easier and optimizing performance for large codebases.\nAs mentionned earlier in March in Chet Husk’s post on .NET blog, Microsoft now officially supports it in their latest SDK ! 😎\nBefore .NET 9, the only way available to use this new format was to use the “Save As” feature on an existing .SLN file and target the SLNX format.\nNow new projects can be created by default using this format, which is pretty cool 🥳\n","date":"April 14, 2025","section":"blog","title":"SLNX, the new solution format in .NET ✨","url":"https://www.dimitrilaaraybi.com/blog/newslnxformat/"},{"content":"Introduction Swagger (now known as OpenAPI) has long been the standard for API documentation in .NET applications.\nHowever, Scalar, a lightweight and efficient API documentation framework, is gaining traction due to its simplicity and performance benefits. In fact, it even has been pushed to the front scene by Microsoft with .NET 9 and recommended to be used as the default API documentation framework ! 🥹\nSo this little guide will introduce Scalar, compare it with Swagger, and provide a detailed step-by-step approach to migrating from Swagger to Scalar in a .NET API. 📜\n","date":"March 29, 2025","section":"blog","title":"Scalar, the new standard for API documentation 🚀","url":"https://www.dimitrilaaraybi.com/blog/scalartutorial/"},{"content":"Introduction Hey all ! 🫡\nA little post to share some thoughts about the Task.Run() method, and the problems you could encounter especially in a .NET API using a GlobalExceptionHandler. ❌\nWhat actually happen when you need to start a Task as “fire and forget”, and you have an ExceptionHandler configured globally ? This kind of case can happen frequently, for example if you need to await a particular business process, and start some tasks after that process that does not need to be awaited by the calling context.\n","date":"March 18, 2025","section":"blog","title":"Beware of Task.Run() !","url":"https://www.dimitrilaaraybi.com/blog/bewareoftaskrun/"},{"content":"Introduction Hey all ! 🫡\nLet’s talk about another little drama that has been shaking the .NET community during the last weeks.\nWhen working on unit tests in .NET, developers often rely on assertion libraries to make their tests more readable and expressive.\nTwo popular libraries in this space are FluentAssertions and Shouldly. While both libraries serve the same purpose, one of them actually updated its licensing model and frightened the whole community about his new goal, making money 😂 (Well who does not want to) And this one is FluentAssertions.\nIn fact, it now requires a paid licence to be used for commercial use. At least, concerning the 8.x.x version. The developers have stated that the 7.x.x version will be forever free and receive critical fixes, but this strange move from their side may have pushed you to find another library for your assertions, to avoid any problems with the company you work for.\nIf that’s the case, here is a little tutorial that explains how to migrate from FluentAssertions to Shouldly !\n","date":"March 2, 2025","section":"blog","title":"No, FluentAssertions is not the only one... Here is how to switch from FluentAssertions to Shouldly !","url":"https://www.dimitrilaaraybi.com/blog/migratetoshouldly/"},{"content":"Introduction Hey devs !\nAs you may all know, the new version of .NET, .NET 8, has been released on November 14 2023. A lot of you may have applications still in .NET 6 or earlier.\nThe end of support date for .NET 6 is November 12, 2024, so it’s good considering migrating your applications right now.\nIn this article, we’ll see what improvements brings .NET 8, and how to migrate your applications.\nMicrosoft has done a good job to make it easy for us to migrate from .NET 6 to .NET 8, or .NET 7 to .NET 8 (at least if you don’t rely on a Blazor app…), so we might as well make the most of it 😁\n","date":"February 14, 2024","section":"blog","title":"How to migrate your application to .NET 8 ?","url":"https://www.dimitrilaaraybi.com/blog/migratetodotnet8/"},{"content":"Hey devs ! 😁\nIf you are a .NET developer who uses the popular mocking library Moq for your unit tests, you may have heard about the recent controversy that erupted when it was revealed that Moq was secretly collecting and sending user email addresses to a third-party service called SponsorLink. This was done without the consent or knowledge of the developers who used Moq , and raised serious privacy and security concerns.\nIn this post, I’ll try to explain in more details what this scandal is all about and how to switch from Moq to NSubstitute if you see fit, but also how to prevent your projects from those vulnerabilities in a DevSecOps way 😉\n","date":"August 17, 2023","section":"blog","title":"How to switch from Moq to NSubstitute after the SponsorLink scandal ?","url":"https://www.dimitrilaaraybi.com/blog/moqtonsubstitute/"},{"content":"Authentication is a standard when it comes to manage security and access to your business applications. And Azure provides numerous ways to handle that security layer. In this blog post, I’m going to talk about integrated authentication for app services (easy auth) in Azure. I’ll explain what it is, what are the advantages and disadvantages compared to authentication managed in code, and how to implement it on an app service. Let’s get started 😄\n","date":"May 27, 2023","section":"blog","title":"How to implement App Service integrated authentication (Easy Auth)","url":"https://www.dimitrilaaraybi.com/blog/azureadeasyauth/"},{"content":"Back in October 2022, Microsoft has launched an Ignite Learn Cloud Skills Challenge .\nThey challenged you to pass all the learning cloud modules proposed by the challenge.\nOnce passed, Microsoft gave us a free exam! Knowing that the exams are rather expensive (165 euros as I said in my previous article), it’s a good thing that Microsoft offers challenges that allow you to pass exams without having to pay.\n","date":"February 15, 2023","section":"blog","title":"Officially Devops Engineer Expert ! 🔥","url":"https://www.dimitrilaaraybi.com/blog/devopsengineerexpert/"},{"content":"Microsoft certifications are a good way to test and validate your skills on Azure.\nI’ve been working with Azure for 3 years now, so I thought it was the right time at the end of 2022 to take the exam and validate my knowledge 😊\nAnd I successfully passed it on December 28th 2022 ! So here is a little post detailing how I prepared my self for the exam and what materials I used to train, so you can hopefully use those to help yourself.\n","date":"January 28, 2023","section":"blog","title":"How I passed AZ-204 certification 🥳","url":"https://www.dimitrilaaraybi.com/blog/howipassedaz204/"},{"content":"For a first blog post, I wanted to go simply to the point by writing you a small tutorial on how to set up this blog, so that you can reproduce it yourself.\nChoosing the right solution Choosing the right solution to create your blog is not necessarily easy as there are so many solutions available: hosted CMS, ready to use blog platform, static applications… The best thing is to define your initial needs so that you don’t end up with a gas factory to manage.\n","date":"January 21, 2023","section":"blog","title":"How this blog was made ?","url":"https://www.dimitrilaaraybi.com/blog/howthisblogwasmade/"}]