Progressive .NET Tutorials May 2013

Topics covered at #prognet

Wednesday, 29th - Friday, 31st May in London

12 experts spoke.


2013's theme: Single Page Applications (SPA)

SPA applications have become the next big thing, with MS even introducing template support for building them in Visual Studio. But for many people a SPA application still remains a mystery and the choice of libraries overwhelming. In addition, we will have a more general track that offers tutorials, as always, on best practice for .NET developers. If you want to understand the 'state of the art' our mission is to help you.

All of This year's Skills Casts have been uploaded and available below.

Excited? Share it!


Keynote: Ian Cooper

Ian Cooper

Polyglot Coding Architect in London, founder of #ldnug, speaker, tabletop gamer, geek. Tattooed, pierced, and bearded. The 'guv' on @BrighterCommand

An Introduction to SPA Applications

SPA applications have become the next big thing, with MS even introducing template support for building them in Visual Studio. But for many people a SPA application still remains a mystery. Other tutorials will expand on the concepts here - so if you have never looked at a SPA app before, this will be a good place to start before attending those.

We will use OpenRasta, JQuery, KnockoutJS and SammyJS for the demo app and tutorial but discuss alternatives.

Ian Cooper

Polyglot Coding Architect in London, founder of #ldnug, speaker, tabletop gamer, geek. Tattooed, pierced, and bearded. The 'guv' on @BrighterCommand

10 Deploys a Day, the .NET Way

Building the application is only half the problem. Whether you're building a single-page app, an MVC website, a Windows service or a full-blown SOA platform, you'll end up facing the same challenges - how do I make my app available for QA and testing? How do I release it into production with minimal downtime and risk? How do I manage database schema changes? What if I need to roll back a release but my customers are already using the new feature to store their own data? We'll discuss hosting options - physical, virtual, cloud-based - and how these choices can affect your release process, maintenance and monitoring requirements, and we'll look at how you can create a pipeline that supports Flickr's famous "ten deployments per day" for your .NET applications.

Dylan Beattie

Dylan Beattie is a systems architect, developer, and Microsoft MVP, who has built everything from tiny standalone websites to large-scale distributed systems. He created his first web page in 1992, and he's been building data-driven interactive web applications since the days of Windows NT 4. He's currently the CTO at Skills Matter in London, where he juggles his time between working on their software platform and supporting their conference and community teams. From 2003 to 2018, Dylan worked as webmaster, then IT Manager, and then systems architect at Spotlight (www.spotlight.com), where his first-hand experience of watching an organisation and its codebase evolve over more than a decade provided him with a unique insight into how everything from web standards and API design to Conway's Law and recruitment ends up influencing a company’s code and culture.

How javascript objects work

Come geek out about some of the most interesting parts of javascript and see how cleverly they work together to make it possible to write object oriented code. Whether you are a javascript beginner or have used the language for years, are interested in writing plain javascript or just understanding what your favourite framework is doing, this session will give you a deeper understanding of how the language actually works.

Helen Emerson

Helen Emerson has worked as a developer for the last ten years and is currently a technical architect at Totaljobs Group. She has experience with lots of different areas of web, from debugging javascript memory leaks to building backend services.

Hands-on with ElasticSearch

The tutorial will cover the following topics:

  • Search - basics and getting feet wet, the ElasticSearch REST and .NET APIs, mappings, field types, various query types and filters

  • The analysis chain and how to take advantage of that

  • Faceting - facet types, how to use and use-cases

  • Multi-tenancy and scaling out, and consequences

  • Monitoring and debugging

  • Percolation - the neatest ES feature of all

Itamar Syn-Hershko

An Elasticsearch Consulting Partner, Apache Lucene.NET committer, PMC member and a Microsoft MVP, Itamar is a recognized expert on Architecture, Search and BigData technologies.

Succeeding with Dependency Injection

Dependency Injection is a set of software design principles and practices that enable us to develop loosely coupled code. You will learn how to structure your code so that implementing an IOC Container becomes an implementation detail and not a source of obscure, hard to duplicate bugs!

Software prerequisites: Visual Studio 2010 or 2012.

Ian Russell

Ian Russell has nearly 20 experience as a hands-on software developer/solution architect, specialising in data-intensive OLTP solutions on the Microsoft stack.

Processing data with F# 3.0 and type providers

Along the way, we’ll use F# 3.0 type providers that integrate external data seamlessly directly into the programming language and we’ll use ASP.NET WebAPI to publish the results.

Please install a version of Visual Studio with F#

Don Syme

Don Syme is a Principal Researcher at Microsoft Mobile Tools and Microsoft Research, Cambridge. He works with researchers, Microsoft and open source communities to make better programming technologies, and, through that, make people more productive and happier.

Tomas Petricek

Tomas is a computer scientist and open-source developer. He is a Visiting Researcher at the Alan Turing Institute working on tools for open data-driven storytelling. He wrote a popular book called "Real-World Functional Programming" and is a lead developer of several F# open-source libraries.

Hands on with Backbone.js

Prerequisites: You should have some experience with Javascript and jQuery, you'll also need Visual Studio, Git, Chrome, and Fiddler.


Backbone Is a javascript framework for building a SPA site. It's a powerful, opinionated and easy to test way to build applications. We will cover the core components of Backbone including views, models, collections, routing and event messages. Aura widgetizes Backbone.js and lets you easily reuse components of your site. It also lets you communicate using a pub/sub pattern


Too many HTTP requests will slow down your site. Require is a file and module loader for javascript that lets you separate your code while you develop and deploy with a single optimised file without compromising on speed in production. You can also alias frameworks and easily upgrade or change your dependencies without changing your code (ie: changing from underscore to lodash).


Lo-Dash templating and utility framework that you can use with backbone, It is a fork of the underscore framework with speed improvements and lets you chain set operations together in a syntax that's similar to LINQ

Scott Cowan

Scott Cowan is the Lead Developer at SportingInsider.com on the Datamining and Search teams and a London based consultant.

Abusing C# for game development

Building a modern game is a complicated undertaking, requiring many different aspects of programming, from algorithm design to higher level architectures to directly driving the hardware. As software developers, we need to use the most efficient languages coupled with strong base frameworks to make the prospect of building a game financially viable.<

Software prerequisites: XNA or Monogame

Andrea Magnorsky

I ended up as a Software Developer, I am pretty sure there was no other viable option. My current technical interests are F#, games, programming languages and philosophy of computing . I really enjoy finding different ways to write code, sometimes for performance, other times for succinctness, sometimes, just because you can, there is no better way to learn than trying. When I am not working I tend to play with Haskell or other languages or cats Conferences and meetups are a great way to learn more, so I try to help when I can to make them happen. For that reason I co-organise Functional Kats and GameCraft. I also speak at local and international conferences like CodeMesh, Progressive.Net, ProgF#, Lambda Days and many more.

Single Page Applications with AngularJS and TypeScript and Simple.Web (oh my!)

Learn TypeScript and AngularJS together, by example: creating client-side controllers, directives and service-wrappers, and using data-binding the way it was always meant to work, all with TypeScript's type-checking compilation, IntelliSense and other tooling improvements, and next-generation JavaScript syntax (modules! classes! properties!).Use Simple.Web to build, quickly and easily, a high-performance, full-hypermedia API, with no hard-coded service URLs in the client-side code.Put it all together and you'll never want to write an application the old way again.

Mark Rendle

Mark Rendle is the founder of RendleLabs, which is really just him playing with .NET Core, Docker, Azure, microservices and so on and then teaching other people about it and helping them build clean, stable, scalable solutions. He is currently working on an online video learning site to bring his courses to a wider audience. He's been getting paid to do what he loves for nearly 30 years now, and still worries that somebody's going to notice and make him stop.

Hands on ZeroMQ

ZeroMQ is a high-performance asynchronous messaging library aimed at use in scalable distributed or concurrent applications. It has a very low barrier to entry, can be used across a wide range of systems and programming languages, and opens up almost infinite possibilities in terms of network topology. Not only for distributed systems, it can make concurrency programming a breeze – and whether you’re working across threads in a process or across servers that are continents apart, the same concepts apply.

Ashic Mahtab

Ashic Mahtab is a passionate and highly respected member of London's developer community, Passionate about Software Craftsmanship, Software Design, Messaging, DDD, CQRS, Event Sourcing, Git and Versioning and almost anything to do with software, Ashic regularly speaks about these topics at international conferences, meetups and user groups..

Web App Development With Meteor

What once took weeks, even with the best tools, now takes hours with Meteor. Meteor embraces web dev with seven basic principles:

  • Data on the Wire. Don't send HTML over the network. Send data and let the client decide how to render it.

  • One Language. Write both the client and the server parts of your interface in JavaScript.

    • Database Everywhere. Use the same transparent API to access your database from the client or the server.
  • Latency Compensation. On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database.

  • Full Stack Reactivity. Make realtime the default. All layers, from database to template, should make an event-driven interface available.

  • Embrace the Ecosystem. Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks.

  • Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Accomplish this through clean, classically beautiful APIs.

Gary Short

Gary Short is a freelance data scientist. He specialises in machine learning and predictive analytics on the Azure Platform, but has an interest in cloud scale analytics in all forms, especially computational linguistics and social network analysis.

Other Years