Jul 17 2009
OpenSource .NET Exchange III
I had a great time yesterday at the Opensource .NET Exchange III. Opensource .NET exchange is a meeting of .NET enthusiasts organised by Skills Matter every six months in London with lots of speakers giving 15 minute talks on different subjects, loosely related to opensource and .NET, with lots of time for socialising over beer and pizza.
The event started with Phil Trelford talking about SI system units of measure and how they fit into F# programming – apparently from the next release this language will have static compile-time checking that you’re using metres, grams and units such as that correctly without requiring you to implement a special class only for that. Phil well earned the appluause from the crowd when he launched a lunar lander game developed entirely in F# based on units of measure, the first practical application in F# that I’ve seen.
Dylan Beattie again did a very interesting presentation, this time on web deployment with MSDeploy and Web Platform Installer, two new Microsoft’s tools for web deployment. He started by going through a list of problems that people typically experience when they want to try out an opensource .NET web tool: setting up the correct version of ASP.NET web platform, SQL server, dependencies, configuring web.config, machine settings and IIS. Dylan then showed the Web Plaform Installer Gallery, a very interesting solution that automates installation of popular applications – comparing it to the Apple iPhone AppStore. Web Plaform Installer Gallery has installation scripts for lots of popular web projects so you can just install them with a few clicks. Dylan then explained how MSDeploy and Web Platform Installer work together to provide this functinality and how teams can use them to automate in-house web site deployment and synchronising development, test and production servers deployments.
David Ross presented MPI.NET, a library that helps organise computing clusters for Fork/Join parallel calculations. MPI (Message Passing Interface) is a standard for message interchange and collaboration for distributed processing, and MPI.NET is a wrapper around the original C API that makes it easier to use and exposes a .NET interface. David talked about Fork/Join and Map reduce patterns and demonstrated how MPI.NET helps write those with very little code.
Alan Dean then talked about Openspace coding days, a community project that started in January as a spin-off of the Alt.NET UK conference intended to be more practical. Openspace coding days are organised without a pre-determined plan, where attendees vote for topics of interest and then participate in workshops on those topics. These workshops range from well established technologies and practices to collaborative learning of a completely new technology or tool.
Scott Cowan demonstrated Spark, a view engine that has the advantages of intellisense support, being able to generate HTML using a command line tool and being more readable than ASP.NET tags. Spark uses special HTML elements and attributes and should look much more familiar to people who know HTML than ASP.NET or NVelocity. One of the more interesting things in the demonstration for me was how loops and conditional logic can be attached to normal HTML elements, such as DIV, avoiding the introduction of custom tags.
I presented how Concordion.NET helps us implement acceptance tests in plain English. Concordion.NET is a port of Concordion acceptance testing framework, originally developed by David Peterson and converted to .NET by Jeffrey Cameron. It works on HTML files and uses special HTML attributes to mark inputs and expected outputs of acceptance tests, allowing us to write and manage tests in free-form HTML text. Concordion.NET integrates with Gallio and links HTML documents to domain code using MBUnit-like fixtures. You can download the slides from resources.
The event ended in what is almost becoming a tradition, Sebastien Lambla presenting his Openrasta web framework (and working on the code to present until 10 minutes before his talk). Openrasta started as a REST framework which Sebastien presented at the first exchange, then became a MVC framework (implemented probably during the second exchange) and yesterday Sebastien demonstrated using embedded pre-compilers for ASP.NET and a standalone service, along with a new view engine based on C# with full intellisense support, so I guess OpenRasta is becoming a web server now.
In retrospect, I really enjoyed catching up with lots of people and I look forward to the next exchange. Next time I should really remember to start drinking after my talk, not before, or arrange to go earlier in the schedule.
![]() |
![]() |


