All Posts

Back to the CLR

Five years in tech context is a really really long time. So it struck me last week Matt Warren tweeted about two blogs I wrote 5 years ago about the intrinsics of the .

Open Sourcing the .NET production debugger

Years ago, during my quest for knowledge about the internals of the .NET runtime and native interop, I developed a tool for live production debugging named TraceCLI.

Creating an automatic self-updating process

Recently I was asked by a client to replace a single monolithic custom workflow engine with a more scaleable and loosely coupled modern alternative. We decided on a centralized queue which contained the work items and persisted them, with a manager (scheduler) on top which would accept connections of a dynamically scaleable number of processors which would request and then do the actual work.

Contract first WCF service (and client)

NOTE: This post is kept here for historic reference, and while this still presents the cleanest way to set up WCF, a shared library model is not in line with modern microservice architectures

Compile time marshalling

In one of my posts about managed/unmanaged interop in C# (P/Invoke), I left you with the promise of answering a few questions, namely: can we manually create our own marshalling stubs in C# (at compile time), and can they be faster than the runtime generated ones ?

PInvoke: beyond the magic

Ever ran into problems passing data between unmanaged code and managed code ? Or just curious what really happens when you slap that [DllImport] on a method ?