DDD

DDD9 - 29th Jan 2011

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.

Ian Cooper - CQRS, Fad or Future?

Command-Query-Responsibility-Seperation (CQRS) is the new 'hotness' but beyond a desire to use the latest 'fad' what might actually lead you to adopt this approach over a conventional layered architecture. We will look at the business drivers behind command and query separation as well as a technique known as event sourcing. We will also look at steps to begin moving your application to CQRS

Find out more about Ian Cooper


Andrew Clymer - Is the free lunch back ?

Herb Sutter famously coined the phrase the “Free Lunch is over” back in March 2005, when it became clear that processor clock speeds were no longer obeying Moore’s law.  If developers wanted applications to go faster they could no longer rely on greater clock speeds, they would need to think differently and restructure their code to take advantage of multiple cores in order to get better and better performance.  It turns out parallelizing all but the most trivial piece of code is challenging.  .NET 4 attempts to assist the developer by providing support in the framework to assist parallelising algorithms through the use of parallel constructs like Parallel.For, and Parralel LINQ and a variety of concurrent data structures.  The framework vendors would like you to believe that the free lunch is now back, but whilst they can deliver a moderate free lunch, if you truly want a gut busting free lunch you will have to deploy a range of tricks for your algorithm to take full advantage of those multiple cores.

Find out more about Andrew Clymer


Kris Athi - Developing Windows Phone 7 Applications using Silverlight

This session will look at using Silverlight as your weapon of choice to target the Windows Phone 7 platform. This session will focus more on the platform specifics including:

·        Theming

·        Input & Navigation

·        Push Notifications

·        Location Service

·        Connected Apps (WCF)

·        Lifecycle (Tombstoning etc)

·        Launchers, Choosers

We will also take a look at how to architect an application using the MVVM design pattern.

Find out more about Kris Athi


Andy Gibson - NLog - Getting the Best From Your Logs

Logging, it can be a tedious and frustrating component to add to any application but it can be a critical tool in diagnosing and fixing bugs both during development and most importantly, post-launch. .NET has a number of logging frameworks but NLog has some very powerful features to bring to the table and this session will show you how to harness the power of the little logging framework that could in to your own applications. NLog can be used in a great number of scenarios ranging from ASP.NET deployment through to server monitoring and desktop application feedback.

This session will introduce you to NLog before showing you through live examples the main features of the framework and how you can use them in your own .NET development. If you are fed up tearing your hair out with your own logging solution or are simply open to seeing alternatives, this is the session for you!

Find out more about Andy Gibson


Gary Short - Asymptotics and Alogrithms - What You've Forgotten Since University


This presentation will be revision for some and new for others. In it we'll cover the process of calculating which algorithm is more efficient than another. This seems to be a forgotten skill since the advent of managed environments like the JVM and .Net, we assume that the environment knows best, but does it? I'll show you how to calculate algorithmic efficiency and demonstrate why it's still important in the age of .Net

Find out more about Gary Short


Phillip Trelford - Behavioural Driven Development (BDD) with F#


BDD is an Agile methodology that aims to get business and development folks collaborating.
F# is the powerful new programming language from Microsoft bundled with Visual Studio 2010.
Use both to test your .Net code for fun and profit!
 
Scenario: Deliver customer value
 Given collobaration with customers to produce user stories and acceptance tests
  And some awesome .Net code
 When a BDD framework that executes plain text specifications like SpecFlow or TickSpec
  And F# to write the tests
 Then profit!


Writing tests with F# is a great way to learn the language, this talk will take you through common steps with live code examples.

Find out more about Phillip Trelford


Rob Ashton - A Primer to RavenDB

RavenDB is a relatively new document database written by Ayende Rahien as an open source .NET project.

This is quite exciting as it means a focus on being able to talk to a document database with your chosen .NET language and support for writing custom map/reduce functions in your chosen .NET language too.

This means up front queries written using familiar LINQ syntax, and the ability to write plug-ins for RavenDB in a familiar environment.

In this session, I aim to give an introduction as to what RavenDB is, how to use it, and give a brief comparison to the other popular NoSQL projects that have appeared on the .NET scene in recent times.

Find out more about Rob Ashton


Craig Nicol - HTML5(.2) : The language of the cloud?

HTML5 has been around for a while, Chrome, Safari, Opera, Firefox and IE all now claim support, but is it worth it? What can it do?

This talk will demonstrate some of the new HTML5 features, with the help (or hindrance) of some, more or fewer, of the above browsers. As the browsers, and the standard evolves, this talk will attempt to show the current state of play near the cutting edge. And yes, some of it does work in IE6, with a little bit of work.

Find out more about Craig Nicol


Chris Hardy - Mobile Panel - From iPhone to HTML 5 to Windows Phone 7 to Android

A mobile panel featuring some of the top mobile application developers in the UK. Should create some interesting discussions!

Find out more about Chris Hardy


Ian Cooper - CQRS, Diving Deeper?

You understand the benefits of CQRS but now you want to implement it. In this presentation we will look strategies for implementing CQRS. We will delve into Event Sourcing, and understand how and when to implement this technique. We will also discuss NoSQL databases and show how they match up with our requirements. Finally we will look at what this means for your overall application architecture.

Find out more about Ian Cooper


Robert Greyling - Elegant MVC with Spark - The way views were meant to be

Many developers are desperately unsure when it comes to choosing a view engine to use when building MVC applications. A lot of them liked it better when there was only one the choose from with ASP.NET MVC - Webforms.

Many are now looking to Razor to save the day, but most haven't yet seen what's been sitting right under their noses.

When it comes to the Spark View Engine, you can easily go back to true separation of concerns between View and Controller. If you've always wanted clean markup and less tag soup in your views, then you'll want to come along and watch demonstrations of seldom used, but powerful features of Spark.

Find out more about Robert Greyling


Dan Maharry - Learning from the HTML5 Boilerplate

The best place to start your development is on solid foundations and in the web world, that means with a sound knowledge and understanding of HTML and script and those little browser quirks and tweaks which mean you can wrestle the best performance once server-side code has done its job. This session looks at the HTML5 Boilerplate project, the tips and tricks we can learn from it (cross-browser normalization, performance optimizations, even optional features like cross-domain Ajax and Flash) and suggests some additions we can add to it on the server-side. 

Find out more about Dan Maharry


Guy Smith-Ferrier - How To Achieve World(-Ready) Domination In Silverlight 4


So you’ve written your Silverlight 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). Whereas these concepts are well established in Windows Forms and ASP.NET, Silverlight is not only a cut-down version of the .NET Framework but also cross platform and client-side. In this session you will learn how to localize Silverlight applications using .resx files, download culture-specific resources on demand so that users only download resources for the culture they need, understand what System.Globalization types and properties Silverlight does not support and why, what globalization and font support you can expect on Windows and the Mac, what the Silverlight installation user experience is for non-English users and what language support you can expect from the Silverlight framework.

Find out more about Guy Smith-Ferrier


Colin Eberhardt - Writing Cross-Platform XAML Applications with WPF, Silverlight and WP7

WPF is the latest desktop application framework from Microsoft. With WPF the mix of XAML, Visual Studio and Expression Blend allow the creation of visually compelling applications. Silverlight took .NET and the WPF framework to the web, and more recently with Windows Phone 7, Silverlight has made its way to the mobile platform.

Whilst the possibility of using the same skills for developing on the desktop, web and mobile platforms is an exciting prospect in itself, what I think is more interesting is the possibility of sharing the same codebase between all three.

Silverlight is a stripped down version of WPF, with a few added extras which relate to the web context it lives within. WP7 uses a further stripped down version of the web-based Silverlight, again with a few extras relating to the web platform (touch and gesture support for example). What this means in practical terms is that in order to maximise the shared codebase, you need to target the shared parts of each API as much as possible.

In this talk I will help you navigate the differences between the three platforms, discussing practical techniques for code sharing, using existing patterns such as MVVM and some more traditional ones as well. I will also discuss how applications can be specialised for each platform to make best use of the platform's form factor and environmental constraints (for example touch interaction on the phone). With these techniques, a significant amount of code can be shared between the three platforms.

Find out more about Colin Eberhardt


Gary Short - Data Mining the Social Web


With so much customer interaction happening on social web sites right now, companies need to know what kind of information they can extract from them. In this presentation, I'll show you how to find out such information as: where you customers are, what they want, what they think of your products and who are the influencers in the network. This session will be a mix of theory and coded examples, fun and useful for anyone who works at a company who already make use of, or who are thinking of making use of social media as a marketing platform.

Find out more about Gary Short


Colin Gemmell - Testing Ruby and Rails

When developing in Ruby and with Rails tests aren’t just a nice thing to have in your code base they are essential to make sure your code will even run. In this talk we will look at test in both plain ruby and in rails. We will look at the various frameworks out there, when to use what and how to keep your tests maintainable and of constant value.

Find out more about Colin Gemmell


Mark Broadbent - Scaling out your data for Reporting

You are being asked to create more and more data bound reports which are becoming slower and slower to run. Even more worryingly you are being told that they are having a serious impact on production, there is nothing the DBA team can do and the problem is yours. You know that your application servers are running nowhere near capacity and your queries are optimized so the problem HAS to lie in the data layer. To make matters worse you have now been asked to write a very data intensive report and you know that things are going to go horribly wrong.
What are your options, what can you ask for and are you really sure your queries aren't the problem?
 
In this session you will learn about the various database scaling possibilities (in particular for SQL Server) to alleviate the pain for your reports, it is just possible your DBA is wrong and they just might learn a thing or two from you.

Find out more about Mark Broadbent


Andrew Clymer - Chaotic World of Async Programming

Out of the Parallel Framework Extensions came a new API for doing asynchronous programming.  This API has now been adopted by the.NET 4 Base Class Library as a means to write multithreaded applications, replacing the traditional Thread class and QueueUserWorkItem approach.  This talk will provide a whirl wind tour of the new API demonstrating how to implement a variety of asynchronous patterns utilising new .NET 4 and Visual Studio 2010, and highlighting various gotcha’s they are just simply inherent in asynchronous programming.

 

 

Find out more about Andrew Clymer


David McMahon - How to create Data Driven Silverlight Apps with no Code!

How would you like to build Silverlight Applications which are data driven without writing any code, just draw them, press a few buttons, and hey presto you have your Silverlight Dashboard in minutes few?  Well this you can do - with Visio Services in SharePoint 2010. Visio? That's a very un-cool app? SharePoint? That's for document management right?



Wrong on both accounts, cast aside your preconceptions, and come and see a lightening tour around one of the coolest yet least known and most powerful features of SharePoint 2010. And I mean cool. And powerful. Anybody can build a Data-bound Silverlight Dashboard in minutes, even Dave, and he will talk you though why, how and the whens of doing it.   See you there! 

Find out more about David McMahon


Chris Hay - Something kind of Oooh

Makes my heart go boom, boom.

Really, I have no idea why I'm quoting Girls Aloud lyrics.  Errggh, back to business, yes a session.  I guess I'm playing around lots with Windows Phone 7 just now.  If you want a session on WP7 then I'll give one on wherever I am on this by the end of Jan.  I guess voting for a session without knowing what will be presented is risky but I am

raising the bet, and calling the shots now on me, oooh
it really doesn't faze me, how you spend your time, ooh, ooh


Find out more about Chris Hay


George Adamson - Intro to jQuery Mobile

All of a sudden it's a doddle to make web apps for mobile devices.

We'll whiz through the goals of jQuery Mobile and ponder which devices we can target.

Romping through some code examples in George's usual unorthodox style, we'll build up pages using the cunning Unobtrusive techniques that jQuery Mobile is imbued with. We'll see how interactions can be added and how elements can be styled using jQuery UI theming.

Find out more about George Adamson


Oliver Sturm - Functional Programming in C#

C# introduced a number of language features that finally make it very easy to employ a functional style of programming. However, from the perspective of an imperative programmer, there are lots of questions surrounding functional programming. Why would I want to do it at all? Should I drop all state information in my apps? What useful functional patterns are applicable to C#? This session uses many practical examples and some theory to answer these questions, and it requires a good understanding of C# 3.0 language features.

Find out more about Oliver Sturm


George Adamson - AJAX with jQuery

Getting started on AJAX with jQuery:

We'll hurtle straight into using jQuery to handle your AJAX; Rummage about in code, 'hijaxing' links and doing fashionable things like Progressive Enhancement; JSON and JSONP; solutions to get around the 'Same Domain Policy'. We'll work through a bunch of examples to POST and GET data from various sources. If there's time we'll explore more of jQuery's AJAX methods and events and maybe even look at live ajax event handling in large single-page apps.

George's presentation style is entertaining and leaps along at quite a rate. (If you've attended George's Get Going with JQuery session then you have an idea what you're in for.) There will be a few minutes' refresher on jQuery basics then it's non-stop AJAX. Some experience with JavaScript will help but if your world is C# and curly brackets then I'm sure you'll be as happy as a pig in, er, shift+]

Find out more about George Adamson


Mark Rendle - Real-world Dynamic C#

This talk takes a look at the dynamic keyword, new in C# 4, and aims to cover the things which rely on this feature (such as COM interop in Silverlight 4); highlight some neat use-cases that will be useful across a range of projects; and maybe show that dynamic can grant some of the "I wish I coulds" that crop up in day-to-day programming. Also includes a look inside my open-source projects: IronMock, which uses embedded IronRuby to mock objects for testing; and Simple.Data, a data access library with magic methods based on the DynamicObject type.

Find out more about Mark Rendle


David Burns - Writing Maintainable Tests for Selenium

Selenium is one of the most widely used testing frameworks in the world. It has great support for driving a wide range of browsers and writing tests for it is extremely easy. People with little to no Selenium experience can write/record tests with little to no effort. 

It can be very easy to write brittle or hard to maintain tests - simple UI changes can require large amounts of work on the tests.

Imagine that you have 1000 tests and all your tests require you to login before completing a bit of work. 

if someone on your team changes the ID of the username text box and all your tests will start failing. 

Updating 1000 tests is going to be a lengthy, tedious process - something that you would want to avoid!

This talk will show how to create maintainable Selenium tests using the Page Object Model, with the goal of allowing even non-technical members of the team to be able to write new tests.

Find out more about David Burns


Garry Shutler - Hudson

Have you ever heard of Hudson? It's a continuous integration server which is very popular with Java developers and is completely open source. It has a massive library of plugins for every scenario and is blindingly simple to get up and running with.

I'll show you how easy it is to get up and running and the variety of build triggers, steps and outputs available out of the box. It is an extremely rich build ecosystem that has escaped the attention of many .NET developers for too long. That needs to be rectified.

Find out more about Garry Shutler


John McLoughlin - PRISM 4 with a dash of MEF


PRISM 4 now has out of the box support for MEF, we look at how we can use it and why MEF is an ideal addition to the framework.

Find out more about John McLoughlin


Mike Hadlow - Monads! What are they and why should I care?

Or: How to bend Linq syntax to your will.

These days, monads are the "celebrities of programming language theory". But they also inspire fear in the hearts of lowly imperative programmers like myself. However they are a very useful and powerful abstraction and they pop up everywhere. C#'s Linq syntax is Monadic, for example. Having an understanding of Monads will give you the conceptual tools to greatly simplify many programming challenges, from dealing with nulls and managing state, to asynchronous programming and parsing. This talk will be mostly C#, but I will also be introducing a little F# and even some Haskell.

Find out more about Mike Hadlow


Liam Westley - Go Asynchronous With C# 5.0

Anders Hejlsberg announced the Visual Studio Async CTP at PDC 2010.

This CTP means you don’t need to create callback functions anymore and can write code in the same way as if it were synchronous. The compiler will do all of the heavy lifting for you.

  public async void GetDDD9Sessions()
  {
     var ddd = "http://ddd.com/ddd9/Sessions.aspx";

     var sessions = await new WebClient().GetSessionsAsync(new Uri(ddd));
  }

In this session we'll see how the GetDDD9Sessions method works and why it allows you to make a pot of tea while it runs.

More info on the Visual Studio Async CTP, including download details at,

http://blogs.msdn.com/b/csharpfaq/archive/2010/10/28/async.aspx

Find out more about Liam Westley


Paul Stack - Beginners Guide To Continuous Integration

As developers who work in a team, we need to continually make sure that
code we check in to source control works integrates with our existing
code. In order to do this we need to get feedback from user check ins.
If we don't test code integration how do we know that our code still
works?


CI processes and CI tools can help us to do this in an effective way. In this session I will cover


· Benefits of CI


· Different types of CI tools 


· Tips on choosing the right CI tool


· CI as a form of feedback to development teams


· CI as a tool for release preparation





Find out more about Paul Stack


Garry Shutler - Lucene as a primary data store

So that NoSQL thing is cool but all the tools are barely out of development, unstable, require running over multiple servers and you're lucky if there's anything beyond basic .NET support.

Not so with Lucene. It's stable (first release in 2000), well backed (it's an Apache project) and there is a complete .NET port of it available. Twitter have used an optimized version of it for powering their real-time search of tweets. If you are looking for a solid, full-text search enabled document database then Lucene should be your first port of call.

I'll show you how to get started and how simple it is to test against.

Find out more about Garry Shutler


Guy Smith-Ferrier - Automating Testing With Windows Virtual PC


Windows Virtual PC is a free virtualization download from Microsoft for Windows 7. It allows you to run and maintain multiple virtual machines running different Microsoft operating systems in different configurations. Virtual Machines allow you to test your software in different configurations without the need for buying and maintaining separate physical machines. Unlike previous versions of Virtual PC, Windows Virtual PC includes an API for programmatically controlling these virtual machines. This session describes this API and shows you how to use it to run automated tests on multiple platforms. Subjects covered include basic use of the API, logging on to virtual machines, various methods for copying tests to virtual machines, running processes on virtual machines and collecting test results.

Find out more about Guy Smith-Ferrier


Oliver Sturm - Dynamic Consumption in C# 4.0

C# 4.0 supports the new "dynamic" keyword, which promises easy interaction with those parts of the programming world that are, well, dynamic in nature. In this session, Oliver walks you through several scenarios, interfacing with dynamic programming languages as well as Automation, and explaining some of the basics of how dynamic calls work in C#.

Find out more about Oliver Sturm


George Adamson - Get cracking with jQuery

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

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


Nathan Gloyn - Is your code S.O.L.I.D ?

Everybody keeps on about SOLID priniciples but what are they? and why should you care?

In this session I'll aim to walk through each prinicple telling you about that prinicple and examing why you should use it.

Once we've talked about the principle in theory we'll look to how we can put it into practice.

Find out more about Nathan Gloyn


Oliver Sturm - Functional Magic

Everyone has heard of functional programming these days, and many people are curious about its wonderful promises. On the .NET platform, some of these promises are hard to demonstrate due to lacking infrastructure. This session aims to show ideas like automatic parallelization or bug fixing in running systems on the basis of the existing platforms Haskell and Erlang, and compare with .NET.

Find out more about Oliver Sturm


Toby Henderson - The dark parts of Mono

I want to shine light on some of the parts of Mono that have been developed up above and beyond the standard framework.

Some of the libraries that have been built by people in the Mono world and
some of the experimental ideas that people have been playing with.

Find out more about Toby Henderson


Peter Marriott - Guerrilla tactics - Performance Testing MS SQL Server Applications

It's one week to go-live and you've been asked to check the application performance. A quick check show's it's going to be a long week for you. In this session we will use lots of practical examples to show how to use standard tools to examine the performance of an SQL Server application. We will see how to track down problems with poor design, slow SQL and locking. Then we'll see how to get some quick wins so that you have some chance of getting home on time.

Find out more about Peter Marriott


Garry Shutler - Documentation driven development

Writing APIs is hard. Getting them right the first time is near impossible. Documentation of APIs is vital but it is the first step to be dropped when the pressure is on. By driving your first implementation through documentation you avoid code churn and develop an API that is consumable and documented.

I'll explain the process, how to make it more bearable and the benefits gleaned from developing an API in this way.

Find out more about Garry Shutler


Ian Walker - From The Malverns, From The PC, To the Phone

In this session I will look at the specific challenges and decisions I made in redefining a desktop based Silverlight app to work on a Windows Phone device.  Along the way I will cover the Windows Phone advertising platform, the submission process for Apps into the WP7 marketplace and will also share details of the proceeds I have earned from my current portfolio of WP7 applications:

http://rd3d2.wordpress.com/2010/10/11/windows-phone-7-launch-apps/

(Oh, and quite possibly I will be handing out Channel 9 guys to anyone asking good questions.)

Find out more about Ian Walker


Abid Quereshi - Before and Beyond Scrum


In the realm of agile methodologies, Scrum is one of the more well known approaches for software development. Despite its popularity, there plenty case where teams have struggled using Scrum. In this talk we will look at Scrum from the perspective of the first principles from which it evolved; and how those principles help us deliver better software. At the heart of the discussion we will go deep into the origins of Scrum and the assumptions and principles it depends on. It also has been ten years since the Agile Manifesto was drafted. Scrum is but one of several agile methodologies represented on that great day. This talk will touch on the other methodologies and how they differ with or complement Scrum.

Find out more about Abid Quereshi


John McLoughlin - Getting dirty with AppServer Fabric and WF4


Windows Server AppFabric is the new home for code name "Dublin" which are the WF extensions and hosting environment announced way back in PDC 08.  We take a look into the murky depths to see what is and how it helps us with our Workflows.

Find out more about John McLoughlin


Chris Canal - Real World Application Development with NHibernate, FluentNHibernate and Castle Windsor

In this session we will look at how we can use a number of popular .Net OSS projects to develop a real world application. Based on production code, we will look at how using a combination of NHibernate, FluentNHibernate, Castle Windsor and a number of other OSS (AutoMapper, MvcContrib, FluentMvc) to reduce the friction of application development and remove a lot of infrastructural concerns. We will explore how we can leverage these tools to drive a convention based development experience and make it easier for ourselves and team mates to write applications and deliver what the client wants.

Find out more about Chris Canal


Nathan Gloyn - Dynamic Data - what is it and why should I care?

In .Net 3.5 SP1 Microsoft introduced Asp.Net Dynamic data a technology to help build CRUD websites quickly (don't tell the CQRS boys).

Since that time it has matured a little, the functionality has been made available directly in web forms and some functionality has been taken and utilised in parts of MVC.

In this session we'll look at using the Dyanmic Data functionality, what you can do with it now and how MVC has used some of it.

Along the way we'll see what trouble we can get into building some code to demonstrate its capabilities.

Find out more about Nathan Gloyn


Phil Collins - Rewriting software is the single worst mistake you can make - apparently.

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, 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.

[1] Joel Spolsky, Things You Should Never Do, Part I
http://www.joelonsoftware.com/articles/fog0000000069.html

Find out more about Phil Collins


Mark Broadbent - Clone Wars - Application vs SQL Cluster


Your application is being promoted to production. More to the point you have been told that your database and BI will now be hosted on a SQL Cluster. Will this matter? Will it effect your application? Should you have known about this during the design phase? Why are the DBAs doing this to you?

This presentation will show you what *exactly* is a SQL Cluster, providing you with a good understanding of what this will mean to you, what you need to do differently for your development solution and why you should even care.

Find out more about Mark Broadbent


Andy Gibson - What's New In ASP.NET MVC 2.0 and 3.0

ASP.NET MVC has been making waves over the past 2 years within the ASP.NET community and quite rightly so with features such as promoting separation of concerns, strongly typed views and a great routing system but it doesn't stop there. ASP.NET MVC 2.0 is now publicly available and is also being shipped with Visual Studio 2010 and hot on its heels is version 3.0 which adds Microsoft's new Razor view engine to the mix. But what new features have been brought to the table? What has changed? And most importantly, how will you be affected by upgrading from 1.0 or even 2.0? 

This session will bring you up to speed with all the information you need to know delivered through slides and more interestingly, live demos. Topics covered include (but not limited to)
- Razor 
- Model-Validator Providers
- Optional URL Parameters
- Template / HTML Helper improvements
- Improved Dependency Injection / Inversion of Control integration
- NuGet Package Manager
- Additions and updates to MVC Attributes
- Visual Studio integration improvements
- Breaking changes from MVC 1.0/2.0
- Pros and cons to MVC
- To upgrade or not to upgrade (or simply, Advice)

We will look at features brought in by both v2.0 and v3.0 of the MVC framework and provides a good source of information for those looking to learn more or to upgrade existing projects.

Find out more about Andy Gibson


Guy Smith-Ferrier - Enforcing Code ‘Beauty’ With StyleCop


In May 2008 Microsoft released StyleCop. StyleCop does for C# source code what FxCop does for assemblies – it applies ‘good practice’ rules to your source code. This means all those controversial code beauty issues like spaces, where to put curly braces, how and when to use blank lines and over 150 similar rules. This session gets you started using StyleCop, investigates a selection of rules, shows how to integrate StyleCop into Visual Studio and your build process and finally shows how to write your own custom rules. This is a low tech session on an essential tool that all C# developers should be using.

Find out more about Guy Smith-Ferrier


Richard Fennell - How can I add my own custom step to a TFS 2010 build, or do I even need to try?


The build service of TFS 2010 is now workflow based. This means that if you have created custom MSBuild tasks for the previous TFS 2008 build system they are not instantly useful to you now. So what are your options if you wish to add your own bespoke step to a 2010 build?

In this session I will discuss the various options open to you up to and including the creation of a coded custom activity and all the hoops you have to jump thought to get it working.

Find out more about Richard Fennell


Gary Short - How to Eat an Elephant


Or, how to architect a codebase wide refactoring project. In this advanced refactoring session, we'll look at such things as functional decomposition, code criticallity, the correctness continuum, sub-tree refactoring index and prioritisation. All these terms will be defined, explained and demonstrated, so that by the end of this presentation you'll have the knowledge and confidence to architect such a refactoring project... or eat an elephant, whichever you prefer.

Find out more about Gary Short


Gary Short - Is NoSQL The Future of Data Storage?


In this session I will introduce the NoSQL philosophy before going on to compare and contrast the strengths and weaknesses of the relational model versus the NoSQL model, showing scenarios where you would choose one over the other and explaining why. I will complete this session with a demonstration of an application written with a NoSQL storage layer and explain the advantages that accrue from that decision. By the end of this session you will have the answer to the question posed in the title.

Find out more about Gary Short


John Price - Media Center and Windows Home Server - Marriage in your living room


With the newest version of Windows Home Server, codename Vail, out soon, this talk will be what having your own server in your home.
No, you dont have to have a temperature controlled room, and lots of noisy fans and cables.
What you do get though is a way of shring media around your house and protection from deleting an important file from your laptop, with automatic backups.
Media center can schedule TV recording and ask Windows Home Server to distribute it around the house...
Theres loads more, but you'll have to listen to the session for that..;-)

Find out more about John Price


Nathan Gloyn - So you want to try scrum

So you've heard about agile and scrum but what's involved? How can it help?

In this presentation I'll give an overview of the basics of scrum for those that either don't know about it or haven't used it before and then attempt to outline the common problems that people come across once they've started using scrum.

Find out more about Nathan Gloyn


James Boother - Introduction to PowerShell


So you've heard SysAdmins and DBAs discuss PowerShell but you're not sure what it is or how to use it. Powershell is a powerful scripting engine that can be used to automate admin tasks making more efficient use of your time. This session will introduce Powershell so that you can add it to your toolbelt. I'll discuss some general admin tasks that can easily be automated with PowerShell and look at some developer specific tasks that can benefit from PowerShell knowledge.

Find out more about James Boother


Mark Rendle - Functional Alchemy: Tricks to keep your C# DRY

C# 3.0 and LINQ have made anonymous delegates and closures a hot topic. C# 4.0 improves on them. But these "functional" features have applications beyond messing about with IEnumerable. In this session I'll present 10 simple and not-so-simple uses of first-class functions to help cut down on repeated code and improve maintainability; hopefully you'll discover a new and exciting way of approaching coding problems.

The main thrust of it is that F# is cool and groovy but there's a lot of mileage in functional-style programming in C#, which people are using every day, so let's look at some cool examples there.

Find out more about Mark Rendle


David McMahon - SharePoint 101 - The Ghostables in the Machine ...

To many SharePoint is a mystery. Is it a document management system? Is it an Intranet Portal? A Web Content Management System? Who knows?  Probably nobody will ever decide. What is a fact though, is that it is probably Microsoft's most successful product outside of the Windows platform itself. 



Many an ASP.NET developer who have stuck their toe into the SharePoint waters have walked away confused and dissappointed, saying it's too constraining a platform.  Dave is here to tell you that is not the case.  Like any platform you need to know the fundamentals, and that's what he'll cover  in this sesson.  He'll cover how to build a highly stylised and branded SharePoint Internet Facing Website template which you can reuse over and over again from first principles.



Bring with you your ASP.NET, your XML/XSLT, your HTML and your CSS and of course your .NET code, and you'll see that anything is possible on the SharePoint platform ...

Find out more about David McMahon


Abid Quereshi - Azure and the new Application Lifecycle Management


The cloud has moved in and presents us with new opportunities and challenges. Microsoft’s cloud offering for application development, the Windows Azure Platform gives us a familiar environment to deploy our applications to but also a number of additional features that must be considered in our design. Azure will affect the way we architect our applications, the way we code, test and deploy. This talk highlights some of the new possibilities that Azure opens up for us. It will also highlight some of the new challenges we will face as developers, and finally some productivity tools that can help us on our way.

Find out more about Abid Quereshi


Guy Smith-Ferrier - Touch Me, Stretch Me, Squeeze Me: The Windows 7 WPF Multi-Touch Story


Arguably the most innovative and forward thinking feature of Windows 7 is its multi-touch support. And it should be no surprise to see that WPF 4 boasts the same multi-touch support that utilizes this Windows 7 multi-touch support where available. In this session we will explore this new feature in WPF 4 and see what we get for free (i.e. without having to do any work), what you can get with only minimal additional work and what takes a bit more time and effort. Along the way we’ll discover the basic touch support together with support for rotation, scaling and inertia as well as how to handle low level touch events using the raw API. Please note: the presentation shows true multi-touch – this is not a trick with two mice simulating multi-touch.

Find out more about Guy Smith-Ferrier


Garry Shutler - Enforcing process through source control

Imagine you could engrain your process within your source control. Making your use of source control mirror your scrum/kanban/latest fad board. It would be impossible for a story to pass through your development cycle without it following your process. Sound interesting? I'll describe how you can enable this through a DVCS such as Mercurial or Git.

Find out more about Garry Shutler


Mark Broadbent - Database Administration for the Developer

DBAs can be an awkward bunch. They either want to take all the control away from you for your development servers and databases or leave you to struggle completely on your own. This presentation will look to helping you find and achieve the right balance.

So how do you ensure your DBA gives you more control over your development environment? What do you need to ask them for and what do you do when you get it?
Once we have established how you (the developer) can obtain control over the database development platform, this presentation will demonstrate how you can:-

1. Use your new found DBA skills and rights to empower and speed up development and testing
2. Maintain the database environment easily and with no or little fuss
3. Understand what problems you might encounter when your databases are promoted to production

Since this presentation will be given by a real world DBA, any rotten food or empty bottles you may have on your person will be confiscated on entry.

Find out more about Mark Broadbent


Rob Ashton - Going crazy with StructureMap

Nearly everyone has their chosen IOC container these days, and mine is StructureMap.

In this session, I'll show you how to use and abuse StructureMap to do funky things like writing custom conventions, creating per-tenant instances/plug-ins, AOP techniques and utilising StructureMap to add some seriously pluggable behaviour to your application without having to resort to MEF madness.

Most of the techniques outlined in this session will be applicable to other advanced IOC containers, and I'll be waiting outside for the inevitable "<insert framework here> is better" tirades after the session...

Find out more about Rob Ashton


John McLoughlin - WF4 Deep Dive


We go down into the depths of Workflow 4, looking at Bookmarks, Persistence Extensions and lots of other interesting dark corners.

Find out more about John McLoughlin


Oliver Sturm - Dynamic C# 4.0 - the provider side

The integration of dynamic features in C# 4.0 is based on clever architecture that hooks into the DLR. Therefore, the APIs are complex (and well designed!) enough to allow for extensions, so that C# programmers can create their own dynamic classes, either to implement fully dynamic structures for use on the "static side" of .NET programming, or to provide APIs to dynamic languages. This session provides several practical examples!

Find out more about Oliver Sturm


Chris Canal - Introduction to Android Development using Monodroid

The Mono Project is an open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET that allows you to deploy .Net applications on non-Windows OS'.  Monodroid is their port of the the framework to Android to allow for C# based development on Android handsets.

In this session we will look at getting set up for Monodroid development, and explore writing a simple application.

Find out more about Chris Canal


Mark Rendle - Azure Table Service – getting creative with Microsoft’s NoSQL datastore

Microsoft’s Azure Table Service provides a low-cost solution for storing and searching structured data in “The Cloud”. Plus, it’s one of these cool new NoSQL data stores that everyone’s talking about. But it’s very, very different from SQL Server and other relational databases, so is it the right solution for your project?

In this session we’ll look at how Azure Table Service works and how to use it. We’ll look briefly at the high-level Data Services SDK, talk about its limitations, and then quickly move on to the REST API and how to use it to improve performance and reduce costs. We’ll make-up some pretend real-world problems and solve them in new and interesting ways. Code will be written. We’ll denormalize data (for fun and profit). We’ll talk about how certain social networking sites can deal with huge volumes of data so quickly, and why it sometimes go wrong.

We’ll also cover some of the very useful features of relational databases that Azure Table Service doesn’t provide, and whether they can be reproduced in other ways. Acronyms such as ACID, BASE and CAP will be tossed around with gleeful abandon. And we’ll discuss the relative costs of Azure Storage Services (including Blob, Queue and Drive) compared to SQL Azure, and ways to appease the bean-counters.

Find out more about Mark Rendle


Simon Stevens - A Beginner's Guide to Microcontrollers

So many developers limit their software to the virtual world inside their computers. I decided to break free from those virtual shackles and would like to inspire you to do the same.

Powerful systems on a chip called microcontrollers are becoming increasingly affordable. This, combined with greater accessibility, provides the opportunity for software developers to reach out into the physical world.

This session will cover the fundamentals including equipment you will need and where to buy it, setup, development environments, deployment, circuits and debugging. The demonstrations will show you how to code in C and C# using the .Net Micro Framework. If you have an interest in robotics, automation, monitoring or control systems but don't know how to get started, this is the session for you.

Find out more about Simon Stevens


Bruce Lawson - Open Web Standards: democratising and future-proofing the Web

In this session about the web and apps, Bruce will discuss:
- how open standards make the web open across browsers, operating systems and devices
- how open standards empower people in the developing world, and people with disabilities
- how HTML5, CSS 3 and W3C DAP future-proof the Web against proprietary closed architectures
- why it's bad to trap your bits in a box

Bruce evangelises Open Web standards for Opera Software. He's the co-author of Introducing HTML5 www.introducinghtml5.com (New Riders, July 2010), a member of the W3C Mobile Best Practices Working Group. His interests include hamster wrestling and lycanthropy.

Find out more about Bruce Lawson


Craig Nicol - Snake Charming : IronPython for fun and profit

Ever thought that {braces} are too ugly?

Ever wanted to write code that's easier to read than to write (yes Perl and PHP, I'm looking at you)?

Ever found C# generics aren't generic enough? Or wish var was a bit more flexible?

Want to see what .Net looks like if the C# dynamic keyword was more than just one way of doing things? If dynamic was the root of the language itself?

Ever wanted to write code like this?

SpreadTheWordResults = [tweet(x) for x in MyBlogPosts() if title.contains("awesome")]

Come and see what IronPython can do for you.

Find out more about Craig Nicol


David McMahon - A Quantum of Computing


In a 'left-field' session, Dave will cover the whys, hows and the maybes of Quantum Computing: a subject which might seem to have little relevance when you go back to the office true, but it is gathering interest and momentum as real production Quantum Devices get installed in the City of London to help secure sensitive information, and as a stream of technological breakthroughs bring these elusive computers ever nearer!

Dave will cover the reasons why scientists are researching Quantum Computing, why Quantum Computing is different from the computing of today, and why technologies like SSL may have met their match the day the first real Quantum Computer hits the streets ...

Find out more about David McMahon


Oliver Sturm - Concurrency using functional patterns in C#

The multi-core scalability issue is being widely discussed these days, and one solution that is regularly proposed involves the application of patterns from functional programming. One of the paradigms of FP is the immutability of data, which is what makes it appealing when it comes to concurrency. In this session, Oliver uses a practical example to show concurrency in action, based on immutable data and other functional approaches.

Find out more about Oliver Sturm


David McMahon - Building a Silverlight BI Dashboard

Bringing together a bunch of the latest technologies to make a website come alive is an exciting process and this is exactly what Ridgian did with one of their clients who wanted a BI solution integrated with mapping technology. Blending a mix of SharePoint/Silverlight/Bing Maps/PRISM Framework/Analysis Services/Reporting Services/Performance Point Server together to produce a stunning set of visuals for the users to work with. This solution is now a flagship system for the client who themselves plan to 'sell' their services through it and to expand it into all areas of their organisation.



In this session Dave will discuss the how using the Silverlight PRISM framework, his team integrated multiple data sources and third party components to create dynamic, intuitive and informative dashboards hosted on the Sharepoint  platform.

Find out more about David McMahon


Gary Short - .Net Collections Deep Dive


The .Net framework provides a rich set of collection classes, but how much do you really know about them? In this presentation we'll take a deep dive into the .Net 4.0 collection classes and examine which are best for what scenario and why. By the end of the presentation, you'll no longer be happy just reaching for the same old collection you always had before. Instead, you'll be armed with the information required to pick the best collection for your needs.

Find out more about Gary Short


Stuart Lodge - Cross-eyed mobile development

A practical example of how a mobile app...

- was born in Windows Mobile 6 - WinForms Compact Framework
- from Window Mobile 6 to iPhone (via MonoTouch)
- from MonoTouch iPhone to C++ for Bada
- from MonoTouch back to Windows Phone 7
- from Windows Phone 7 on to either MonoDroid or Java (decision currently pending!)
- and along the way there was a sideline off towards Symbian too (Net60 RIP)

Some truths about cross-platform code sharing - where it works and where it hurts.

Find out more about Stuart Lodge


Phil Pursglove - Cache Out with Windows Server AppFabric


"I have yet to find a single ASP.NET application that could not benefit from using caching"
ScottGu


Distributed caching allows you to spread a logical cache over a number of physical servers; this has benefits for scalability and availability. In this session we'll look at the distributed caching features of Windows Server AppFabric (the project formerly known as Velocity). We'll examine the two concurrency models provided by AppFabric for handling multiple servers updating the same cached data, and we'll look at how to increase the findability of your cached objects by using the tagging API in AppFabric. We'll also look at how to use AppFabric as an ASP.NET session state provider to share your sessions across your server farm.


If you're doing ASP.NET on multiple servers, this is a must-see session!

Find out more about Phil Pursglove


Stuart Lodge - What your apps get up to when you're not watching

Using C#, Dynamic Linq, IIS, Silverlight and PivotViewer to explore what exactly your app and your users are up to after you've hit the publish button.

Includes a code sample section on how to get data into PivotViewer using the PAuthor library. 

Find out more about Stuart Lodge


Andrew Clymer - Its a Kind of Magic

In the early days of C# there was virtually a 1-1 mapping between C# and IL. Much has changed since C# 1, the developer is encouraged to simply describe their intent and the compiler builds the appropriate code. This talk will dive under the hood and show how various C# features like iterator methods, anonymous methods, extension methods and dynamic all result in code gen by the C# compiler

Find out more about Andrew Clymer


John Price - Computer, earl grey tea, hot


Ok, so this is a little more difficult to arrange with home automation, but controlling lights, heating, curtains and just about every other device in your house just by talking to it, is actually Science Fact. Take a tour around our automated house and see whats possible with a little effort. 

Find out more about John Price


Sam Bourton - Expression Blend for WPF and Silverlight Developers



Not many WPF/Silverlight developers are using Expression Blend yet; but those that are, couldn't do without it...

In this fast-paced talk and demonstration I will be showing how to use Blend in your everyday design and development tasks to rapidly create visually engaging User Interfaces and controls, and dramatically increase your productivity in building WPF/Silverlight front-ends.

We will cover real-world practical tasks such as: How to use the Blend environment, access key functionality, and use the different types of controls; Create and manage Resources and resource dictionaries within Blend; Create, edit, and apply Styles and Control Templates to different controls; Bind controls to sample and runtime ViewModel data and Commands; Make your applications stand out with Animations, Visual States, Effects, Fluid Layouts, and Behaviors; and some random tips and techniques I've learnt along the way.

While the presentation is targeted at developers with WPF/Silverlight experience who have not yet gotten to grips with Blend, if you're new to WPF/SL it will be a great introduction, and if you're familiar with Blend already then hopefully you will pick up something new.


Find out more about Sam Bourton


Mark Rendle - How to Manage Your Manager

Developers and managers generally don't understand each other. Developers know the arcane languages of machines and are motivated by inexplicable forces. Managers seem to spend half their time in meetings and the other half emailing each other Word documents and Excel spreadsheets. The result is that both sides end up frustrated, feeling that the other is stopping them from doing their job to the best of their ability.

In this talk, I will share some of the things I've learned in 20 years of being managed, including:
  • How to get the PC you want, with the two big monitors and a decent CPU.
  • Also, how to get extra software, training, and even sent to conferences.
  • How to adopt best practices, like TDD, pairing and daily stand-ups even though your manager doesn't know what they are, and probably doesn't care.
  • How to earn the respect of people who seem to actively like wearing suits.
  • Maybe, possibly, how to respect them just a little bit.

Find out more about Mark Rendle


Garry Shutler - Haml and Sass

Ah HTML, the format we love to hate. For anyone who has grown tired of angled brackets, particularly missing off the closing tag and owning a page's layout, Haml is what you have been looking for. There isn't an angled bracket in sight (unless you want there to be) and the output is always clean (though you can make it dirty if you want to for performance).

The perfect accompaniment for the hotness of Haml is the sweetness of Sass. Ever thought, damn I wish you could have variables in CSS. Well Sass gives you that. Scoped styles? Yep. Mixins (sharing styles across elements)? Yep. Calculations? Yep. And you want this to be easy to work with and minify? You ask for so much! But you get it anyway. Sass is everything you wished CSS was.

I'll show you how to get started and some of the features available to you.

Find out more about Garry Shutler


Helen Emerson - CSS is code, how do we avoid the usual code problems?

CSS has a lot of the same problems that application code has but none of the language features that help us keep out of trouble. Start writing anything complicated and you end up with problems like dependencies, cohesiveness and creating the right abstractions. It's pretty easy to end up with CSS that is impossible to predict unless you understand it all. I'm going to tell the tale of my team's journey to write CSS that is flexible, easy to understand and easy to change. 

Find out more about Helen Emerson


John Price - Fitting a new kitchen sync - oData, oData, oh oh oh!


At PDC10 in October, Microsoft announced an update to the Sync Framework. Its one heck of an update though, adding a load of functionality to make sync'ing to Silverlight, Windows Phone 7 clients so much easier, including built in classes for oData formats, particuarly moving just about all of the processing off into the service side, enabling the client to be a slim as possible. We'll take a look at this new sync stuff, and its new tooling to see how it can significantly improved the user experience when a network is not available, without adding a load of work to the developer.

Find out more about John Price


Oliver Sturm - Taking Efficiency One Step Further - F#

Microsoft Research describes F# as "a scripted/functional/imperative/object-oriented programming language". Combining all those aspects in one language is certainly not an easy task, but they've done a good job of it. F# is interesting both as a language to actually consider for your projects and as a source of features that might make it into the mainstream .NET languages tomorrow. The session uses many examples to give you a good general overview of F#.

Find out more about Oliver Sturm


Colin Gemmell - Being Dynamic with Ruby

It should come as no surprise that Ruby is a dynamic language but do you know how to use this to you advantage. In this talk we will look at how to use Ruby’s dynamic nature to keep you code DRY, write less code and make your code easier to maintain. As a final example we will see how to use these same tricks how to create a simple DSL.

Find out more about Colin Gemmell


Colin Gemmell - From .NET to Rails, A Developer’s Story

In May 2010 I changed jobs, leaving the land of .NET to the world of Ruby on Rails. In this talk I will go over what I found easy, hard or just completely misunderstood when starting with Ruby and Rails. While focusing on my experiences we will also look at the differences between .NET development and Ruby development.

Find out more about Colin Gemmell

Sponsors

  • Microsoft
  • DevExpress

Photos