[Code Index] by Mike Marynowski

programming for work and fun

Generic Math at Raw Operator Speed

If you need the absolute fastest way to do generic math operations in C# then this is the way to do it. When the JIT compiler processes this method for a particular type, there are a number of clever optimizations that happen which allow it to run at raw operator speed. [More]

Value Type Box Cache

We've recently been building a .NET object database that necessarily stores a lot of data in object[] arrays. Most of the values in these arrays are default values (i.e. 0 for numbers), small integers, boolean values or enums. On a loaded instance there can be many millions of these boxes values sitting in memory and they are constantly being created and collected, which got me thinking...we could probably cache and reuse the boxes for a lot of these values, and thus the BoxCache was born! [More]

Getting Rid of Ugly TransformGroup Blocks in WPF

If you're obsessed with beautiful and clean XAML code like I am, a real thorn in your side is seeing large ugly TransformGroup blocks in your code. Here's how to fix that. [More]

Building the Ultimate WPF Event Method Binding Extension

Seeing that .NET 4.5 added support in WPF for markup extensions on events, I looked around to see what was out there in terms of method binding support. I couldn't find anything that quite did everything I needed, so I set out to build the ultimate method binding extension. [More]

WPF Visibility Binding with Design Time Control (and more!)

Designers don't want to worry about how to modify view models when designing a UI. They just want to show and hide elements to see what they look like, and occasionally test out a few different values to make sure it still looks correct. The current methods are too complicated to setup or to cumbersome to work with for simple tasks. Here's an alternate approach. [More]

 Hi, I am Mike, Owner / Technical Lead at Singulink :)

This is where I post (mostly) software development related stuff I think might be useful and interesting.

We are currently accepting software development project contracts so drop me a line if you want to chat or head over to our GitHub page to check out our open-source projects.

Posts by Date