Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Getting Started: Apache Kafka with .NET Core

If you’re interested in playing around with Apache Kafka with .NET Core, this post contains everything you need to get started. I’ve been interested in Kafka for awhile and finally sat down and got everything configured using Docker, then created a .NET console app that contained a Producer and a Consumer. Here’s my complete process of what that involved. YouTube Check out my YouTube channel where I created a video that accompanies this blog post. Docker The first thing you need is to pull down the latest Docker images of both Zookeeper and Kafka. Before we create any contains, first create a… Read More »Getting Started: Apache Kafka with .NET Core

NuGet PackageReference Versions SOLUTION Wide

If you have a solution with many projects, it can be a challenge to make sure each NuGet Package has the version across all of your projects. Each PackageReference across all csproj files must specify the same version of the NuGet Package. Here are a couple of ways for managing NuGet PackageRerence Versions across your entire solution. YouTube Check out my YouTube channel where I created a video that accompanies this blog post. PackageReference First, in order for this to work, you must be using the new SDK style csproj files. This is where your NuGet packages are referenced via the <PackageReference>… Read More »NuGet PackageReference Versions SOLUTION Wide

Stop throwing Exceptions! Start being Explicit

If you’re writing a library for other developers to consume on NuGet or if you’re creating an API within your own project, stop throwing exceptions and start being explicit. Exceptions are like landmines. Consuming callers have absolutely no idea what exceptions you might throw or how/when/why they will step on one. C# is dishonest when it comes to looking at method signatures. YouTube Check out my YouTube channel where I created a video that accompanies this blog post. Honesty I first heard of the concept of honesty in programming languages from a video of Erik Meijer discussing functional programming. Take for example… Read More »Stop throwing Exceptions! Start being Explicit