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

In-Memory Caching with Foundatio

I was recently looking for a simple in-memory caching library that sat on top of ConcurrentDictionary.  I didn’t have many requirements other than it needing to be thread safe and and had some expiry policy built-in.  I’ve used .NET MemoryCache before, but figured there likely had to be something simple else already built. My search led me to Foundatio: Pluggable foundation blocks for building distributed apps. Turns out Foundatio was created for building Exceptionless.  I’ve blogged about Exceptionless before, which is a real-time error and logging .NET and Javascript. Basics Caching in it’s various forms (in-memory, distributed) is simply about storing… Read More »In-Memory Caching with Foundatio

Octopus Deploy in Your Cake (C# Make)

I’ve looked at using Cake (C# Make) for build automation in C#.  The basics were to compile a solution/project using MSBuild and then run our automated tests with xUnit. Another common set of tasks that are performed in a build pipeline are: Create a NuGet package Push the NuGet package to Octopus Deploy Create an Octopus Deploy Release NuGet First thing we need to do is to create a NuGet package.  You have a couple options here, one is to create a nuspec and invoke the Nuget.exe to create your package.  I’m going to choose an alternative which is to… Read More »Octopus Deploy in Your Cake (C# Make)

Automating Builds with Cake (C# Make)

I’ve used various build systems for compiling, testing and deploying .NET based applications. TFS, VSTS, AppVeyor, TeamCity have had one thing in common. They all contained the configuration of my build, test and deploy pipeline in their system with no way to extract it. Build as Code Removing the build steps out of your build system and turning into code has two major benefits to me: Build Anywhere: Once you have a build script, you should be able to execute and build it anywhere.  No longer are you relying on the build server and it’s build steps which are specific to that… Read More »Automating Builds with Cake (C# Make)