If you’re anything like me, you probably fire up VS.NET daily and just leave most of the myriad of configuration settings untouched. With VS 2005 just out and – well shall we say it being less than stellar in terms of performance and stability – I’ve been messing a lot with configuration settings to work around some of the issues it brings up more than I ever had in VS 2003.

 

The thing that’s giving me a headache today is the WinForm designer. It’s very slow even for the simple forms that I’m building at the moment for some small internal maintenance applications. It can take close to 20 seconds to switch between source and design view, with the designer going into some kind of circling loop where the cursor flashes for a while, while the CPU pegs out near a 100%. And I don't mean first load either, but just switching views back. Not always but I'd say half of the time.

 

As you can imagine it’s not optimal to switch back and forth between source and design view a lot. Not that this was fast in Vs2003, but it’s considerably slower in VS 2005 and VERY annoying.

 

This whole thing got me thinking about the whole tabbed interface in VS.NET. We kind of accept the Tabbed interface as the default and it looks cooler and no doubt is it more organized, but if you really think about it, a tabbed interface is a horrible interface to present lots of data *IF* the tab interface is slow. With a slow interface, there’s no way to do a ‘quick’ lookup of some related information you might need. A context switch and back can take 30-40 seconds even if you do the shortest of checks against your code somewhere and you know exactly where you're going.

 

So just for kicks I switched VS into MDI mode today. And it turns out that in some situations MDI is a huge boon. For one it’s possible to take advantage of dual monitors for your entire workspace. You can spread code windows, the class designer and the WinForm (or WebForm) designer across a huge canvas. And more importantly you can see multiple windows at once, which of course doesn’t work in a tabbed interface.

 

So I have VS open spanning two monitors, with the form designer and the property editor in the right monitor with the source windows and the class diagram in the left.

 

Today my challenge was that I needed to hook up some databinding controls using my custom databinding scheme (more on why I’m not using the new Databinding features another time). It works great and has since 1.x but one thing that it doesn’t have is a way to pick binding sources visually. So unless I can remember the name of properties or fieldnames I’m binding to, I have to go look them up in source code or in Server Explorer. With MDI I can keep both the source window and the designer open at the same time. Or better yet I can have the ClassDiagram viewer open and see the whole class hierarchy in a glance without even switching views. And even when switching to another window altogether it seems that the MDI interface is actually faster than the tabbed interface.

 

This isn’t to say I’ll keep working this way, but in number of situations using MDI can make you quite a bit more productive with the extra workspace area. Check it out.