Visual Studio – begging for the Ribbon

by Matt 24. February 2009 19:29

Jason Zander’s just posted images of the new Visual Studio 2010 UI. It looks nice enough, but apart from the new editor, it doesn’t really amount to much more than a new palette for the toolbars and docking window chrome.

The multi-monitor support is a step in the right direction, but just seems to be allowing an editor window to be undocked. Something Studio Tools has been doing for a while.

But, you know, where’s the Ribbon?

If any application was crying out to be Ribbon-ised, it’s Visual Studio. The whole point of the Ribbon was to be an easy way to surface the many features of Office that were getting lost in the multitude of menus and toolbars and dialog boxes.

And guess what? Visual Studio has even more menus and toolbars and dialog boxes than most Office apps. It’s also got way more than Paint or Wordpad.


I think it would work really well. Most of the tool bars are contextual – tools for dialog layout or class diagrams or CSS editors or whatever. These can be taken care of when you switch to a new document (file) with the standard contextual tab blocks (and would fix the current really annoying behaviour of toolbars appearing and disappearing and moving the document window up and down whenever a window gains or loses the focus).

Even the multiple modes of the program could be handled. Editing is fine, building is transient and should (hopefully) be over quickly, so let’s just disable tools that don’t make sense. And debugging would just need it’s own tab. Perhaps put the “start debugging” or “attach” in the Home tab, but then automatically switch to the Debug tab and you’re sorted. All the edit tools would still work, thanks to edit and continue (which I really can’t seem to get working. Don’t know why).


In fact, the only potential problem I can see is how to handle all of the various tool windows – and there are a lot of them in VS. Solution explorer, class view, properties, find, find results 1, find results 2, output, error list, tasks, watch 1, watch 2, locals, autos, call stack, blah blah blah. Managing these is hard. Should each tool window get a toggle button in the Ribbon somewhere? Isn’t there a better way of managing these?

I don’t know. Perhaps it’s coming. Later.

If not, it’d be a killer plugin to write, if anyone could pull off such voodoo.


Announcing Contrib

by Matt 21. February 2009 19:21

I’ve just flicked the switch and published the xunitcontrib project on Codeplex. My first Open Source project. How nice.

Hopefully, will need no introduction. It’s a very nice unit testing framework; minimalist, idiomatic and opinionated.

The only problem was, the ReSharper runner kept crashing.

So after getting the source and getting a little carried away fixing a few other bugs, I wanted to contribute the changes back. Only to find that the project leads, Brad Wilson and James Newkirk, were looking for someone else to maintain the ReSharper runner (it’s a moving target for them, and I believe neither of them use it).

And so here we are with the xunitcontrib project.

Currently, it’s just the ReSharper runner, but I want that to change quite quickly. I’ve created a Roadmap page on the project site to list some ideas. I want to keep updating the ReSharper runner, and I want to add a nant runner, but I really want to get to the meat of the project – the xunitcontrib.dll.

If you look at xunit, it’s split into 3 parts, the core, xunit.extensions and samples. I see this project as sitting between xunit.extensions and samples. Second party extensions, if you will. Extensions that can afford to have a narrower focus than the framework, or perhaps they don’t quite adhere to some of the core sensibilities of xunit (the ordered tests in the samples is a good example of this – xunit randomises tests by default).

Another thing I’d like to see is a way to ease migration towards xunit. I want to use xunit at work, but the projects I’m working on have too much of an investment in nunit, and the inertia this has built up is rather daunting. I’d like to make it easy to just start using xunit. That said, I’m not too sure what this would look like.

So if you’ve got any comments or suggestions, then please post them to the Discussions page or raise a work item in the Issue Tracker. Or just go grab the download for some ReSharper test runner goodness.





Month List


Comment RSS