DDD

DDD10 - September 1st 2012

Proposed Sessions

People can submit on any topic they like. The sessions go to a community vote so the community decides what they ultimately want to see.

Voting on the agenda will open soon. Here are the sessions that have been submitted.

Jimmy Skowronski - C# + PowerShell = happy couple


Windows PowerShell is a great tool for system administrators and normal users alike. One of its design principles was extensibility. It provides powerful scripting mechanism but is also very easy for developers to create new tools and utilities to be integrated with PowerShell. It provides easy to use SDK that eliminates many tasks that typical command line tool would require.


The session introduces into PowerShell development from the ground up. You will learn how to start and the basics of argument processing, output and pipeline processing. We will also look at error handling and diagnostics to end up deeper in custom types and type conversion. After the session you will be able to sit down and write a tool your system administrator will love you for.

Find out more about Jimmy Skowronski


Paul Stack - Good VCS practices help to deliver software faster

Traditionally, version control systems have made it easy for developers to take a branch of the codebase and work in isolation. The excuse for this was so that code could be worked on without being corrupted by others or corrupting other features. It’s very easy for these branches to become long lived and a place for developers to hide what they are doing with the code. It could also became a headache merging the work back to the mainline. This is completely against the concept of Continuous Integration, where developers check into the mainline at least daily.

In this session, Paul will talk to developers about managing their source code and suggest that there are no real needs for long lived branches. With good process, all check ins can be made to the main line. Paul will discuss the different ways that unfinished features can be handled in these check ins and that the code can be ready to deploy at all times.

Outline:
- Discuss the issue with feature branching
- Talk about the need for trust in development teams to check in good code
- The need for good tests around code
- The use of branching within the code itself
- Feature toggles as a way for all developers to be able to release features quickly

Find out more about Paul Stack


Mira Javora - Developing asynchronous real-time web applications

Achieving a truly real-time web application with the stateless HTTP protocol can be challenging.  Retrieval of new data with web-client has traditionally been achieved by continuously polling the web-server.

In order to accomplish a more sophisticated solution, clients can use long-polling with AJAX or web-sockets. Combined with JQuery and JSrender, we can easily create a true real-time experience, where data is pushed to all clients immediately.

This session will demonstrate how to create an asynchronous web application based on the publish-subscribe pattern with .NET back-end. We will cover the basic architecture, background and the publish-subscribe model. The main focus will be on getting up and running with your first real-time asynchronous app, which will be based on MVC4/SignalR/JQuery/JSrender.

Find out more about Mira Javora


Yan Cui - Introduction to Aspect-Oriented Programming

Aspect oriented programming is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns.

This talk is for programmers who are curious about AOP and how it can help you:

  • write fewer lines of code
  • write cleaner, more concise and more maintainable code
  • produce fewer defects
  • produce more reusable code
  • be more productive!
Imaging writing a tracing or exception handling aspect once and never have to write those boilerplate code ever again!

With plenty of code examples, I'll show you how to write reusable aspects (e.g. logging, validation, async, memoization...) in dynamic proxies, functional programming (F#), dynamic language (Python) and PostSharp attributes.

Find out more about Yan Cui


Stuart Leeks - ASP.NET MVC gone wrong

[Co-presenting with Simon Ince]


Stuart and Simon have worked with a wide range of customers building with ASP.NET MVC and have seen a wide range of ways to build a site with it. Attend this session if you want to find out how not to build a site in ASP.NET MVC!



Links from the session are at : http://bit.ly/ddd10-mvc-gone-wrong


Find out more about Stuart Leeks


Joel Hammond-Turner - Real-World Lightswitch - Pleasure and Pain

Visual Studio Lightswitch 2011 (catchy!) is the new Access - at least in terms of writing Line of Business applications. 

In this session I'll cover some of the wins and pitfalls  for using this tooling in the real world - including WHEN to use LightSwitch (and when not to), how to get Lightswitch to play nice with NuGet packages, how to integrate LightSwitch applications with your TFS build process and how to deploy and debug a LightSwitch application on your live servers.

Find out more about Joel Hammond-Turner


Colin Gemmell - Going off the MVC Rails

MVC is often thought of as the architecture of a Ruby on Rails project. With the views, controllers and model all living in there neat little folders and no where else. This has been great but as we are now seeing legacy rails apps becoming just as difficult to work with as in any other language what went wrong with the utopia that was supposed to be Ruby on Rails.  Well as Bob Martin pointed out* we forgot that MVC is presentation pattern not a architecture.

In this talk we will take a practical look at how to bring back architecture to Rails projects. Pulling from Bob Martin’s presentation and other source we will see how to keep your Ruby projects from becoming just another ball of models, views and controllers.

*Bob Martin 2011 Mid-West Ruby Conference “Keynote: Architecture the Lost Years” http://www.confreaks.com/videos/759-rubymidwest2011-keynote-architecture-the-lost-years

Please Note: This is not a beginner’s talk on Ruby on Rails. You will be expected to know the basics of Ruby and Rails and the wider Ruby eco-system

Find out more about Colin Gemmell


Stuart Leeks - High-speed ASP.NET MVC


ASP.NET MVC has quickly become a popular framework for .NET web developers, but there is often a perception that it is quite manual and slow to work with. Do you share this view? Do you want to find out how to avoid having more attributes than properties in your models? Do you want ASP.NET MVC to read your mind? If you answered yes to any of these questions (except maybe the last one) then attend this session to find out how you can add your own conventions on top of those the ASP.NET MVC, and how to get ASP.NET MVC to do even more for you.

Find out more about Stuart Leeks


Guy Smith-Ferrier - Planning Your Internationalization Strategy


This session is different from most other sessions at a developer conference. It is aimed at project managers, team leaders and developers. The goal is to provide sufficient awareness of internationalization issues to allow attendees to plan a strategy for internationalizing a .NET Framework application. The problem faced by many projects is that there is generally a low awareness of the issues involved in internationalization and this leads to projects bolting on internationalization solutions as the project develops and as the team members become aware of internationalization issues. The purpose of this session is to introduce all of the concepts which require a decision to be made. It can be regarded as an upfront checklist for project managers and software architects. This session covers the issues, potential solutions and their pros and cons so that decisions can be made before a line of code is written.

Find out more about Guy Smith-Ferrier


Phil Collins - Rewriting software is the single worst mistake you can make – One year on!

Joel Spolsky once said that rewriting software from scratch is the single worst strategic mistake a software development company can ever make.[1] We all know of the Netscape story and the never-released v5.0. So as a developer how do you react when you're faced with the fact that there is little other choice than do exactly what you're told you should never do.

During this session I will describe how as a team we are managing to beat the odds and rewrite our main flagship product from a legacy platform into VB.net; as well as describing the decisions behind the choice of language, the choice of development methodology, how we built the project plan, what has changed since we started, how the plan and we have adapted, how we learnt from our mistakes and our successes, how working with Bournemouth University and their study of our rewrite has helped us, and whether or not we still think it's something you should never do.

Almost one year on since I last spoke about this project and two years into the rewrite project as a whole it's time to bring everyone uptodate with how it's going and what's changed over the past year.
 
[1] Joel Spolsky, Things You Should Never Do, Part I - http://www.joelonsoftware.com/articles/fog0000000069.html

Find out more about Phil Collins


Nathan Gloyn - Inversion of Control: containers Vs handrolled - how they compare

Dependency injection is a technique that helps you build loosely coupled code but do you have to use an inversion of control container to be able to do use the technique?

In this session I’ll contrast performing dependency injection without a container to how you do it with a container and what if any benefit there is to each way.

Find out more about Nathan Gloyn


David Walker - Geographical distribution: a lazy man's guide

If you're developing an internet facing application, chances are your users are distributed around the globe. Providing the highest level of service to everyone means that you need to move parts of your application as close to your users as possible. In this talk I'll go over some simple techniques that you can easily implement, such as using a CDN and sharding your data, to help you deliver a fantastic experience to everyone.

Find out more about David Walker


Andrew Westgarth - IIS Express for Developers


Want to develop Web Applications for IIS using Web Matrix and Visual Studio but don't want to have to run with administrative priveleges all the time.  Would you like to be able to make use of IIS 7-8 features on operating systems from Windows XP all the way through to Windows 8?  If so, let me introduce you to IIS Express a lightweight developer server which implements the core features of IIS  In this session we'll look at how to get started with IIS Express, learn some tips and tricks and we'll take a look at what's coming in future versions.

Find out more about Andrew Westgarth


Andrew Westgarth - Web Application Deployment Made Easier


Do you find deploying updates to your web applications a nightmare, take a lot longer than you would like?  In this session we'll look at how we can make use of MS Deploy (Web Deploy) to make this entire process a lot simpler and take away the stress of deploying application updates.

Find out more about Andrew Westgarth


Andy Gibson - Working Effectively with Umbraco

Umbraco is a Content Management System that has been making waves in the .NET development community lately (for various reasons). Because of it's flexibility, extensibility and relative ease of use for the end-user, It is widely used and very popular with digital agencies using the .NET stack. However being an established CMS there are many tools, patterns and practices you can apply to Umbraco development that can significatntly improve your productivity (and make life a little easier for your designers too!).

This session will cover areas such as:

- Project and folder stucture
- Automation with Rake
- Writing clean code without codebehind (or clogging up your Razor views)
- Optimising use of the Umbraco Node API.
- Hints and tips for faster, more effecient umbraco development

If you're interested in working more effectively with Umbraco, this is the session for you!

Find out more about Andy Gibson


Nathan Gloyn - What is software craftsmanship?

Back in 2009 the Software Craftsmanship manifesto was published that wanted to focus not only on the preferred practices of the agile manifesto but improving professional software development.

In this session will look at the manifesto and try answering the questions:

·         Why would you want to be considered a craftsman?

·         What does it mean to be a craftsman?

·         How could you become a craftsman?

The aim is that when you leave the session you can answer these questions for yourself.

Find out more about Nathan Gloyn


Rob Ashton - NodeJS and Azure - WHAT?

The new Azure has arrived and it's freakin' amazing, there I said it.

Let's look at what it takes to build an app, get it running on azure and consuming the services available there so we can become web scale millionaires.

Let's see what Microsoft are shipping to help us with this, and talk about why this is exciting.

Find out more about Rob Ashton


Dennis Doomen - Little productivity tools every professional developer should know about


During my last few talks I was surprised to learn how few developers are aware of the power of Microsoft OneNote, one of the products in the Microsoft Office suite. OneNote is an advanced digital notebook that I use for accessing my personal notes through SkyDrive or Office 365, as well as a shared notebook that agile teams use for keeping track of who is doing what. In fact, those who practice Test Driven Development will be surprised how essential OneNote is.


In addition to OneNote, many other tools and add-ons exist that can really boost your productivity. Some you may know, some you don't. But do you already get the most out of tools like NuGet, GhostDoc, ReSharper, Notepad++, and many others? If you're in doubt, come check out my session. I'lI show you what I use to be as efficient as possible in my job as a professional developer.

Find out more about Dennis Doomen


Andrew Westgarth - Getting Started with Windows Azure Web Sites


In the recent June update to Windows Azure, Microsoft introduced Windows Azure Web Sites.  In this session we'll take a look at this powerful but simple hosting platform which enables developers to rapidly build and deploy everything from a simple ASP site all the way up to a high scale line of business applications.

Find out more about Andrew Westgarth


Yan Cui - .Net in Social Gaming

The social gaming landscape often paints a picture of cloud computing, NoSQL databases, and PHP!

With over 3 million monthly users and 2 games inside the top 30 grossing apps on Facebook, GameSys is a company that's finding its feet amongst the leaders in the field.

In this session, I will share some insight into how GameSys uses a polyglot stack evolving around .Net to build their games and the different kinds of scalability and big data challenges we have to face in games.

Find out more about Yan Cui


Ian Battersby - FubuMVC – The framework that doesn’t get in your way

FubuMVC is an open-source compositional, convention-based framework for building complex web applications. Based on a "Front Controller" pattern-style MVC framework it is designed for use in web applications built on ASP.NET.

More than this FubuMVC is a custom pipeline able to meet your HTTP needs without sacrificing your architectural principles. Using composition-orientated design for power and flexibility, and convention-based approach for rapid development, it adds a new dimension to frictionless development.

This session introduces FubuMVC through code and highlights some of the clear advantages the framework and it's approach brings; including conventions, behaviour chains, html conventions.

Find out more about Ian Battersby


Kris Athi - Windows 8 with XAML and C#

Windows 8 is the most ambitious release of Windows since the release of Windows 95. 

With Windows 8, Microsoft has introduced the Windows Runtime and a new application development model – Metro Style Apps.

In this session, we will use the latest and greatest version of the OS (Should be RTM by September) and explore how you can target this new platform with XAML and C#.

Expect WinRT specifics, Metro Style Controls, C# Language Enhancements, Visual Studio 11, Blend and much much more.

Find out more about Kris Athi


Gary Short - End to End Application Development with Javascript

Javascript is no longer "just for the browser", with document databases such as MongoDB, application frameworks like NodeJS and front end libraries such as JQuery, it's now possible to "properly" architect end to end, enterprise scale applications entirely in Javascript. In this presentation I'll walk you through archictecting such an application so that, by the end of this session, you'll have a far greater appreciation for the Javascript language.

Find out more about Gary Short


Kit Eason - F# - It Won't Happen Here!

F# - that strange beast tucked under 'Other languages' in your Visual Studio setup.  You don't know much about it, but you are sure of one thing:

"It won't ever get used here!"

This talk gives you the tools to get past the 'not here' barrier:

- Instant gratification: Practical wins - right here, right now!

- Guerilla tactics: become a Functional Trotskyist.

- Epic win: How we coded a game changing calculation engine, in a couple of evenings, while watching the telly.

Find out more about Kit Eason


Neil Barnwell - CQRS and Event Sourcing... how do I actually DO it?

Now then, there's a lot of talk about DDD, CQRS, Event Sourcing going around. It's not a new idea or a difficult one to grasp when you actually get into it. Where suitable, applying DDD, CQRS and Event Sourcing can be lots of win.

You do tend to hear the same questions though: "How do I cope with eventual consistency?", "How do I run complex queries if my objects are stored as events?". My goal is to answer them, and in the process demonstrate how might you actually go ahead and *implement* such a system - by demonstrating One I Prepared Earlier! Admittedly I'll quickly cover a few topics relating to DDD, CQRS and Event Sourcing, but then I'll get the heck out of slides and into a sample implementation inspired by the one and only Greg Young.

A deep dive it ain't, but hopefully getting to see something that works should prove that with very little effort you can implement these concepts.

Find out more about Neil Barnwell


Alex Davies - Using actors with async in C# 5 - parallel programming the easy way

This talk is about actors, what they are, and why they're a great building block for concurrency. Taking advantage of multiple cores is difficult and fraught with errors, but actors make parallel code easy, elegant and comprehensible. Actors require asynchronous programming, so C# 5 makes writing actors much simpler.

It has practical examples, showing you how to use C# 5's async/await feature with the NAct actors framework to make a parallel programs that are much easier to reason about, and much less likely to contain concurrency bugs.

Find out more about Alex Davies


Robert Hogg - NUI and UX for Developers


I'm not a designer - I can't draw a straight line with a ruler, but since becoming involved in software development for Natural User Interfaces I have been involved in many successful NUI software projects.


This session will explore NUI and UX, showing the art of the possible with great new touch technologies from the Samsung SUR40, to the Microsoft Surface with Windows 8 including how to choose the right platform for your touch experience.

Find out more about Robert Hogg


Matt Lacey - Introducing Windows Phone 8

There's a new version of Windows Phone coming. But what does this mean for developers?

What's new?

What's changed?

How do you upgrade an existing Windows Phone 7.x app?

How do you support WP7.x & WP8 with one codebase?

How do you develop for Windows Phone and Windows 8?



Come to this session for the answers to all these questions and many more! ;)

Find out more about Matt Lacey


Andy Gibson - A Day in the Life of a Support Developer

Legacy projects, maintainance contracts, supporting code written by people who have long since left. The frustrations, the "WTF!?"s, the realisation that you can make it better, at the very least for yourself, but also for your fellow developers. These are all things I am sure many developers experience when working in support teams or on legacy projects and it is something I have learnt a great deal from.

In this session I will show how, with help from people such as Michael Feathers (Working Effectively With Legacy Code), Uncle Bob Martin and The Pragmatic Programmers (Andrew Hunt & David Thomson) you can survive support desks and legacy projects while retaining your sanity. There will be code examples, hints & tips and open discussion.

Find out more about Andy Gibson


Ashic Mahtab - Killing some Sacred Cows

We all seem wary of waterfall – too much process with little actual code. Well, let’s think about what Agile is becoming? How much of Agile today is about process, process, process? Agile puts customer value at the top yet the Agile practices we follow seem to not. Bold statement? Think about it – if a customer requests a change, can we cater to it without saying “It’s not designed that way”? Are we afraid of adding things - or even experimenting - because of the numerous tests that we will have to maintain? Do we spend time building up automation to the point where weeks go by and the customer sees nothing? Do we have technical tasks the business has to pay for but doesn’t understand why they’re doing so? All of the steps in agile that we follow have costs associated with them. And in many cases, those costs have become part of the Agile process that in many ways go against a lot of the agile manifesto. In this session, we look at some of them. And kill some sacred cows in the process.

Find out more about Ashic Mahtab


Colin Gemmell - Rails, tips from the pros

Starting with ruby on rails and getting something small working is really quite easy. But what if you building something more substantial with lots of moving parts and lots of business logic. Chances are the way you did it the first time probably won't work, so how do you do it. 

In this talk I'll bring together all the recent advice coming out from the expert ruby community and explain where these things have come from and why you should be using them on you next money making idea.

Find out more about Colin Gemmell


Marcin Mikołajczak - Using symbols (PDB files) in development and production debugging

What's the difference between a meaningfull stack trace with source line numbers and a stack trace made of only function addresses (in native code) or a stack trace with method names only but no source locations (in managed code)? How does the debugger know how to set up a breakpoint in a running application when all it has is a marked high-level line or expression? How does it know where to look for the 'foo' and 'bar' variables?

The answer in Windows development are PDB files (a.k.a. symbol files or symbols). Symbols are generated during each build of an application and used automatically in local debugging sessions, but unfortunately that's where their lives often end, even though there is much more that you can do with them.

In this talk I will show you some of the basic PDB internals, why they are crucial for source stepping in local and remote debugging, and why you should always provide them for the code that you publish: be it for debugging by developers or better error reporting in production. I will also talk about the symbol experience that you get with NuGet/MyGet and SymbolSource, which lets you download PDBs and sources on demand for code published by third-parties - and, hopefully, soon by you too. If you are interested in setting a private symbol server, this option will also be covered. In the final part of the talk, I will show you how having symbols for each release of your application can help diagnose runtime errors later on, including post-mortem crash dump analysis. You'll see how a secure production debugging environment can be set up with TeamCity, MyGet, SymbolSource, Octopus, DebugDiag and project PADRE.

Find out more about Marcin Mikołajczak


Dave Morrison - Writing better, more performant SQL using SQL Server (A.K.A. making your DBA smile)

In this session I will go over my top list of common misconceptions and mistakes I see regularly made in SQL Server.

This will cover topics such as indexing and index usage, query and plan optimisation and statistics to name but a few.

By explaining how SQL Server works and the best way to approach it with the use of lots of demos and clear explanation, attendees will walk away with a knowledge that will enable them to write better, faster and more scalable SQL code.

This session will be ideal for anyone that uses SQL Server and wants to further their understanding.

And who knows, you may even be able to get your DBA to crack a smile once in a while! :)  

Find out more about Dave Morrison


Richard Hopton - How many ways to ReST


With "ReSTful" frameworks a plenty it's often tricky to know which one to use, and sometimes you realise you chose wrong too late to change your mind!

In this session I will explore a few of the frameworks available on the .net framework looking at the pros, any cons and demonstrating a simple project built to exercise some of the common features!

Frameworks you will likely see will be ASP.net MVC, ASP.net WebAPI, WCF ReST, OpenRasta, Nancy & Simple.Web.  Others may make an appearance too!

Find out more about Richard Hopton


Rob Ashton - Keeping JS Sane

We're writing more and more JS at the moment.
We're writing JS on the server.
We're writing JS on the browser.
We're I'm writing JS in our my dreams.

What happens when you have more than 100 lines of it in a project, when you go beyond using it simply to prod jQuery selectors?

How do you organise the code so it's not just a big pile of goo?
How do you bring the code into your web pages? How about just the code you need? Do you actually want to do that?
How do you write JS that doesn't completely suck? How do I write JS that I can read and understand later?

I'll go through a pile of the things I've learned these past couple of years as the amount of JS I've written has started dwarfing all of my other activities in life.

Find out more about Rob Ashton


Ashic Mahtab - JavaScript WTFs

JavaScript is weird. Yet it is increasingly important. Not only limited to the browser, it can now be used for apps that run on servers, phones, tablets and even desktops. It has its own little world of weirdness that can catch you out when you least expect it. In this session, we will look at some of the idiosyncrasies that are all too easy to run into. We will see why they represent what can only be considered as strange behaviour. And we will look at what we can do to overcome them. You’ve seen the WAT, now here’s the why.

Find out more about Ashic Mahtab


Richard Dalton - How to build a framework, and why you almost never should

You're four months into a three month project, you've produced some of the best code you've ever written, but the client has yet to see a single piece of functionality that means anything to them.

You're building a User interface for your latest project.  You've created lots of abstract Views, Widgets, Windows and Plugins, but nothing that looks like the system you're supposed to be building.

You used to be able to load and save data with relative ease, but lately find yourself spending more and more time trying to make your Persistence Framework work correctly.

Frameworks are wonderfully useful, they are challenging to build and insanely difficult to build well, and that's why clever coders can't get enough of them.  As developers our minds naturally wander to thoughts of abstraction, and reuse. Frameworks seem like the logical destination for that train of thought.

But, there's a dark side.  Messy edge cases, shoehorning of new code to fit existing frameworks, wasted hours working on the framework itself rather than actual paying projects, faulty assessment of effort, and return on investment.

We've come through something of a framework bubble.  There's a growing realisation that most frameworks don't just fail to live up to promises of increased productivity, they can actually have a huge negative impact on projects.

In this session we'll look at some of the challenges to building a good framework and the techniques and patterns that help meet those challenges.

More importantly we'll try to cut through some of the myths about Frameworks and take a cold hard look at the real cost of developing and using them.

Find out more about Richard Dalton


Paul Stack - Component based architecture is a snap-in for continuous delivery

Component based architecture is not a new way to develop applications. It does, however, allow us to create reusable, cost efficient software that we can release faster. This pattern of delivery fits perfectly with the concept of continuous delivery. 

In this session, Paul will talk about how CI for components help to mitigate the risk of application deployments. Paul will also talk about how team organisation is very important for this type of software development. Paul will also discuss how bad component design can completely ruin the intention of CI for components.

Outline:
- What a component based architecture is
- How the design of a component based architecture needs to grow from a monolithic system
- How CI for components is the most effective way to get fast feedback on development cycles
- The benefits of this type of architecture in the delivery of complex software faster

Find out more about Paul Stack


Jacob Reimers - Writing LINQ Queries against your REST Service

Linq2Rest combines uniform interface of REST with a known query syntax from OData. This promotes consistency and discoverability when it comes to fetching data from the web.

The talk will show how you can transform an existing ASP.NET, MVC or Nancy site into a IQueryable, or even an IObservable, service. Afterwards we'll look at consuming the data from various platforms, like WinRT, WP7 or just .NET.

Oh, and everything is OData compatible.

Find out more about Jacob Reimers


Guy Smith-Ferrier - Localizing Windows 8 Metro Apps Using The Multilingual App Toolkit


The Multilingual App Toolkit is a free Visual Studio add-in from Microsoft. It translates, packages and unpackages resources for round tripping with localizers. This session illustrates its use for localizing Windows 8 Metro applications and shows how developers and localizers can work together to build localized applications.

Find out more about Guy Smith-Ferrier


Marc Gravell - Performance and Scalability, the Stack Exchange way

We all know the common tricks for improving perceived performance, but often far too little emphasis is given on making the servers do their work more efficiently - otherwise all you achieve by scaling-out is distributed slowness. Here we take a hands-on look at some pragmatic ways to measure and improve the performance of your server-side code, in particular focusing on "MiniProfiler" and "Dapper".

The examples focus on ASP.NET MVC, but the themes should apply to most .NET web development, and beyond. In particular, this session focuses on some of the technologies that Stack Exchange have built (and released freely to the community) to achieve high scalability in .NET.

Find out more about Marc Gravell


Colin Gemmell - VIM, VIM, what the hell?

Uncle Bob Martin once said about VI "20 years ago I couldn't wait to get off VI. VI???? What the hell???" but you know what, VIM is actually really fun to develop with and is really productive, but with its modal editing environment it can be a scary at first use.

In this talk we I try and take the initial sting out of getting started with vim, how to navigate documents and files with speed and edit documents in half the time of a standard text editor. I will also cover some essential plug-ins for refactoring, auto-complete and may other that can make VIM rival any IDE available today.

(RailsConf 2011: Robert Martin Keynote http://www.youtube.com/watch?v=mslMLp5bQD0) 

Find out more about Colin Gemmell


Colin Gemmell - Burning javascript with Ember.js

Ember.js is one of the new league of javascript frameworks bringing MVC to the front end of your application.

In this talk we will look at the basics of ember.js including the differences in the MVC model that you maybe used to with ASP.NET MVC or rails, moving business logic to the front end, communicating with a backend server and what ever else seems important.

Find out more about Colin Gemmell


Gary Short - Raspberry Pi the 10 Cent Tour

In this session we'll have a look at the new Raspberry Pi, examine what ships out of the box and look at some of the cool things you can do with it. Who knows, I may even let you touch it. :-)

Find out more about Gary Short


Guy Smith-Ferrier - Internationalizing ASP.NET MVC


So you’ve written your ASP.NET MVC application and you want it to work in another language ? Then this session is for you. World-Readiness is all of the work that a developer needs to do to globalize an application and make it localizable (i.e. capable of being localized). In this session we will cover localizing HTML and HTML Helpers, localizing and globalizing Data Annotations, localizing and globalizing JavaScript and localizing URLs. No previous experience of ASP.NET localization is required.

Find out more about Guy Smith-Ferrier


Nathan Gloyn - Kanban? What is it and how can it help?

Agile, agile, agile, thats all you hear.  You know about TDD, CI and all the other lovely technical practices but perhaps getting a form of agile working practice is proving a little more difficult.

Enter Kanban! A lightweight working practice to help you visualise and track your work.

Come to the session and I'll introduce you to Kanban, show you how it works, how you can use it and customize it to suit your own situation.

Find out more about Nathan Gloyn


Ashic Mahtab - Leveraging Functional Pipelines for IoC, AoP and BDD

IoC – there are containers for that, right? They do all sorts of magic, don’t they? You wire up some dependencies here and there and by some kool runtime reflection, they figure out what goes where. And it all works quite well….until it doesn’t. And it’s all very simple…until you need to be aware of certain conventions and rules they enshrine. AoP frameworks – they make our lives so much easier. They rewrite our IL so that our aspects get weaved into the final binaries. That’s so awesome. Wait…what? A tool is going to change your binaries – the binaries you wrote all your unit tests for – and we think that’s brilliant? BDD – natural language driven outside-in tests for business users. And radical tools that use reflection and regular expressions to generate human readable …erm… test names. Would you ever consider using reflection and regular expressions as the first choice for your applications?

In this session, we will look at how we can leverage functional pipelines for all three of the things mentioned above. And all with zero magic, with pure and simple C# code - in a way that doesn’t require an instruction manual to use. 

Find out more about Ashic Mahtab


Robert Hogg - Gadgeteer for .NET


Gadgeteer is a rapid prototyping platform for small embedded hardware devices, that has the advantages of .NET programming and simple assembly of electronics from a kit.


Using the software tools you know - C# and Visual Studio - you can use Gadgeteer to easily construct both simple and sophisticated devices.


This session will explore what is possible with Gadgeteer.

Find out more about Robert Hogg


Jacob Reimers - Taking REST beyond the pretty URL

Many websites claim to be RESTful when they use a pretty URL structure. ASP.NET MVC makes it very easy to set up a website with pretty URLs and return web pages or JSON. But REST is more than simply keeping your site structure clean and returning JSON. This session will go through some simple changes that makes it possible for a an ASP.NET MVC site to make it observe RESTful principles making it accessible both as web site and a web service. The changes will tie into a sample for writing LINQ queries directly to a RESTful service.

Find out more about Jacob Reimers


David Walker - Developing a production immune system

Nobody likes getting up at 2 am to fix a production issue. And we shouldn't have to. We are programmers after all. It's our job to automate all the boring and unpleasant tasks so that we can concentrate on the important things. Like sleep. In this talk I'll show how to go about developing an immune system for your applications that will automatically detect and fix common issues so you don't have to be woken up unless absolutely necessary.

Find out more about David Walker


Jon Skeet - Language pattern anti-patterns, aka "C# - the broken bits"

I'm a massive fan of C#. In most ways I think it's a lovely language. It has its rough spots though, and in this talk I'll use those as examples of how languages could be designed better.

In the process of thinking about language design (which, let's face it, most of us won't really be doing much of in a serious capacity) I'll hopefully encourage you to think a little differently about the purposes of both programming languages and code itself.

Oh, and there may be some amusing examples where code doesn't do what you'd expect. Always good for a laugh, especially if it doesn't do what I expect it to either...

Find out more about Jon Skeet


Matthew Baxter-Reynolds - Crossing the Rubicon to a Metro-style world

In meeting the challenge of the iPad, Microsoft is rebooting how we build software for Windows. Metro-style is the new process model in Windows, but asks a great deal of developers. Months of confusing messages and seemingly weird strategy changes all come to a head as the market decided whether Windows 8 and Windows RT makes sense to people on the ground.

In this talk, Matthew Baxter-Reynolds takes us through the history that brings us the era of Metro-style and details the opportunities and challenges ahead for developers looking to work with the Microsoft stack.

Find out more about Matthew Baxter-Reynolds


Gary Short - Applied NodeJS

NodeJS has become the darling of the startup and VC space over the last year or so. In this presentation we'll deconstruct a network appliance and see what makes NodeJS such a cool framework. We'll also answer that perennial question, "how do you deal with IO bound problems using NodeJS?"

Find out more about Gary Short


Jimmy Skowronski - OAuth: No More Passwords!

Passwords are surrounding us, thousands of websites are asking us to register every day. At some point we tend to lose control over them and start either using the same password everywhere or escape to a password vault solutions. Many of you are building new websites almost every day and you often you need users to log in. Don't create your own password storage in that case. Save your users from the need to create and remember yet another login and password, and use one of the existing identity providers. It can be Live ID, Facebook, Google, Twitter, Yahoo or many other and you can choose one of them or altogether.

This session will introduce you to the OAuth components new being part of the ASP.NET MVC 4.0. I will show you how to get rid of your individual password storage and start using  Live ID, Google or Facebook to authenticate your users. We will look at how to create OAuth authentication for a brand new website and how to modify the existing one. Finally we will look how to achieve the same in older versions of the MVC framework.

Find out more about Jimmy Skowronski


Mark Pryce-Maher - Scooby-doo, Where Are You? Using Postcodes in SQL


In this session I'll run through converting OS post code data into a Geo-Spatial Data type, then explore some of the possibilities

Find out more about Mark Pryce-Maher


Chris Alcock - WebSockets and SignalR - Building the Real Time Interactive web

In this session we will explore the key concepts of new 'HTML5' WebSockets standard, looking at its implementation on both the client and server, before moving on to look at the use of SignalR for connectivity and RPC between server and client, looking at both browser and alternative client implementation.  To conclude the session will explore where these two technologies meet, looking at the use of WebSockets by SignalR.

Find out more about Chris Alcock


Kit Eason - Unit Testing SQL Databases in F#


A test involving an SQL database is an integration test, right?

Not any more!

Find out how to put together fine-grained, performant unit tests of database artefacts using F#, FSUnit and a little bit of pixie dust.

- Creating and tearing down a database with no residue.
- Bringing the database up to a specific schema version.
- Writing and executing FSUnit unit tests.
- Test driving your schema.

Find out more about Kit Eason


Phillip Trelford - F# Eye for the C# Guy

This talk is for C# programmers who are curious about F#, a new multi-paradigm programming language in Visual Studio 2010.

In: test driven development, classes and functions

Out: maths, monads and moth-eaten jumpers

Expect plenty of practical examples with live code samples, including interop between C# and F#.

Find out more about Phillip Trelford


Richard Dalton - The Tests ARE the Requirements

There's an old saying, "A man with two watches never knows what time it is".  In software development we typically wear at least two watches in the form of Requirement Specifications and Test Plans.

In this session we'll look at the wasted effort of keeping both Requirement Specs and Tests around. We'll examine the changes in team dynamics when we streamline the process.

We'll also look at the optional extra step of automating some of the tests.  We'll use FitNesse to demonstrate an "executable specification", however the specific tools used will be less important than the central message of the talk. 

Find out more about Richard Dalton


Jon Skeet - Time: you're doing it wrong

Most applications need to use dates and times in some form or other. Unfortunately, it's all too easy to write code which looks correct, but is actually subtly broken.

In this talk I'll explain some of the ways in which date/time handling can get ludicrously complex, but suggest that actually it's feasible to get it right, if you think about your data in the appropriate way to start with.

Obviously this wouldn't be a Jon Skeet date/time talk without frequent references to Noda Time (my alternative date/time API for .NET) but I'll also suggest ways in which you can work more effectively with the BCL types (DateTime, DateTimeOffset, and TimeZoneInfo).

Find out more about Jon Skeet


Régis Baccaro - Business Intelligence and Data Visualisation in SQL Server 2012


This session is about the efforts put into Self Service Business Intelligence in SQL Server 2012 and the tools allowing us to achieve that.
We will look into PowerPivot, Power View and SSRS. The traditional Business Intelligence versus the "New" Business Intelligence.
The session is filled with demos and best practices.

Find out more about Régis Baccaro


Garry Shutler - 10 practices that make me the developer I am today

I've tried pretty much every fad that's cropped up during my career. I'm willing to give pretty much anything a fair go to see if they live up to the hype. Most are nonsense, some are awesome, and usually those guys that were doing it 20 years before us knew what they were doing.

Come with me as I trace through my career from junior noob to senior developer. I'll cover the core practices I've picked up along the way that I use every day, why I value them, and why you should value them if you don't already.

I'll cover the habits that I think make a real difference to your day-to-day work and some new practices that I'm come across that you may want to try.

Find out more about Garry Shutler


Dan Haywood - Restful Objects - a hypermedia API for domain object models

REST architectures are becoming increasingly more common, both on the internet and within the enterprise.  Behind most of these REST APIs is a domain model (some anaemic, some less so); the wiring up of that REST API to the model involves lots of boilerplate and lots of testing.

With justification, there are some scenarios (principally internet), where a separate stable resource model is required in front of the domain model: REST systems can't arbitrarily break their clients if those clients are not part of the same bounded context.  In other scenarios - if you own both ends of the pipe - then having this additional layer of abstraction is unnecessary.

Restful Objects is a specification that describes how to expose any domain model - with or without a separate resource model - over REST.  It fully documents a set of HTTP URL resources and the corresponding JSON representations that they support; and it fully supports the stuff that REST-heads care about: HATEOAS, media types, link rels, conneg, HTTP headers and arcane response codes; that sort of thing.

Restful Objects isn't just a specification though: there are also two separate open source implementations, a completed one for .NET (running on top of ASP.NET MVC4), and another on the JVM.

In this talk, Dan will explain some of the ideas behind the spec, and will show how you can use it to REST-enable an app in a matter of minutes.

Find out more about Dan Haywood


Rob Ashton - Modern web-stuffs for building games in the browser

OMG MAKING GAMES IN THE BROWSER. 

WITHOUT FLASH.

LOL.

Let's have a look at the options we have available to us, and go through various demos of how to draw AMAZING THINGS to the screen and play AMAZING SOUNDS and MAEK THE SHINIES.

This will be a talk with Javascript, WebGL, Canvas, CSS3, HTML5 and anything else I think will be awesome.

Find out more about Rob Ashton


Dan Maharry - Tame Your Static Content: Compress, Optimize, Secure & more...

10 reasons your sites might be suffering from not treating the static content on your site in the same way you treat the dynamic and 10 easy ways to address them. Covers compression, optimization, security, minification and more.

Find out more about Dan Maharry


Jon Skeet - A week with Nancy

Apparently, Nancy is a lightweight web framework.

At the moment, that's all I know about it - but if this session is selected, I'll learn about it in the week before DDD 10 (and not before). I will then try to present a talk about what I've learned.

You'll probably learn a bit about Nancy in this session, if you haven't done any Nancy development before. If you've used Nancy for more than a week, you'll probably be answering my questions rather than the other way round.

However, more importantly (from my point of view) I'll explain how I've approached learning about Nancy, and what the experience was like. My hope is that this will give some insight into the joys and frustrations that the users of APIs and frameworks experience, so that next time you start an open source project, you can make it a more positive experience for your users. In line with this aim, I'll attempt to remember to record my week's experiences in video form, to provide a genuine "raw" view of the process.

Find out more about Jon Skeet


Dave Morrison - SQL Server Query Plans - What are they, how do I read them and why should I care!?

Every time you execute a piece of SQL code against SQL Server a query plan is generated and this query plan contains an Aladdin's cave of information about what is going on behind the scenes.

Using lots of demos and examples, in this session we will take a look at what query plans are, how to read and interpret them and why they are one of the most useful tools available for diagnosing and dissecting your SQL code. 

This session has something for everybody, whether you've never even heard of a query plan before or you look at them frequently and want to deepen your understanding


Find out more about Dave Morrison


Peter Ibbotson - Veracity the new kid on the version control block.


Veracity is a new apache licensed distributed version control system by the nice folks at Source Gear, this session is planned to walk around Veracity and compare it to both Git / Github and Mercury. Existing DVCS users will learn something new as part of the comparison process.


Veracity also provides a wiki, bug and work tracking along with scrum burndown charts. I will be showing how to setup a CI server that ties in to veracitys build tracking on both linux and windows, making veracity into a low end TFS replacement.


I'll be showing how to use JavaScript and veracitys JSON interfaces to extend veracitys functionality.

Find out more about Peter Ibbotson


George Adamson - CSS3 Transitions and Animations

Yay it's the 90's again: we can make stuff blink and move for no good reason all over again!

We'll rummage about under the CSS3 hood exploring all the goodness of transitions and keyframe animations.

  • Discover the syntax (phew it's not so diffy after all)
  • Where can we use it? (woohoo it degrades gracefully)
  • Most importantly: Know when to use them!
  • JS vs CSS techniques

Find out more about George Adamson


Mark Broadbent - READPAST & Furious - Transactions, Locking and Isolation

Do you really understand SQL Servers’ Concurrency behaviour? Are you sure that Transactions are an ALL or NOTHING operation? Do you believe Read operations cannot start a Transaction? Do you really know if READ_UNCOMMITTED is safe for reporting? Is being Optimistic *really* better than being Pessimistic? Is SQL Server 2012 be the solution to all our problems or our worst nightmare? I look forward to you joining me in this very revealing and thought provoking session where I will provide answers to these questions and more and make you wish you had known about all of this sooner.

Find out more about Mark Broadbent


Tim Gaunt - Taking it from side line to full time

Hot on the tail of my DDDSW session, I'll be talking about how taking a business from a side line to full time income is easier than you might think. 

In a somewhat whistle-stop tour, I’ll cover the basics of starting with an idea and growing it into your main source of income. There should be some useful hints and tips for those with just an idea, those just starting out and those who are already well versed in business.

Find out more about Tim Gaunt


Richard Lennox - DevOps is a mindset: How Operations experience made me a better Software Engineer

You are a good Software Developer. You build great web applications in exactly the right way. You fully understand the reasoning behind that architectural choice and design decision. But I bet you don’t operate it or maintain it. There’s someone else that does that, right?

Well, I decided to switch to the other side and ran a Web Operations team for a large scale, web application - serving hundreds of thousands of site visitors and mobile app sessions worldwide on a daily basis. Through that experience, I’d like to share with you the 5 most valuable lessons from those trenches that make me a better Software Engineer.

A lot will be common sense, but coupled with some war stories and some real code examples, we’ll have an honest conversation and hopefully show how a DevOps mindset can help you be a better Software Engineer.

Find out more about Richard Lennox


Andrew Westgarth - Web Capacity Analysis Tool (WCAT) - Getting Started and How to Use

The Web Capacity Analysis Tool (WCAT) is a lightweight load testing tool designed to measure the performance of a web server in a controlled environment.  WCAT can be used to simulate very small to very high workloads for either a single web site or multiple web sites.  In this session I'll walk through how to use the tool and how to interpret the results to help to identify performance or scaling issues before release.

Find out more about Andrew Westgarth


Andrew Westgarth - Techniques for Managing Session State


As companies move away from using traditional hosting methods which allow for the storage of session state in memory and to more of a distributed distributed based model many developers are having to look at alternative options for storage of session data.  In this session we'll take a look at some of the options available, what is involved in making use of them and identify the advantages and disadvantages each approach.

Find out more about Andrew Westgarth


Richard Fennell - Unit testing with Visual Studio 11 Beta


In the Visual Studio 11 Beta there are major changes to the way unit testing frameworks are implemented, you are no longer limited to MSTest it is now a pluggable model. In this session I will show what is now available ‘out the box’ and what other options are open to allow you to leverage the testing tools you want to use.

Find out more about Richard Fennell


Andrew Westgarth - IIS 8 - Application Initiliazation


Do your users constantly suffer from a poor experience while waiting for your web application to warm up?  Would you like to provide a fantastic experience for your users whether they are the very first user to access your site/application or the thousandth.  The IIS team have released the Application Initialization feature for IIS 7.5 and IIS 8.0 which helps to eliminate the bad user experience which occurs when an application is first accessed and not "warmed up".  In this session we'll start with a simple implementation of this feature and move up to more advanced scenarios making use of the URL Rewrite module to provide more options.

Find out more about Andrew Westgarth


Mark Rendle - Simple.Web 101

Simple.Web is a lightweight, object-oriented framework for building RESTful web applications and services.

This talk offers an introduction to the Simple.Web framework, including:

Why it exists;
Why you should use it;
How to use it;
How easy TDD/BDD are with it;
That whole REST thing.

Find out more about Mark Rendle


Nathan Gloyn - Selenium a UI testing paradigm

You may or may not have heard of Selenium the open source test framework for web applications.

In the session we’ll cover:

·         What Selenium is and where it’s come from

·         How it works

·         The various ways to use it

·         How to build your tests for ease of understanding and reuse

Whilst focusing on using Selenium the talk will also cover best practices around UI testing regardless of the tool you use to do the testing.

Find out more about Nathan Gloyn


Phillip Trelford - Games Development Bootstrap

Building games is often more fun than playing them, so why not have a go!

Through live examples this talk will introduce the basic concepts of games programming from control to game loops through to simple AI. We'll look at a variety of different game genres, from action to puzzle games, and platforms from .Net to JavaScript. Like the subject though the emphasis will be on fun.

Find out more about Phillip Trelford


Paul Stack - The good, the bad and the automated

A bad deployment process can not only cost our applications downtime but cn also cause developers a lot of stress and irritation. The deployment of an application should be easier than we currently make it. Technically speaking, you should be able to release your application whilst sipping a cocktail on a mediterranean beach. This, of course, isn’t the case for a lot of projects. In traditional waterfall methodology, deployment wasn’t thought about until just before it happened, this caused issues on deployment night. As software developers, we should practice the art of delivering software not just developing it.

In this session, Paul will look at the pitfalls that developers can face when trying to delivery the software they have worked hard to develop. Paul will demonstrate that continuous delivery is a great way to face these pitfalls and that it should form a solid part in the application development lifecycle. Paul will show that devops isn’t just a fancy job title and will discuss effective deployment techniques that everyone in a development team can become responsible for.

On leaving this session, developers should take away the belief that delivery should not be stressful and that it should be as easy as clicking a magic button at any time, anywhere.

Outline:
- Discuss the common pitfalls developers face
- Introduce the concept of continuous delivery as a mechanism to cure these pitfalls
- Look at effective deployment techniques that the entire team can take ownership of
- Give reasoned arguments as to why continuous delivery is a great way to deliver software, regardless of the block in place to it.

Find out more about Paul Stack


Ashic Mahtab - Playing with Balls of Mud

All too often large models are used to represent application data. And layers of abstraction used to prevent the emergence of what is known as a Big Ball of Mud. People use things like repositories, services, IoC containers and other strange mechanisms for even the most trivial applications – all in the name of avoiding that ball of mud. And this pursuit takes considerable effort. The teams have to deal with complicated versioning problems and often this leads to massive rewrites of entire products – thus negating the very reason of loose coupling. Can we not avoid this? And are balls of mud really such a bad idea? Can we not have architecture that lives on rather than dies every year or so?

Find out more about Ashic Mahtab


George Adamson - Get started with jQuery

An energetic and entertaining introduction to jQuery and all it's cross-browser loveliness.

(Yep still a much requested session for those jQuery noobs)

Applying jQuery to your pages with Progressive Enhacement; the CSS-like selector syntax; binding and handling events; effects; plugins and ajax. Then perhaps we'll do a little more ajax. If needed we'll chat about closures, JSONP, cross-domain issues and solutions. Lots of code and demos along the way and avoiding yawny slides. 

A great session for those fairly new to jQuery or who would like to do more with it. We also dive into some advanced usage and best practices. 

Described by a previous audience member as "Eddie Izzard does tech".


Find out more about George Adamson


Mark Pryce-Maher - Creating SSMS 2012 Add-ins for Crash Test Dummies


In this session we will run through the history of SQL Server Management Studio Add-ins, then goto through the step by step process of creating an Add-in for SQL Server Management Studio 2012.

We will look at some of the cool things you can do and break.

This session is for people who have some C# knownledge and want to extend SQL Server Management Studio.

Find out more about Mark Pryce-Maher


Gary Short - Combat Social Network Analysis - Taking The Fight to The "Enemy"

Those of you who know me personally will know that I have a passion for social network analysis (SNA), it's a topic I research both in my spare time and professionally, as head of Gibraltar Labs.

Since 1925 SNA has been used to help scientist better understand networks of all types: from anthropological tribal groups, to industrial, manufacturing teams. From the mid "Noughties" scientists have been using it to examine human interaction and marketing opportunities presented by online networks such as Facebook and Twitter.

In that time SNA has been a passive endeavour, one where the scientist observers and analyses the observations. Recently, I've been looking at the possibilities of taking a more aggressive stance, using SNA to disrupt networks of various types.

I have no connections to either the security or law enforcement services, but in this presentation we'll take a theoretical look at how these agencies might use SNA techniques to disrupt terrorist and criminal networks. Who knows, we might even examine the question of whether or not it would be possible to use the same techniques to disrupt competitors in a commercial environment, and if it were, would it be ethical? :-) 

Find out more about Gary Short


Paul Stack - Agile Team Formation

In this talk Paul will look at team dynamics and how team formation impact the velocity of a team. We will also look at how the teams formation affects the quality of the code produced by the team.

Paul will compare traditional waterfall teams to more agile teams and even highlight how a company like facebook work in a fluid manner

Find out more about Paul Stack


Dennis Doomen - Automated UI testing with SpecFlow and WatIN


Test Driven Development is a phenonemon every developer should be aware of by now. I can't believe I've been developing professionally without it, and have been using it in every project since I discovered it 5 years ago. But, applying TDD on UI logic can be challenging, even if you apply patterns like MVC, MVP or Presentation Model. Creating readable and maintainable unit tests that drive a Presentation, ViewModel or Controller is a big maintenance burden.


That's why our ASP.NET WebForms/MVC project jumped on the SpecFlow and WaTiN bandwagon. Using this beautiful combination we can now smoke test the overall behavior of the system, in addition to the large coverage of automated unit tests. Granted, this isn't the same as Acceptance Test Driven Development, but those smoke tests have been really worth their money. The functional abstraction that SpecFlow offers has proven to be a valuable aspect that allows us to keep our UI tests maintainable. In fact, the Gherkin matra Given-When-Then has even found its way to our test professionals.


During this talk, I'd like to share some of the basic principles behind SpecFlow and the most important aspects of WaTiN. Just like with TDD, there's a whole lot you can do wrong. That's why I want to focus on some of the best practices that worked for us. Anyway, if you're serious about building high quality products and system, check out what I have to share.

Find out more about Dennis Doomen


Yan Cui - Introduction to NoSQL

NoSQL (Not Only SQL) databases have been gathering both momentum and popularity over the past decade and it's now widely used in high-scale scenarios such as social networking and online gaming, helping developers face the big data challenge without breaking the bank!

In this talk I'll give you a run down on the different types of NoSQL databases (key-value, document, column and graph) before focusing on Redis and show you how it can be used to solve real-world web use cases efficiently.

Find out more about Yan Cui


George Adamson - Getting a grip on Responsive Design

An intro to the world of responsive design for websites.

People are hitting your website with all sorts of gadgets these days, does it look the same on all of them? Different? Does it work at all?

What is this Responsive Design malarkey? Do we have to design for every device now?

We'll tinker about with techniques, css and principals for delivering your site to multiple devices.  Bring your internet enabled fridge and settle down for some ui geekiness.

  • What are we "responding" to anyway?
  • Desktop is no longer the default
  • So we just target iPhone yeah?
  • Media Queries and breakpoints
  • Orientation
  • Responsive Design vs Adaptive Design
  • Graceful Degradation or Progressive Enhancement?
  • Your mobile test suite

Find out more about George Adamson


David Walker - Polyglot persistence

A relation database, document database and key value store walk into a bar. The next day none of them could remember anything. But seriously, we often talk about using the right tool for the job and these days with so many options available there's no need to try to stuff everything into SQL. In this talk I'll show how you can use different types of data store for the things they're good at to make you're life easier and your applications better. And I promise I won't tell any jokes.

Find out more about David Walker


Ashic Mahtab - An Introduction to CQRS and Event Sourcing

CQRS and Event Sourcing are two of the latest buzzwords in the community. In this session, we will look at what they are and what benefits they can bring to your applications. We will discuss different approaches that can be used to leverage these patterns. We will also discuss pros and cons so that you can make an informed decision as to whether these patterns are appropriate for your applications. Finally, we will look at a simple sample application – with all the plumbing needed in one 250 line .cs file that you can use for your projects with little or no modification. 

Find out more about Ashic Mahtab


Arron Finnon - The Universal Plug and Pwn Protocol - What were they thinking!

Universal Plug and Play protocol (UPnP) can be described as a set of networking protocols that allow a type of seamless discovery and communication between other UPnP devices.  Data sharing capabilities are just the beginning of UPnP's remit, in some cases UPnP devices can actually make configuration changes to one and other.  The aim is a type of hassle free configuration environment, aim to give its users that "just works" felling, much like the plug and play technology of the past.  However hassle free configuration can ultimately mean hassle free hacking. 

This talk is loosely based on a previous BSides Security Conference talk and aims to give attendees an overall view of UPnP and some of the security issues faced by many devices today.  During 2011 and number of interesting issues were discovered.  The talk looks at how an attacker can deploy a series of incredibly simple yet effective attacks against a wide range of UPnP devices such as routers found in many homes today, and why those very routers are ill equipped to defend against them.  With one simple command it is possible to open an internal port to an external port without authentication or stamp within the routers access logs.  In some case it is even possible to disable Internet connectivity.  Attacking the very fabric of UPnP's implementation to gain a very real presence on a network. 

Its easy to see why many technologically minded people argue turning this protocol off, however it is not always as simple as it would first appear.  Much functionality of very popular devices and applications would be lost, in addition for it not being the most user friendly process to be invented.  With concerns about this same technology in the future being used in smart homes the threat can only become bigger.

Find out more about Arron Finnon


Ashic Mahtab - A Beginners Look at Riak

Riak is a very interesting Key-Value NOSql store. Built on the notion of combining many small, cheap parts for a durable whole, Riak loves and speaks the web. It is fault tolerant - to the point that a failed node is not an emergency. In this session, we will look at this extremely flexible database - what benefits it provides, what its drawbacks are and when you should consider using it. We will also look at how we can use it from our .NET applications. 

Find out more about Ashic Mahtab


Régis Baccaro - Database Development with SQL Server Developer tools


SQL Server Data Tools, Database Projects (SSDT-DP) is a declarative and ubiquitous model that includes all the phases of database development, maintenance, and update inside Visual Studio. It is a rich SQL Server development environment with full Visual Studio integration, so database and application developers can work on SQL Server or SQL Azure projects in Visual Studio. SSDT-DP includes declarative-based tools and designers that can be used in online and offline development.


In this session I will show you how to use SSDT and lay out the general guidelines for upgrading from Visual Studio 2010 Database Projects to SSDT-DP.

This session will also cover the most common behavior and breaking changes while upgrading projects from Visual Studio 2010 Database Projects to SSDT-DP.

Find out more about Régis Baccaro


Paul Stack - CI++ (or how to push your build server to the next level)

CI servers tend to be used only as a mechanism to build and test applications using basic scripts. Tooling for software developers are fashionable and CI tooling is not excluded from this trend. Powerful hardware is easier and cheaper for companies to source, therefore we should take advantage of this more powerful hardware. As developers and IT professionals, usually have some jobs that we run manually. I live by the mantra that a bad software developer will repeat the same manual jobs and a good developer will automate those tasks. 

In this session, Paul will sell the important of automation and give examples of how he uses his CI server. The jobs range from SEO automation to machine setup. At the end of the talk, Paul will have demonstrated the need for a developer to brush up on their automation scripting and how import a tool it is in their skillset. Automation used in the correct way can save us, as developers, a lot of time that we can use for more important tasks.

Outline:
- Automation isn’t all about playing the angle bracket tax
- Use of powershell in building, testing, compression and packaging of web applications
- Use of scripting to create database diff files
- Use of scripting to validate html and css files
- Use of scripting in continuous SEO Analysis
- Automation as a way to standardise developer / build machines

Find out more about Paul Stack


David Walker - Scaling RavenDB

A single RavenDB instance is able to handle surprisingly high volumes of data but you don't have to look for another storage solution when you grow beyond that single instance. 
In this talk I'll go into some of the options available to you when it comes to scaling a RavenDB database. First I'll look at how to get the most out of a single instance and then I'll walk through the decision making process you'll go through as you start to use sharding and replication. Although you may not need to scale out just yet, a little thought early on can make the transition easier when you do have to.

Find out more about David Walker


Mark Rendle - Simple.Web Internals

Simple.Web is a lightweight, object-oriented framework for building RESTful web applications and services.

This talk is a look behind the curtain, at the source code and architecture of Simple.Web. I'll explain some of the design decisions; share some cool coding tricks I learned while building the thing; and demonstrate how to extend the framework for your specific requirements.

Find out more about Mark Rendle


Guy Smith-Ferrier - Mind Control Your Computer In C#


The world of neuroscience changed over the last 5 years. Neuroheadsets (headsets that read brainwaves) became affordable and accessible. Neuroscience is no longer confined the realm of huge research budgets and professors in lab coats. It is accessible to regular developers. This session illustrates a neuroheadset that reads brain waves and uses a C# API to allow developers to recognise facial expressions, emotions and cognitive thought – that is, the headset can read basic, deliberate conscious thought. Although the headset is aimed at the gaming market the potential for the physically impaired is considerable. Come and see the potential of today’s Brain Computer Interfaces.

Find out more about Guy Smith-Ferrier


Mira Javora - Writing CSS with SASS – the day you stop repeating yourself!

A good developer should always follow the DRY principle. Why is it then we ignore the elephant in the room that is CSS. Personally, I get twitchy if a class reaches 130 lines, yet we still tolerate CSS with 2k lines and endless repetition. There has been plenty of focus on writing better Javascript, but when it comes to CSS, we don’t seem to care much.

SASS and LESS both address the common problems with writing and maintaining CSS. And let’s just say from the start, this talk is not about arguing which one is best. This talk is about demonstrating how SASS+compass can save you time and make your CSS clean.

The session will cover the basic setup, SCSS syntax and introduction into imports, mixins and selector inheritance. I will show you how you can do spriting in seconds and deal with media queries neatly. All that using real-world examples from past and current projects.

Find out more about Mira Javora


Joel Hammond-Turner - Using your NuGet for Fun & Profit (Redux)

The explosive take-up of NuGet clearly demonstrates just how valuable a packaging system for .Net can be. 

This session is a refined repeat of that run at DDDSW will look the issues surrounding  creating NuGet packages for use within your own organisation rather than for general consumption, and will look at the options for hosting a NuGet server both on-site and in the cloud.

It will also demonstrate the NuGet.PackageNPublish tooling released by Landmark at DDDSW4 which makes creating packages to contain your libraries as easy as File->New Project.

Find out more about Joel Hammond-Turner


Matthew Baxter-Reynolds - SQLite Metro-style - using the venerable embedded database in Metro-style apps

SQLite is natively supported on every mobile platform, apart from Windows Phone and Metro-style. In this talk, Matthew Baxter-Reynolds will take you through how to use it in Metro-style. (What he shows you will also work on Windows Phone - you know, as a bonus.)

Learn both the basics of how to get it up and running, and best practice tips and tricks in order to not go mad whilst doing so.

Find out more about Matthew Baxter-Reynolds


Nathan Gloyn - Enterprise Applications in minutes!

So you are being asked to produce web based applications in less and less time, so what can you do about it?

Microsoft has a range of technologies that can help you to do this and in this talk I’m going to give you a brief overview of 3 or them:

1.       Lightswitch is the new Silverlight based application builder, you’ve probably heard how bad this is but let’s see what its actually like.

2.       Asp.Net Dynamic Data can provide a working Asp.Net web forms site in minutes.

3.       Asp.Net MVC using scaffolding support is the newest of the bunch helping you generate the code you need quickly and easily.

Join me as we tour through these 3 different technologies and see what they have to offer.

Find out more about Nathan Gloyn


George Adamson - Designing for Mobile* (that means everything)

A thought-provoking, fact-crammed whirlwind open topped bus tour of *your new mindset for tackling every device from 2" to 100". Everything you need to know if you site is going to cope with the ridiculous range of devices now hitting us.

"An essential tour of the mobile development world: Differences; challenges; solutions. This session crams in masses of tips and info for you to ponder. And all presented in George's typically ridiculous style."

Wooah, we'd better have a good old think about what mobile means and why it's soooo different:

  • The mobile context: mindset and attention
  • Focused functionality, different interactions
  • It's all about the content
  • Tapping, not clicking. And certainly not hovering
  • Web / Hybrid / Native / App / Fixed / Fluid / Responsive / Grid
  • You'll no longer say silly things like:
  •   - "Go on, just dumb down your website to look ok on a diddy phone"
  •   - "Mobile First? No way, we've got too much to display"
  •   - "Why so much fuss about mobile? Our site works fine on the CEO's iPhone."
  • Did I mention content?
Recent audience feedback: "Brilliantly Bloody Bonkers"

Find out more about George Adamson


Anthony van der Hoorn - Glimpse into ASP.NET - Taking a never before seen look inside your server!

Glimpse allows you to take a never before seen look inside your server. Instead of forcing you to go line by line inside your code, Glimpse does the work for you. It tells you exactly what's going on with each request. It's able to summarize your server data in a way that facilitates ease of understanding. Glimpse is the tool that not only lets you follow your code, it combines and displays your data in such a way that the debugging process that once took hours can now take minutes.

After releasing Glimpse at Mix11, Glimpse has become a tool that is used daily by tens of thousands of developers around the world. Learn how to use Glimpse to reveal what is happening within your ASP.NET MVC and WebForms sites. See what tools are included out of the box and see how you can easily extend it to suit your needs. For more information on the Glimpse Project, see http://getglimpse.com.

Find out more about Anthony van der Hoorn


Gill Cleeren - Advanced WinRT development: taking a look at the things you don’t see in the intro talks!


By now, you’ve seen the introduction talks. You know how to develop your first Windows 8 Metro-style app or maybe you’ve already started building some. But then things start to get a bit more complicated.
That’s where this session comes in! We won’t be touching on the basics, but we’ll explore topics you don’t hear about in most talks. We’ll see how to connect with services, what data binding options we have, how MVVM can be implemented, how local and roaming storage works, how you can integrate with the Live SDK for single sign-in, how push notifications work and much more.
Fasten your seatbelt, this demo-driven session will take you to the next level!
Level 350
Technologies: Windows 8, Metro, WinRT, XAML

Find out more about Gill Cleeren


Ashic Mahtab - Understanding Monads with JavaScript / C#

Many of you who have dipped their toes in functional programming may have heard of an obscure term called Monads. While they are used frequently in functional languages, the idea is actually a mathematical concept. And the same idea can be used in mainstream languages as well (be it will a little less syntactic sugar). The main roadblock in understanding monads seems to be the requirement of knowing a functional language well enough to follow through the description. This need not be the case. In this session we will look at what monads are, and use them in commonly used languages like JavaScript / C#.

Find out more about Ashic Mahtab

Latest News

    DDD10 Site goes live

Sponsors

  • redgate
  • Gibralter Software
  • Developer Focus

Photos