Saturday I attended the Developer Developer Developer DDD10 conference held at Microsoft HQ in Reading.
There were some great talks throughout the day and I'll highlight a couple of the ones I attended.
DDD, CQRS and Event Sourcing – Neil Barnwell
First talk of the day from a first time Developer Developer Developer speaker (although you would never have known). Neil used a series of examples based around his current line of work (warehouse management systems) to put forward his arguments. He went through the advantages of using Domain-Driven Design for any applications that require more logic than CRUD (Create, Read, Update, Delete). I've been informed that this book by Eric Evans is good place to start for DDD and has been added to my reading list.
He went on to talk about how DDD lends itself to two other ideas: CQRS (Command Query Responsibility Separation) and Event Sourcing. CQRS as I understand it is essentially a separation of commands (which mutate state) and queries (which do not). This leads onto the idea of Event Sourcing, where every command triggers an event and these event objects are stored in sequence. Then you can do interesting things like replaying the events to rebuild the application state, or looking at at the state at any given time in the past. Neil pointed out that this could be really useful when debugging as you can see the precise sequence of events that led to a bug.
Developing real-time asynchronous web applications – Mira Javora
Mira showed a really interesting example of using SignalR to create real-time web applications. His example was a basic "Formula 1" web app that showed updates to race position, news etc.
He explained that instead of the client constantly querying the server to see if there is any new data, by implementing SignalR, the server establishes whether the client is capable of accepting real-time information and creates a persistent connection using WebSockets if possible (and if not it uses another real-time technique such as Long Polling).
From what Mira demonstrated, I feel there is a lot of potential in these type of applications and am looking forward to trying it out for myself.
Designing for Mobile – George Adamson
A lively talk from George that made me a think. He spoke about how the instinct is to design "desktop" apps primarily, then make a "mobile" app to fit around that by some means, whether that be by linking to the desktop site for full features or just omitting features altogether.
But, to quote George himself, "Mobile traffic has/might-jolly-soon overtake desktop traffic". We expect to be able to do the same things now whether we're on our smartphones, tablets or laptops and all these devices can be classed as "mobile". So almost every web application should be designed with this in mind and the solution he suggested is to place content as first priority and use responsive web design.
George then went on to explain various ways of implementing this and talked about good practices to bear in mind when designing for mobile.
Overall I would say DDD10 was great success and I will definitely be attended more of their events in the future. The Doctor Who cupcakes helped too (not a fan of the show BTW, but they were delicious)