GC pressure series: hidden boxing
Last time we talked about GC pressure from enumerating collections using their interfaces rather than their concrete types. It turns out that the garbage produced by using the interfaces is…
GC pressure series: Introduction and enumerators
As you may already know, I’m a Microsoft developer who works on Visual Studio. Improved performance and responsiveness is a major goal for the 2012 release. As much of the…
A brief survey of the various .NET unit test frameworks
In summary, someone please fix NUnit to support async task methods. MSTest Pros: Best IDE experience for VS2010 and earlier (VS 2012 supports MSTest and other frameworks equally). Cons: It…
How to get meld working with git on Windows
Inspired by these instructions, I followed these steps: Install Python 2.6 Install PyGTK All-in-one installer Install meld Then you need to configure git to be able to find and invoke…
Immutable collections with mutable performance
In my last post, I detailed the differences among read/write, read only, frozen and immutable collection types. I described how immutable collections come with a hit to the garbage collector…
Read only, frozen, and immutable collections
The topics of immutability and functional programming has fascinated me lately. Mostly because of my work on the Visual Studio Common Project System (CPS) which is a large, highly multi-threaded…
C# await for MSBuild
The async CTP that adds the C# await keyword doesn’t include an awaitable MSBuild. It’s easy to add yourself. Just copy and paste the the BuildSubmissionAwaitExtensions class from the code…
C# await for WaitHandle
The async CTP that adds the C# await keyword doesn’t include an awaitable WaitHandle. It’s easy to add yourself. Just copy and paste the following code somewhere in your project…
What is 2-legged OAuth?
Although there is an official spec for OAuth 1.0, the spec only outlines what the community refers to as “3-legged OAuth”. An alternative form of OAuth is loosely referred to…
.NET Obfuscator Product Review
CliSecure .NET Obfuscator Product Review Forward .NET assemblies are (in general) remarkably easy to decompile and obtain reasonably intelligible source code. A .NET obfuscator can be run as a post-build…