This page contains various talks I've given at Microsoft Developer Days and the London .NET Users Group. Some of the content maybe a little out of date.

Please email any feedback to talks (at) zurgy .org

The ABC's of Windows Communication Foundation

VBUG Bristol, 10th September 2008

Writing a client-server application used to be pain. For projects that were exclusively .NET you could use Remoting but suffered from brittle interfaces. If you wanted to talk to other platforms the choice was webservices which offered a small subset of features. Two different APIs, two different sets of capabilities. This talk introduces Windows Communications Foundation, Microsoft's unified API for anything communications related in .NET. See how it lets you create fast, non-brittle communications channels between your application components and external services.

  • Advantages of WCF
  • * Callbacks and Avoiding Deadlocks * Differences between Remoting and WCF * Versioning - why you don't want to upgrade all your clients simultaneously * Additional features - reliability, guaranteed message ordering * Streaming
By the end of the talk Addresses, Bindings and Contracts should all make sense to you.

Being Lazy With Microsoft Windows Powershell

Microsoft Developer Day 6, 24th November 2007
Bristol .NET User's Group, 23rd September 2008

Go With the Flow - An Introduction to Windows Workflow

Microsoft Developer Day 4, 2nd December 2006
VBUG Manchester .NET User's Group, 28th February 2007
London .NET User's Group, 26th April 2007
VBUG London .NET User's Group, 21st May 2008
VBUG Reigate .NET User's Group, 3rd June 2008
VBUG Bournemouth .NET User's Group, 15th July 2008

Go With the Flow Changing business requirements are the bugbear of the application developer. The Windows Workflow Engine (WWF) allows business rules to be modelled in a graphical environment, possibly by a business analyst rather than the developer, making changes easier to accommodate. I gave a shorter version of this talk at DDD4.
Go With the Flow - Understanding Windows Workflow Foundation (PDF 2.5Mb)
Sample Code (25Kb)

Honey They Stole My Data - Windows Vista BitLocker

London .NET User's Group, 22nd February 2007

Honey They Stole My DataWindows BitLocker encrypts the entire contents of your hard disk ensuring thieves won't get their hands on your data. This talk explains how to install BitLocker, gotchas to watch out for and how to use the recovery mechanisms if the primary key copy of your key gets lost. N.B. If you lose your key you will not be able to access your data.
Honey They Stole My Data (PDF 710Kb)

How to Write Crap Code in C#

How to Write Crap Code in C# - Anti-Patterns for Performance

Microsoft Developer Day 4, 2nd December 2006
Developer Day Scotland, 10th May 2008
London .NET User's Group, 25th June 2008
Bristol .NET User's Group, 23rd September 2008
Most developers want the best possible performance from their code. Inspired by the idea of "proof by contradiction" this talk looks at how to write slow code and how the .NET platform, Windows and the processor will try and sabotage your efforts. A variety of techniques for inefficient coding will be covered including:
  • Flow control with Exceptions
  • Abusing Threads
  • Misuse of the Heap
It's one man against some of the brightest minds in Redmond, seeking an answer to the question "How Slow Can It Go?"
How to Write Crap Code in C# (PDF 1.7Mb)

Pimp Your Data Structures

Pimp Your Data Structures

London .NET User's Group, 7th December 2005

How to write data visualizers for use in Visual Studio 2005.
Pimp Your Data Structures (PDF 156Kb)

C# Turns Three

C# Turns Three - The Missing LINQ

Microsoft Developer Day 2, 22nd October 2005

An introduction to the new features in C# 3.5 and LINQ.
C# Turns Three (PDF 1.3Mb)

How to .NET Everywhere it Doesn't Just Run on Windows

.NET Everywhere it Doesn't Just Run on Windows

Microsoft Developer Day 1, 14th May 2005

The Mono project is an Open Source implementation of the .NET Runtime that runs on Linux, Mac OS X and Windows. This talk explains what it can do.
.NET Everywhere - It Doesn't Just Run on Windows (PDF 1.3Mb)