Today was the first fully packed schedule. Lots of notes still to write up but here’s a quick overview of what happened.
First off I went into the Building Rich Web Applications using Silverlight 2 session. Kathy introduced a 200 level session on what kinds of things Silverlight 2 can do over Silverlight. The answer basically is a heck of a lot more. Most importantly now having been built on top of the .NET Framework, it means that you can leverage the power of the framework with the rich presentation controls offered through Silverlight.
The use of a video streaming site as a demo kept enough attention going. I’d have preferred more time to examine the code she’d used to pull in XML data and then format for display but it was an overview session. Her ‘Hola World’ application was very effective when using a VideoBrush to quickly paint media assets into simple controls.
Second session was on Team Foundation Server Work Item Use and Planning with Chris Menegay. If Chris gets paid on words per minute, he’ll be making a fair buck! He crammed a heck of a lot of useful information with his experience in the field into a standard Breakout session. Some of his best practice tips were very valuable and it made me realise that anyone using a Team Project template out of the box really needs to understand what they’re doing first. No one template will necessarily fit the business demands straight away: for example, the order in which states of tasks may progress from Active to Resolved to Closed may change between businesses. It’s made me want to go download a project template and go rooting around in the XML again to understand everything that’s going on under the bonnet. Chris’ other very useful suggestion was to make sure that any Process Template editing should go into its own Team Project in TFS to manage changeset history rather than just hacking XML.
After lunch, I went to see Roy Osherove’s ‘Sense and Testability’ talk in the auditorium and had a brief chat with Sarah Blow of Geek Girl Dinner fame (the power of Twitter) and it was great to meet her and put a face to the name. Roy’s talk was excellent and it’s already sent me off researching new methods of unit testing. I was pleased to see some of the approaches we’ve been taking recently in using public properties to allow for mocking, rather than prescribing Constructor overloads (mandatory vs optional) were mentioned.
The other interesting suggestion was to make every class a virtual class. Whilst seemingly going against the OO principle of encapsulation, it does allow for test methods to be over-ridden. For example, if you had a method which simply retrieved the current time, overloading this virtual method in a test class derived from the virtual base class would allow you to return any time you chose.
Neil had been to a Scrum session and it bears a lot of similarities to how we’re working currently, anyway.
Finally at the end of the day, we both went to ASP.NET MVC Practices which was a pretty deep dive into areas which are still pretty much up for debate as the toolset moves from Beta towards RTM. Maybe Hadi Harini had firmer information than is available from the MVC website.
A very useful tip was to write tests to test your Routing class and to remove the default catch-all route (controller/action/param) that is created to avoid patterns that you want to fail to match then serving back a page that maybe not suitable.
More to follow once I’ve decrypted and rewritten my notes.