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

.NET

Building .NET Core 3 under a Linux TeamCity Agent

I recently needed to (re)build a new TeamCity agent under Linux to build a .NET Core project. There wasn’t anything overly complicated but I figured I’d post everything I had to do in one spot since you have to dig around various/documentation to get it all working. Hopefully, this helps anyone (including myself) in the future that needs to build a Linux TeamCity Agent for building a .NET Core app. I’m using an EC2 instance in AWS using the Ubuntu 18.04 image. This is important because all the following steps are based around that and there are differences if you… Read More »Building .NET Core 3 under a Linux TeamCity Agent

Roundup #54: Service Provider Validation, Default Interface Members, BFF with ProxyKit, GC Perf

Here are the things that caught my eye recently in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter. ASP.NET Core 3: Service provider validation In this post I describe the new “validate on build” feature that has been added to ASP.NET Core 3.0. This can be used to detect when your DI service provider is misconfigured. Specifically, the feature detects where you have a dependency on a service that you haven’t registered in the DI container. Link: https://andrewlock.net/new-in-asp-net-core-3-service-provider-validation/ Default Interface Members, What Are They Good For? The… Read More »Roundup #54: Service Provider Validation, Default Interface Members, BFF with ProxyKit, GC Perf

Detecting Sync over Async Code in ASP.NET Core

It’s pretty easy to write some bad async code, especially when you first start using async/await. Async/await is pretty viral in .NET, which means it generally goes all the way through the stack. This can be challenging if you are trying to add async/await to an existing app and you usually end up adding sync over async code. If you don’t use async/await correctly, and end up writing sync-over-async code, you’ll ultimately end up causing ThreadPool starvation. Sync over Async The term refers to making an async call but not awaiting it. Often time this is caused by calling .Wait()… Read More »Detecting Sync over Async Code in ASP.NET Core