Saturday marked the 8th annual DeveloperDeveloperDeveloper conference at Microsoft’s Reading HQ in the UK. This is a community event organised, run and attended by the community and with no Microsoft speakers. This is the third one I’ve been to and found it very difficult this time to choose between the sessions as they were more varied than normal. Here are some of my thoughts about the event and the sessions I went to in particular. I’m looking forward to getting the videos so I can catch up on the other sessions I had to miss out on. Update: videos of a few DDD8 sessions are up on vimeo.
First up was a morning of MVC, firstly with Real World MVC Architectures by Ian Cooper, which was an eye opener, as even though MVC enforces a separation of concerns more so than webforms, there are many architectural pitfalls you can find yourself getting into. He suggested the use of a web testing framework such as Fitnesse or Cucumber to assist producing testable, well-written code. Rob Ashton’s Multi-tenant ASP.NET MVC Projects (Or 30 very different customers and a single codebase) did a fine job of explaining the reasoning behind his MVC pattern which allows for a single codebase whilst still providing the flexibility for hosting many customers wildly varying requirements for their web applications.
Jon Skeet’s C# 4 presentation was up next, and was massively popular with the audience. I’ve not had the opportunity to use any of C# 4.0’s features, with improvements in the core language to aid COM interop, namely for integration with Office, to bring it into line with VB. These include support for named parameters so you don’t have to explicitly define all arguments to invoke an Office interop method (i.e. you can leave the 12 Ref.Missing’s from your invocation). Some other new features included optional parameters, covariance and contravariance; Jon did a stunning job of explaining the latter terms. He also provided an overview of the dynamic keyword (not to be confused with var) which allows for better scripting and integration with IronPyton and IronRuby, and a permits a functional-like programming style within C#.
After the staple lunchbag it was time for the Grok talks. I was especially impressed with Rory Beckers overview of CodeRush Xpress for refactoring code – need to check that one out. Also was Ben Hall’s talk on Rake (syntax looking a little like Unix’s make) for scripting build and deployment processes.
Next up was Simon’s talk entitled Entity Framework - How to stop your DBA from having a heart attack. The main take home point was to look at the SQL being generated by the entity framework as it’s not always the most efficient implementation. He showed us some simple Linq that would intuitively be implemented by a simple inner join but the resulting query generated by the entity framework was a mess. Some of these issues are going to be fixed for Entity Framework for .NET 4.
Lastly was Barry’s talk on A developer’s guide to encryption. Barry did a great job keeping focussed and delivering the presentation in adversity; it was hijacked throughout with good luck and congratulations videos from community members ;) Barry covered several important points. At minimum sensitive data (such as passwords) should be hashed (with SHA-256 and above preferably) with a salt (anything unique to the user; a username or email, to prevent rainbow table attacks). The .NET framework has rich crypto support.
So a day of very varied talks, and plenty of swag to boot. Thanks to all those who organised and helped make DDD8 a success, from the various user groups to Microsoft for the use of the building for the day. DDD8 had a few milestones this year; registration filled up in 15 minutes and the #ddd8 hashtag was the 3rd most popular in the UK. I’ll need to be on the ball to get registered next year…