Saturday, October 19, 2013

DDD North 2013 - Beyond the Automated build + Rx

Continuing on from my previous posts regarding my time at DDD North 2013, the third session I attended was Beyond the Automated build. I think this was the only session I walked out of feeling that I would have liked to have seen a little more. It introduced a lot of products but we never got to see any of them in action to any degree.

The forth session, on Reactive Extensions was an enjoyable introduction to the technology (and marble diagrams!).

Automated build is not the end of the story
This session proved to be a demonstration of a number of software packages (Microsoft and non-Microsoft) which are available to help extend the build process beyond the automated build. The focus was mainly on provisioning VMs and auto deployments to these VMs.

In the Microsoft stack, the main products mentioned were:
System Center - VM Manager 2012
System Center - Operations Manager
Visual Studio and Team Foundation Server VM Factory

In the non Microsoft stack, the main products mentioned were:
DevOps Workbench Express Edition (ALM Rangers)
Octopus
Build Master
Puppet
Chef

Richard Fennell provided plenty of advice regarding what we could pack into a build process  - ensure your automated build outputs a deployable package, build once - deploy to many environments, use config transforms to handle switching between environments. It was just a shame that we were introduced to numerous products but not actually seeing any of them in use. It would have been nicer if we could have been introduced to fewer products but got to see more detailed examples of how they could be utilized.

Tyrannosaurus Rx: slaying the event-driven sauropod with Reactive Extensions for .NET
This was an introductory session on Reactive Extensions. Exactly what I was after! John Stovin took us through a series of examples to introduce us to the benefits of using Rx. The biggest eye opener for me was that Rx is all about inverting IEumerable. Instead of pulling data out you are having data pushed to you via IObservable which is coupled with various options for threading, filtering and many more things.

John's examples demonstrated using Rx for handling the standard .NET event pattern and showed using very readable code (fluent syntax and method chaining) how you can filter on events with ease using Rx.

As primarily a web developer, I am not 100% sure where I can use Rx in a server side scenario yet but am sure there are plenty of uses for it on the client side - Especially as there is a Javascript version of Rx available!

John's Rx code examples can be found here.