New Release: Marvin.StreamExtensions


I just released a new NuGet package, Marvin.StreamExtensions.  It contains a set of helper extension methods (on Stream) for working with streams which I find particularly useful for interacting with an API through HttpClient. Working with streams when interacting with an API has the advantage of lowering your memory footprint and potentially improves performance as… Read more »

Techorama NL 2018 Session (Async Best Practices): Code + Slidedeck


I just finished my session at Techorama NL 2018 on Best Practices for Building Async APIs in ASP.NET Core.  Here’s what that was about: Did you know the main driver for async isn’t performance but scalability?  Ever wondered why it makes sense to async I/O-bound tasks, but why doing the same with a long-running algorithm… Read more »

Marvin.Cache.Headers 3.0 hit RTM!


Today I’m very happy to announce that Marvin.Cache.Headers 3.0 reached RTM.  This is a *big* release, very much focused on customization.  If you’re new to Marvin.Cache.Headers, here’s what to expect: Marvin.Cache.Headers is ASP.NET Core middleware that adds HttpCache headers to responses (Cache-Control, Expires, ETag, Last-Modified), and implements cache expiration and validation models.  It can be… Read more »

Techorama NL Session: Best Practices for Building Async APIs


If you’re a developer and live in Belgium you’ve undoubtedly heard of Techorama, Belgium’s biggest IT conference.  Well, this year they’re expanding to the Netherlands!  The first edition of Techorama in the Netherlands will be held on October 1-3 in Ede.  I’ll be there to deliver a session, Best Practices for Building Async APIs in… Read more »

Announcing: Building an Async API with ASP.NET Core Course Published at Pluralsight


I’m very happy to announce that today my new Pluralsight course, Building an Async API with ASP.NET Core, went live!  Here’s what you can expect: Coding an asynchronous API comes with its own set of challenges. In this course, Building an Async API with ASP.NET Core, you will gain the ability to increase the scalability… Read more »

New Release: Marvin.Cache.Headers 2.0


I’m very happy to announce that Marvin.Cache.Headers just hit 2.0.  Marvin.Cache.Headers is middleware for ASP.NET Core which adds HttpCache headers to responses (Cache-Control, Expires, ETag, Last-Modified) and implements cache expiration & validation models. It can be used to ensure caches correctly cache responses and/or to implement concurrency for REST-based APIs using ETags. It’s a pretty… Read more »

Announcing: Securing ASP.NET Core 2 with OAuth2 and OpenID Connect Course Published at Pluralsight


A while ago I created a Pluralsight course focused on securing ASP.NET Core with OAuth2 and OpenID Connect.  That one was built using ASP.NET Core 1.1.  I got a lot questions asking for a new course that would focus on ASP.NET Core 2, as quite a bit changed in regards to authentication/authorization between Core 1… Read more »

Solving Correlation Failed: State Property Not Found Errors (OpenID Connect Middleware / ASP.NET Core)


Recently we ran into an issue at one of my clients when integrating an ASP.NET Core application with an IDP using the OpenID Connect middleware.  When running the application locally everything worked as expected: the middleware takes care of most of the hard work as far as generating the calls the authorization & token endpoints,… Read more »