Extending functionality using Decorator Pattern (C#)

Introduction The decorator pattern is a structural design pattern which allows you to dynamically add functionality to classes without modifying the target class. It does this by creating a wrapper around the original class, which gives you an extension point to inject in new behavior. It allows you to maintain a strong separation of concerns … Read more

Build a simple Chat Room using Mediator Pattern (C#)

Introduction I’ve previously written about Mediator pattern and how it encapsulates object’s interaction and communication. This pattern promotes loose coupling between software components. It acts as a communication hub and it facilitates one-to-many, many-to-one and many-to-many communications. We than saw an example of Vehicles Control Center where vehicles position is communicated to control center. We … Read more

Working with XML Using C#

Introduction The Extensible Markup Language (XML) is a simple text-based format for representing structured information: documents, data, configuration, books, transactions, invoices, and much more. It is a very common format and In this post, we will learn some of the basic ways to work with XML in C#. Getting Started XDocument and XElement are the … Read more

Deploying a Web Application to Kubernetes – Basics

Introduction I have previously written few posts on Kubernetes basics. There we covered some building blocks and how to get started with it. Here is the high level information about the core Kubernetes resources: you can read more details about these from the following earlier posts: We have done some demos in those posts. However, … Read more

Kubernetes Basics – Pods

Introduction In previous post about Kubernetes basics, we learned that a kubernetes cluster is made of masters and nodes. Masters contains the cluster control plane and nodes are where we run our applications (containers). We also learned about workload objects in kubernetes such as Pods, services and deployments. Today, we will learn more about pods, … Read more

Event Logs in .NET Core Worker Application

Introduction Logging is essential for software development practices, but it’s often underestimated until the program crashes. Logging serves numerous purposes including root cause analysis, bug analysis, and even performance reviews for the application. There are great many libraries and approaches about how to incorporate Logging in your application. But sometimes we just need very basic … Read more

.NET Core Performance Testing using Apache JMeter – Part 4

Introduction In previous posts on this topic, we learned how JMeter can help us in performance testing our applications. I am using .NET Core for the demos, but you can use APIs written in totally different languages as well. In this post, we will learn various other JMeter components and configurations and will also see … Read more