November 2008 - Posts
MbUnit 3.0.5 has added support for Visual Studio 10, as before you can now run MbUnit tests direct from the VS test runner. Don't take my word for it though, check out this video from Karen Liu (lead PM on the C# and VB.NET IDEs). If you are playing with the VS10 CTP then you download the MbUnit support here.
Last week Phil wrote about the concerns of webform developers that Microsoft was leaving webforms behind in favour of the MVC framework. As Phil writes that is clearly not the case and webforms is enjoying a lot of technology cross over from the MVC framework, which brings me to my post. What I don't want is another webforms\MVC framework flame throwing war (since such things serve no one), what I do want is for webforms to enjoy more of this cross over, be a better framework and let me go home on time at night. As we all know webforms does not lend its self well to certain models of development, its concerns are mixed; TDD and SOC (MVP patterns for example) are clumsy. You might say "we have MVC for that..." but the biggest problem is one of the investments in style, skills, technology and time that a business has put into webforms and it not sticking to the MVC way. Webforms can still be webforms but what I'd like to see is a little more cross over so that all time and money is not wasted but you can use (or not if so wish) your own style of software engineering. What springs to mind beyond what MVC has already given is...
Webforms use the MVC view engine.
SOC for the code behind, just a plain old class please.
SOC for everything else, testability and mockability everywhere.
Now if I had a plane ride due I'd likely just hack up the view engine and build my own but food for thought all the same, what's your take?
When you are writing code it is common to think "I may need XYZ" but I am not really going to need it, Agile advocates using the available time as best as possible and if you do not really need it then why waste time? Agile also advocates refactoring to improve and tune your code and these two concepts fit together, consider very carefully when refactoring what your code does and if you really need said refactoring. Ron puts it best
The best way to implement code quickly is to implement less of it. The best way to have fewer bugs is to implement less code.
First showed at the PDC as a part of this Pex session was support for contracts, if you have seen the Spec# project before then you would be on the right lines (same team has worked with the BCL team to deliver his). More details in the Pex session as well as the post from the BCL team.
I just watched some of the keynote at Tec-Ed Europe, here's what I liked.
WPF editor - I had wondered about this but the zoom out\in can be useful for large code files, however, I'd like to see some what of marking up sections of code to make it more useful so that by zooming out I can see the block of code that is most useful to me. Also some way of marking up code coverage blocks etc would be useful to see at 70,000 feet - maybe one for the NCover gang. The comments view feature was also rather nice but not sure how useful it actually is (got some cheers though).
UML in the class file.
Test recording and debug profile, this is super useful to debug a testers session. However I do wonder how other factors would be weighed in here, database state and other enviromental factors would be considerations in the enterprise and debug profile alone would not be enough. I liked the video recording of the test session, I wonder if voice (as I way of allowing the tester to narrate what they are doing\seeing) would be cool as well. The integration into VSTS looked fluid as well.
Team Lab - this was a very short demo and I need to see the other videos to get a better idea of this but I like the sound of it (more on this later maybe).
Here's what I wondered about
The refactoring features reminded me a great deal of R#, with some of those features now included I can only wonder what R# 5.0 will give us.
The code explorer looked a great deal like NDepend (but with none of the drill in\query language goodness of NBehave). Again I can only wonder what Patrick and co will give us in VS10.
The StyleCop add-on for Resharper has really gathered steam and Howard has announced a new release. Loads of great features and it really makes the two a killer combination. I do hope that that StyleCop is open-sourced (or open license Microsoft use), the tool is a great tool but it has real pain points (adding new rules and a couple of bugs) that the community could help iron out.
Running behind on everything again, picked up a nasty stomach bug that laid me out for a few days (not being able to pick Darcey up was a not nice but making up for it now with hugs-a-plenty). My thanks to Rob for the reminder that my long time wish has been granted and the C# team has added a form of Co\Contra-variance to C# 4.0. Charlie Calvert, Community PM for C# has the details although I do recommend that as background reading you first read Eric Lipperts series.
The last few weeks for me have been rough with news of a serious illness in my extended family. As such I have missed a great deal of the PDC and other news. Due to this I have also pulled out of the DDD conference next month, my thanks to all that voted for it and hopefully next year I will get my wish to take MbUnit to a wider audience.
Most of the PDC has been reported to death so I won't rehash it, however closer to home was the 'Future of Unit Testing' panel that featured folks such as Peli, Jim Newkirk and our own Jeff Brown. I understand that Phil Haack was also going to show off the MS MVC frameworks ability to work with a range of unit test frameworks (MbUnit included) but I have yet to see his session to see what he showed. Lastly our own Ben Hall was also at the PDC and will be taking his Pex session to DDD, be sure you don't miss that.