Managing Technical Debt with NDepend!

What the hell is a Technical Debt?

You are working on a cool new project, want to implement the amazing new design pattern that you learned about few days ago. All is well. Untill, your boss comes to your desk and tells you the release is pre-poned (is that even a word?) by 10 days. WTH man! Now whatever plans you had to make the code readable, testable, SOLID - goes for a toss, and you stuff the code to make up for the early release.

Automate Windows Software and Apps' installation!


If you’ve installed Windows enough times, you already know the pain of installing all your Software and Apps again and again. If you haven’t, let me save you the pain and show you how to:

Hello, Docker!

What is Docker?

Docker is an open source platform for building, deploying, and managing containerized applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly.

.NET 6 LINQ New Features

What is .NET 6 and why should I care?

.NET 6 is the upcoming major overhaul for .NET. It unifies entire .NET experience. No more .NET Core, .NET Full Framework, Xamarine, Mono, etc. Just a single .NET.

New LINQ Features

At the time of writing this post, 5 previews of .NET 6 have been released and last couple of releases have been blessing for LINQ.

Here are few top new LINQ features:

What is WebAssembly and how to create a WebAssembly app?


The browsers only understand JavaScript, however with rise of stuff that we use on browsers e.g. Games, Virtual Reality, Augumented Reality, JavaScript hasn’t been able to catch up due to its inherent interpreted nature despite its powerful engines like V8.

Suppose you have a cool game or software developed in a low-level programming language e.g. C/C++ or a high-level programming language e.g. Java/C#/Rust/Go. With WebAssembly you can run these apps on a browser. Wihout re-writing them in JavaScript.

Wait, what?

Using Feature Flags aka Feature Toggles in Microservices and DevOps

What’s a Feature Flag/Feature Toggle

Cloud Native Microservices and DevOps are much about speed and agility. Users expect rapid responsiveness, innovative features, and zero downtime. Feature flags are a modern deployment technique that helps increase agility for cloud-native applications. They enable you to deploy new features into a production environment, but restrict their availability. With the flick of a switch, you can activate a new feature for specific users without restarting the app or deploying new code. They separate the release of new features from their code deployment.

Creating a gRPC Microservice and Client in .NET Core

Hi, in this tutorial we’re going to create agRPC Service and Client using .NET Core. I’m assuming you’ve already heard about gRPC and want to see some code. In case you haven’t, here’s an excerpt from Microsoft Docs:

What is gRPC?

gRPC is a modern, high-performance framework that evolves the age-old remote procedure call (RPC) protocol. At the application level, gRPC streamlines messaging between clients and back-end services. Originating from Google, gRPC is open source and part of the Cloud Native Computing Foundation (CNCF) ecosystem of cloud-native offerings.

How to Scaffold Controllers with database views to EF Core 2.1

How to Scaffold Controllers with database views to EF Core 2.1

  1. Create view in database.
  2. Create a POCO with same structure as view.
  3. Add a new Controller with POCO created in step#2 a. If key related error occurrs, add a Key attribute on a column and then remove after scaffolding is completed.
  4. A new property with DbSet<T> should have gotten added where T is the class created in step#2. Change DbSet to DbQuery.
  5. In OnModelCreating method of DbContext, add following code:
    modelBuilder.Query<POCO from step#2>().ToView("Name of the view");

Hello World!

Hola! This is my first post, so it ought to be a Hello World.
Stay tuned at my blog for more.