Using Azure Cosmos persistence with NServiceBus
This post explains how you can use NServiceBus and Azure Cosmos DB persistence together for scalability and reliability.
This post explains how you can use NServiceBus and Azure Cosmos DB persistence together for scalability and reliability.

This post talks about a bug in Rider and Roslyn analyzers when we refactor the switch-case to switch expression with Nullable default type.

In this post, I have explained how you can load a certificate through code in Azure App Service for Linu
This post gives you another reason why to stay away from C# dynamic. It turns the call-site into a late-bound leading to runtime issues.
The traditional Enum types do not support inheritance. The Enumeration class helps us to get away from the limitation.
This post describes how we can render an Enumeration class as an Enum type in client code with NSwag by implementing Swagger ISchemaFilter.
In this post, I have explained how you can use an Enumeration class as a query string parameter by creating a custom Model Binder.
In this post, I will explain how we can serialize an Enumeration class using a custom JSON Converter for both System.Text.Json and Newtonsoft.Json.
This is the first post in the series: Enumeration classes – DDD and beyond. This post gives an introduction to an Enumeration class.
The post describes the issues with Collection integrity in DDD and how we can use ImmutableList to avoid manipulating collections outside the Domain.
This post describes some of the pain-points of xUnit Theory and how we can write more descriptive tests by overriding the test output.
The post explains captive dependency. It highlights the potential issues when you do not configure lifetime services correctly.
Creating a client library for your Rest service can help your clients consume your Rest API. But is it a silver bullet to every problem?
C# 8 introduced a great feature of async stream using IAsyncEnumerable. This post talks about potential pitfalls when not using it right.
In my previous post, I had talked about how we to ported an existing repository code from Azure SQL to Amazon Aurora. This is a two-series post where I will throw a little bit more light on the intention behind it and what we were trying to achieve. Background We had a small ASP.NET Core solution
We are currently working on a greenfield project which involves building several microservices on Azure. One of our primary services had Azure SQL as its data source originally. But, midway during the development, we decided to switch Cosmos DB instead. One of the main motivations for this switch was that it was too hard to
Recently, after one of my PRs which was merged to master, my teammates started complaining about a weird scenario. On some occasions, the ASP.NET Core app hosted inside the IIS worker process (w3wp.exe), would simply die without any exception/ warning. There were no clear retro-steps and it was difficult to pinpoint what was causing the
Without a doubt Open Source is great. It has touched the lives of millions of developers and through them almost everyone living on this planet someway or the other. The magic of Open Source For all the power Open Source has given to developers, the sad reality is that only very few people are actually
A bit of a background I work on a long-running running project in our organization. We have a CI/CD pipeline for our project following the GitHub flow and backed by thousands of unit tests, hundreds of integration tests. However, until recently we were missing a key piece to the puzzle. UI Tests!
Testing your applications cross-platform and cross-browser is not an easy problem to solve. Supporting different versions, operating systems and devices can be an extremely frustrating and time-consuming process. It can be especially painful if you need to support legacy browsers like IE 9 or IE 8.
It is a fairly common scenario that during development the local machine configuration settings for different developers in are not same and it may not match with the default value in source control. One such example can be SQL server connection string. Some developers may have SQL Express installed, others may have a named instance
This is Part 4 and most likely the last part of my series, lesser-known features of C#. The previous parts of this series are available here: Lesser known C# features – Part 1 Lesser known C# features – Part 2 Lesser known C# features – Part 3
This is Part 3 of my series, lesser-known features of C#. The previous parts of this series are available here: Lesser known C# features – Part 1 Lesser known C# – feature – Part 2
This is Part 2 of the series, lesser-known features of C# language. I would suggest you to go through Part 1 if you have not already.
Language C# has become very powerful and mature over the years. As with any other language, C# also has few features which are used lesser than others. These are useful but often forgotten features. Through a series of blog post, I want to talk to about these lesser known/used features of C#. This is Part 1 of the series.
Tools and tricks you can use along with Visual Studio to make your life easy as a developer:
This blog post is Part 2 of how to create a chat bot with Microsoft Bot Framework which can answer FAQs on your website. This is in continuation to my previous post where I explained how to create a QnA service using Microsoft QnA service maker. You can read Part 1 of my post here.
Visual Studio 2017 was launched with much fan fare yesterday (March 7, 2017). I started exploring Visual Studio 2017 from RC and I must say, after using VS 2017 I felt I was earlier leaving in stone age. It is so much better. In short the Visual Studio 2017 is equivalent to following: VS 2017
aysnc await is probably one of the most important features of C#. It has made the life of developers easy. It helps developers to write clean code without any callbacks which are messy and difficult to understand.
Today, every project we work on big or small, easy or complex, small team or large team is probably on Source Control. The source control of course can be git, VSTS, SVN etc. Still, there are times where you need to share your code as zip in an email, or shared link. It could be because
Recently, I came across this blog post from ASP.NET Monsters which talks about correct using HttpClient. The post talks about issues of related to disposing HttpClient object for each request. As per the post calling HttpClient as below can lead to issues.