My Favourite Design Patterns
Gary Short
To achieve the best solution to a design problem requires expert knowledge. Expert knowledge takes time, collaboration and dedication to acquire. This session will enable you to leave having gleaned some of that expert knowledge from the speaker's 20 years in the software industry. We will define the term 'design pattern', explore its method of application, and we will work through some real-world and pan-industry examples that you can expect to encounter during the software development process.
Commercial Software Development - Writing Software Is Easy, Not Going Bust Is The Hard Bit
Liam Westley
There are three excellent ways to lose lots of money; open a restaurant, own a football club or start a software development company.
Liam will provide a personal and subjective view on some of the tactics that he has found useful when running a software development company, to ensure it enjoys a 1st birthday party.
Liam will be assuming that you can write code, work hard, have commercial ideas and have clients or sales leads.
We won't focus on any particular technology or framework, instead topics will include; Support, Testing, Logging, Time/Cost Estimates, Paperwork and Sales Pitches.
The Parallel Task Library in .Net 4.0
Steve Strong
Introduced with .Net 4.0, the Parallel Task Library gives a new approach to task-parallel programming. In this session we dive into the details of the library, looking at the various ways that it can be utilised. We will cover a number of areas, including:
• Data Parallelism, using Parallel.For and Parallel.ForEach
• Task Parallelism, using Parallel.Invoke and the Task class
• Exception Handling
• Cancellation
• Asynchronous continuation patterns
• PLinq
The session is aimed at the intermediate developer – a good understanding of basic threading principles is a requirement.
Using the new Developer and Test features of VS 2010 to track down and fix bugs
Richard Fennell
How often do you find that bugs are reported in testing that are hard to reproduce in development? With Visual Studio 2010 there are a whole range of tools to assist in this process. In this demo lead session I will show an end to end demo of:
• Creating an automated build
• Defining and running manual tests in Microsoft Test Manager
• Logging bugs in TFS that include debug information such as videos and Intellitrace generated by the tester
• Fixing the bug based upon the information stored by the system to aid the debugging process
Functional Alchemy - 10 tricks to keep your C# DRY
Mark Rendle
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.
Don't be passive, be Reactive
Chris Alcock
This session will introduce the reactive style of programming using the Microsoft Research Reactive Extensions (Rx) projects for both JavaScript and C#, showing how Reactive programming using Observable collections can make your applications simpler to understand at the code level, more responsive for your users, and how the Reactive Extensions fit in with familiar concepts such as jQuery, the HTML DOM, LINQ, etc.
Inversion Of Control with Castle Windsor
Colin Gemmell
An IOC container can be one of the most useful and powerful tools in a enterprise development. Castle Windsor is one of the most mature of these IOC frameworks and in this talk we will look at the principles behind using an IOC, how to configure Castle Windsor, and how to integrate it into several different project types.
So you want to try Scrum?
Nathan Gloyn
So what will scrum do for you? How can it help? In this presentation I aim to give an overview 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.
Crap Code and the Disasters it Causes
Phil Winstanley
There you sit, it's a Wednesday morning and before you is the code another developer has left you. At first you can't believe your eyes, perhaps you misread it... No ... He really did write it like that ... Crap Code.
In this session we'll explore Crap Code that we've come across in the past few years of Consulting, the problems it causes and the solutions to the idiocy of other developers.
You'll laugh, you'll cry - but most of all, you'll come out of the session realising you're a pretty damn good developer.
No slides will be available for this session
Windows Phone: Why you should care and how to get started
Matt Lacey
Microsoft have just launched Windows Phone 7 Series. But what does this mean for you? Why should you care if you've never developed applications for phones before? And how do you get started when you do want to develop for a Windows Phone?
This session will attempt to convince you that understanding mobile development is useful for all developers and then demonstrate how to create an application for a Windows Phone 7 Series device.
Leveraging Convention Over Configuration
Chris Canal
Convention over Configutation was made popular by Rails and a number of OSS .Net projects taken advantage of the idea. In this session we will look at a number of these projects, and examine how you can take advantage of Convention over Configuration in your application.
The real world experience of a startup using and fighting with Azure
Ross Scott
We've seen the demos, written the "Hello World" but is it really a good idea? This session will take you through the first 3 months of a new startup developing on the Azure platform. The startup exists for one reason: to make a profit. So this will be the driving factor throughout the session. Areas of Azure covered will be:
• Cost driven development, a new way of thinking.
• Data storage, should I go with the easy option or change my relational mindset?
• Lessons learnt.
• What's it actually going to cost me?
• A few tips and tricks
Contractual Obligations: Getting up and running with Code Contracts
Barry Carr
Code Contracts is Microsoft's implementation of Programming by Contract for .NET (also known as Contract Programming, or Contract-First development). Code Contracts are a way of adding executable specification documentation to your code; they can also work hand-in-hand with your unit tests. All-in-all, the aim of Code Contracts is to improve the quality and reliability of your software.
With Code Contracts you can: specify a method's pre-requisites (pre-conditions) and what it guarantees to do for it's caller (post-conditions); you can also specify what conditions must always be in-place throughout the the lifetime of an object (object-invariants). Code Contract conditions can be tested at runtime and, if you're using Team System, they can also be analysed and tested statically after your application has compiled. Using the features of code contracts in conjunction with your unit tests can help you find potential problems in your code sooner.
Code Contracts will be part of .NET 4.0 and are also available for .NET 3.5; they're language agnostic and integrate into Visual Studio (08 & 10).
The aim of this session is to show you how to write code contracts: method pre and post condtions along with object-invariants and we'll look at how Code Contracts work. In addition, we'll also be looking at using Code Contracts with TDD and how to use Contracts with Interfaces.
AJAX with jQuery
George Adamson
Getting started on AJAX with jQuery: An introduction to AJAX and it's benefits; how to use jQuery to handle your AJAX; 'hijaxing' and progressive enhancement with jQuery and AJAX; solutions to get around the 'Same Domain Policy'. We'll work through a bunch of examples to post and get data from various sources.
This session keeps moving at quite a rate. We begin with 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 fine.
What's New in ASP.NET MVC 2.0
Andy Gibson
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 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?
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)
o Areas o Model-Validator Providers
o Optional URL Parameters
o Template / HTML Helper improvements
o Additions and updates to MVC Attributes
o Visual Studio integration improvements
o Breaking changes from MVC 1.0
o To upgrade or not to upgrade (or simply, Advice)
Introduction to PRISM
John McLoughlin
PRISM is the latest incarnation of the Composite Application Guidance from the MS Patterns and Practices team. The guidance allows you to build extensible application quickly and easily in either WPF or Silverlight. In this session I'll show you how easy it is to build a WPF application and then extend it with PRISM.
Command Query Responsibility Segregation approaches to System Design
Neil Robbins
The Command-Query Responsibility Segregation (CQRS) pattern has recently been getting a lot of deserved attention. In short, it requires separate command and query paths through a system. Through this CQRS promises simple yet powerful designs and codebases. CQRS approaches can also help leverage other patterns such as Event Sourcing and Pub-Sub to open up some very interesting opportunities.
I have been involved now in the development of two systems which seek to follow this pattern, one in insurance & one in public examinations. My experience, and that of my colleagues, has been that the systems built following this pattern have been more flexible, simpler, and quicker to develop than had been achieved following more conventional ActiveRecord/DDD approaches.
This talk will introduce you to the CQRS approach, what it means to the design of your systems, how it builds on DDD (domain driven design, not the conference :), when you might (or might not) want to use it, and bootstrap you to begin using this approach within your own contexts.
Clean User Interfaces with ASP.NET WebForms
Dave Sussman
ASP.NET WebForms often gets denigrated for producing bad HTML, a fault that occurs if you stick with the default behaviour. However, with a small amount of customisation and knowledge of the ASP.NET server controls, you can create rich applications that have a clean and standards compliant user interface. This talk focuses not only how to break ASP.NET WebForms out of its mould, but also on why you shouldn't just accepts the defaults.
Testing ASP.Net MVC Applications
Kevin Jones
One of the primary advantages to using MVC.Net is to be able to test. So how do we do it? Testing models we know about, but what about testing controllers. In this talk we will take a simple application that uses is written in such a way as to be difficult to test and talk about the steps to enable testing. We will show how to use controller factories to create controllers and IoC to inject dependencies into the controller which will unable us to write tests.
T4 and how it can be used for code generation in Visual Studio 2008 / 2010
Rob Blackmore
T4 is the best kept secret in Visual Studio. In this session I will look at how it can be used to generate any type of code be it a class, T-SQL or even XAML!