Who am I?

This is the first post in my Red Gate Blog so I think I’d better introduce myself a little bit. I’m the main programmmer on the SQL Data Compare engine one of our suite of best selling SQL Bundle tools, currently I’m working on the latest version which will support the new data types in … Read more

An interesting article about ASP.NET and SQL Server Performance

While reading through the excellent http://blogs.msdn.com/ I noticed this post by Todd Carter talking abount ASP.NET and SQL Server Performance, in it he talks about compiler locks slowing down stored proceedure execution. Aparently this occurs when The user that runs the stored procedure is not the owner of the procedure AND The stored procedure name is not fully qualified … Read more

XP SP1/SP2 system DLL’s

Last week I found out that sometimes XP SP1 dlls are labelled as xpsp2. A client had DLLs that were labelled xpsp2 for example comctl32.dll  6.0 (xpsp2.050831-1533) c:windowswinsxsx86_microsoft.windows .common-controls_6595b64144ccf1df_6.0.2600. 1740_x-ww_7cb8ab44comctl32.dll  However just because the DLLs are labelled xpsp2 this does not mean that they are Service Packl 2.Infact they are late XP Service Pack 1 DLLs!… Read more

Common Controls and "invalid window class name"

Last week came across a weird issue. A .NET 1.1 program was throwing up a weird exception when running on XP SP1, with a manifest. (The problem disappeared if the manifest was removed). We were sent the stack trace This highlighted several issues. Firstly that native windows are only created in .NET when they are … Read more

Windows Keyboard short cuts

Here is a list of some of the windows key board short cuts (thanks to Tilman): Keyboard Meaning Windows key Start menu Windows key + D       Minimize all windows to Desktop Windows key + D Restore minimized windows Windows key + E Windows Explorer Windows key + L Lock Desktop Windows key … Read more

Lock Free Datastructures

Hidden away in the System.Threading namespace is the class Interlocked. This class provides atomic operations on variables. The method System.Threading.Interlocked.CompareExchange is the .NET equivalent to the Compare and Swap primitive. It basically does the following in an atomic fashion object CompareExchange(ref object o, object p, object q){            if(o == p)            {                        o = q;                        return p;            }             return … Read more

World Usability Day

Thursday 3rd November is World Usability Day. A day that is hugely anticipated.  Millions will take to the streets, trying to catch a glimpse of their favourite usability guru, sagely administering sermons on the woes of unusable products.  I can see it now – it’ll generate almost as much fervour as the results for the … Read more

Freeze Painting

We use a large amount of thrid party controls in our UIs however some of these do not always behave as expected and ignore BeginInit/BeginUpdate/SuspendLayout. I came across this work around for this problem the other day: You can then force a control to stop painting by setting FreezePainting to true, just remember to do it … Read more

.NET Combo Boxes

It occasionally strikes me as hilarious that in the 21st millenium with Windows Vista near on the horizon with all kinds of spangly UI likely to result, we’re not only still using some of the oldest Windows UI primitives every day, but encountering problems using them. You’d think that we might have got it all … Read more

Aesthetically usable

If there’s something that eats at the very nub of a usability guy’s reason to be, it’s that usability is something a consumer frequently overlooks during their purchasing process. If you ask them if they think it’s important, they’ll be plenty of nods and mumbles about how much they value usable products, but something seems … Read more


Ever heard of NEDS? It’s another handy acronym in a world full of HIMPERs (An acronym I just made up, but it looks pretty convincing if you ask me).  So NEDS stands for: New Economy Depression Syndrome and it’s something that is apparently increasing in the hectic lives we lead.  Gone are the days when … Read more

.NET Oddities #2

I had a feeling I’d be writing quite a few entries like this, but I must confess that even I would have been surprised if you’d told me I’d be writing #2 a mere two days after #1. So what is it this time? Well, it’s StackOverflowException. Jeff Richter has this to say about StackOverflowException … Read more

Microsoft radically re-design the Office UI

Microsoft’s new Office UI This could be an unmitigated disaster if those mighty Microsofteees misjudge how their users use the various office applications.  In theory, it’s a great idea – like one big context sensitive menu for whatever it is you’re doing at the time.  Why show the user every darn widget in your arsenal … Read more

Performance of structured storage files.

We’ve been working on a new version of our DTS Compare tool for a couple of months now, and it’s starting to look quite good. I’ve been working on the snapshot functionality today, which allows a user to take a snapshot of the state of all the DTS packages on a given instance of SQL … Read more

.NET Oddities #1

Every now and then I come across something slightly bizarre in .NET, so I’ve decided to write about it, as much as anything else because I’m aware of having come across quite a few things like this, but find myself unable to remember what half of them are, so it might prove to be a … Read more