Jan 30

http://www.developerdeveloperdeveloper.com/ddd8/

Today I attended DeveloperDeveloperDeveloper 8, or DDD8, at Microsoft HQ in Reading. There were, I think, several hundred delegates attending – with many more sadly disappointed. The event itself opened it’s registration and was completely filled in around 12 minutes! I was not able to register immediately due to a meeting at the office, but was put on a waiting list. Thankfully some kind soul cancelled their registration which allowed me to attend :)

There was a pretty varied schedule of speakers, including @RobAshton from my company’s vNext team covering Multi-tenant MVC Projects. Here’s a summary of the talks I attended and what I thought:

Test Driven Development to save, time, money and your sanity – Richard Hopton

I’ve not covered much TDD before and fortunately Richard was able to pitch his talk at just the right level. I was sat in with my old project manager and I think we both took a lot away from the hour we spent listening to the benefits of adopting TDD for software development.

I liked the way TDD actually forced developers to improve the way they approach their applications, encouraging a tidy, logical and concise methodology. We were demoed a work in progress DiamondMaker application that made it easy to see how a suite of tests could be used to provide QA, automation and improved design. Free swag included a fridge design kit for Expression Blend 3, utterly useless but rather fun!

Hello Document Databases – Neil Robbins

I wasn’t originally going to go to this, but I thought I’d give it a punt and see what happened. Neil gave a great introduction to the dominance of the now ubiquitous RDBMS and explored some of the problems – chiefly overkill for small web apps and for huge, fault tolerant data stores for distributed systems. In this instance we looked at Couch DB, although we could have covered the excellent Lucene project or MongoDB.

Couch DB offers a really different view on interacting with a data store; essentially doing away with SQL and connection drivers and replacing them with views (functions more or less) and a RESTful interface. I had a little go with it when I got home – replacing my SQL Server Management Studio Express with curl from a Linux Terminal app and passing in HTTP GET/POST requests and receiving JSON in return. Lovely stuff :)

Overall – very impressed with the content of the talk and it really sparked my curiosity to investigate using Couch DB for little web apps…

No swag from this one, and was disappointed to not receive any feedback when I tweeted for biscuits to aid my rumbling belly :(

An Introduction To Mono – Toby Henderson

I have dabbed with Mono before so had a fairly strong understanding of the implementation, IDE and features available so the first half of the talk was a little academic. What I wasn’t aware of was the excellent tools now available with MonoDevelop 2.2 – the tools I saw today were really amazing. MonoTools for Visual Studio really made cross platform .NET development a breeze – full support for remote debugging and testing, direct from Visual Studio.

Wow moment was watching an app get launch from VS, directed to a OpenSUSE VM host, hitting a breakpoint and returning to VS in the host OS. To say Mono development has come along is truly an understatement.

Swag: none. Boo!

C# on the iPhone with Monotouch – Chris Hardy

I have to admit I wasn’t planning to go to this one, originally favouring the Entity Framework talk. Somehow I ended up in this one, but I didn’t regret it. Chris delivered an excellent talk covering Monotouch for iPhone development. I can see real benefit in putting a C# abstraction layer on top of Objective-C/XCode. I had a go with Objective-C for a small Mac OS app last year and I found it a little fiddly, so being able to use C# to abstract it all away was a real plus.

I was hooked until the price of Monotouch was revealed – $399 for a personal license! Seriously!? Plus you’d need a Mac and iPhone to do any serious development. It’s a heavy upfront investment for individuals, but if you’ve got a good idea and can get your app past Apple’s dev-police, then you could be in for a real treat for stable, rapid application development :)

Swag: none again!

An Introduction to IoC containers with Castle Windsor – Mike Hadlow

I felt I had to go to this as some of my office’s projects make extensive use of the Inversion of Control and Dependency Injection design pattern, and I really didn’t know much about them. This was a real eye opener to me – I saw a lot of similar code to what I would write for quick ‘n’ dirty apps or for older apps I’d written.

By adopting these two design patterns I was able to see how a yucky .NET app using ADO.NET and a chunky main method could be abstracted two-fold:

  • Pull most functionality out of the Main() method
  • Introduce interfaces and data repositories to allow different components to be used, for example for data stores/logging providers etc
  • Using a container that effectively mimics a microkernel that defines the requirements of each ‘tenant’ of a system

Now I know we use StructureMap over Castle Windsor as a Container package due to configuration preferences so I’ll spend more time looking at that. But holy shit – what an eye opener into application design. How do we NOT make more use of this!? It’s really great to have something put to you that allows such a huge degree of flexibility but is actually rather easy to understand.

I really like the idea of adding extra messaging/logging/data providers. NHibernate with FluentNHibernate as a data repository? No problem. Maybe LinqToSql or Couch DB – also no problem. Great integration with MSTest/NUnit so TDD will, in fact, lend it self very naturally to this approach. I really need to look into mocking objects for this purpose too.

Swag: t-shirt, whoop

Final thoughts today

I think I have absorbed a huge amount of information from today’s event. Much more than I’d ever, ever, ever get from any corporate training event. I cannot state how useful this event has been to my professional development and would really like to thank a) all the speakers, b) all the people who turned up and c) Microsoft for hosting it and providing excellent hospitality and facilities. I’ll definitely try to make it to next year’s

Now to try and apply some of these new ideas to anything Drupal related… we’ll see!

Tagged with:
preload preload preload