The third ever DDD North was every bit as good as the first two. I saw five great talks, chatted to lots of people but unfortunately didn't win anything.

Making 3D Games With MonoGame - Richard Garside (code)

This was an introduction to MonoGame, an open source implementation of XNA which is also cross platform. It covered importing models, setting up cameras and basic animation. After about thirty minutes or so I decided that MonoGame was too much like hard work for my liking. I've been attempting to learn Unity3D recently and it's possible to achieve the same results with significantly less code. Admittedly MonoGame is massively cheaper than the pro version of Unity3D but I think I'll stick with Unity3D free for now.

Scaling Systems Architectures That Grow - Kendall Miller

In this talk Kendall managed to simplify a very complex problem, scalability, into four simple points. He said to enable scalability you must:
  • Use asynchronous processes. If it's not critical, do it later
  • Cache. Don't do work you don't have to. The fastest query is the query you don't run
  • Distribution. More servers, more computing power. This is not easy so should be attempted after the first two points
Kendall also highlighted that the most significant problem when scaling is consistency, ensuring all users see the same state. 

Obviously this is a simplification of a sixty minute talk but the bullet points are worth remembering.

Cross Platform Mobile Development in C#  - Ross Dargan (code)

Xamarin was the subject of this talk. Xamarin is a framework for creating cross platform mobile applications. One of the pain points when developing cross platform is the lack of shared code. In this talk Ross demoed several ways of sharing code between platforms and highlighted their pros and cons. Essentially all business logic can be shared and much of the view model code as well. Primarily only the view code can't be shared. Each view must be created natively. So Android apps views are created using XML, WPF apps use XAML, etc. Useful stuff.

MongoDB for the C# Developer - Simon Elliston Ball (slides)

NoSQL is something I've been wanting to play with for a while and this talk showed how easy it is to start using MongoDB  Setup, basic queries, replication, storing large documents and database structure were all covered. Interestingly Simon also included a comparison with RavenDB  I think at this point I'd still favour RavenDB as the in memory database sounds useful and transactions are ACID.

Testing Crap in Web Applications Like ASP.Net MVC - Rob Ashton (slides)

Sixty minutes of rant from Rob, I expected no less! You have to concentrate hard otherwise you'll miss something. To be honest I'll still not 100% sure how to do fast UI tests in my day job, but when I left I was damn sure I wanted to try. At some point, when I find the time, I want to check out PhantomJS and coypu that were mentioned. Rob and others have convinced me that UI tests can be incredibly useful since each one covers so much code. Unfortunately in my experience they aren't easy to set up. One day I'll get it right.