Simon Cooper Subterranean IL: Generics and array covariance Arrays in .NET are curious beasts. They are the only built-in collection types in the CLR, and SZ-arrays (single dimension,... 11 November 2010 5 min read
Simon Cooper Subterranean IL: Callvirt and generic types In this post we finally get on to how basic generic methods are implemented in IL. First of all, we... 08 November 2010 6 min read
Simon Cooper Subterranean IL: Callvirt and virtual methods Next up is a look at the details of callvirt and what happens when you call a virtual method. However,... 05 November 2010 6 min read
Simon Cooper Subterranean IL: Introduction Today, I’ll be starting a new series of blog posts on ‘Subterranean IL’ – a look at the low-level IL... 01 November 2010 3 min read
Simon Cooper There’s only one ThreadExceptionHandler There can only ever be one Application.ThreadException handler. Yes, you read that correctly. To give some context, the core of... 07 October 2010 2 min read
Simon Cooper Modifying built-in Visual Studio project templates As some of you may know, executable projects created in Visual Studio 2010 now default to the x86 build target... 17 August 2010 2 min read
Simon Cooper Introduction to open instance delegates Creating a delegate to a method is normally quite a cheap operation. However, there are some reflection-based situations where you... 27 July 2010 4 min read
Simon Cooper Implementing method override covariance on C# (Part 3) To recap from my previous post, we’re trying to create a class that has the same behaviour as an explicit... 19 July 2010 4 min read
Simon Cooper Implementing method override covariance on C# (Part 2) So, C# doesn’t allow us to change the return type when overriding methods. Could we do it in IL? For... 16 July 2010 3 min read
Simon Cooper Developing Schema Compare for Oracle (Part 6): 9i Query Performance All throughout the EAP and beta versions of Schema Compare for Oracle, our main request was support for Oracle 9i.... 03 June 2010 6 min read
Simon Cooper Why enumerator structs are a really bad idea (redux) My previous blog post went into some detail as to why calling MoveNext on a BCL generic collection enumerator didn’t... 20 May 2010 2 min read
Simon Cooper Why enumerator structs are a really bad idea If you’ve ever poked around the .NET class libraries in Reflector, you probably would have noticed that the generic collection... 19 May 2010 5 min read
Simon Cooper Developing Schema Compare for Oracle (Part 5): Query Snapshots If you’ve emailed us about a bug you’ve encountered with the EAP or beta versions of Schema Compare for Oracle,... 30 April 2010 6 min read
Simon Cooper Developing Schema Compare for Oracle (Part 2): Dependencies In developing Schema Compare for Oracle, one of the issues we came across was the size of the databases. As... 20 April 2010 9 min read
Simon Cooper Developing Schema Compare for Oracle (Part 1) SQL Compare is one of Red Gate’s most successful SQL Server tools; it allows developers and DBAs to compare and... 15 April 2010 8 min read