This presentation has the overall theme of Maintainability - how can we make our code easier to maintain - with a particular focus on tools and processes we can adopt to further this goal.

The presentation begins with four overarching concepts that provide guidance for maintainable systems.

  • Perspicuous - maintainable systems are clear, concise and accurate.

  • Discoverable - maintainable systems are easy to navigate.

  • Principled - maintainable systems are build according to specific known principles.

  • Safe - maintainable systems are safe to explore and modify.

In addition to these guidelines, the presentation offers eight tips you can apply to your systems.

  • Being Perspicuous - Name things well; provide commentary.

  • Being Discoverable - A place for everything and everything in its place; practice cartography.

  • Being Principled - Always do things well; write opinionated code.

  • Being Safe - Avoid temporal couplingl keep things consistent.

Here’s the linkfest of tools and other sites mentioned in the talk … - an online dictionary with crosslinks for synonyms and other related words.

FxCop - static analysis of compiled assemblies reporting on potential areas for improvement.

Gendarme - Open source equivalent to FxCop, from the Mono project.

Visual Studio Class Diagrams - draw class diagrams of your code that automatically update as you work.

Snippets - capture code structures in a reusable form.

(Also see event and propn)

StyleCop - static analysis of C# source code encouraging compliance with Microsofts own guidelines.
(Also see the StyleCop Blog)

NAnt - .NET project automation.
(See also NAntContrib)

NUnit - the original unit test framework for .NET.

TestDriven.Net - friction free unit testing for Visual Studio.

Sandcastle - Microsoft’s own tool for building the MSDN help, now released for your own use.
(See also Sandcastle Help File Builder on CodePlex)

TeamCity - Simple, easy to use Continuous Integration from Jetbrains. Free for up to 20 build configurations, even for commercial use.

ReSharper - Turbo charge your Visual Studio experience. Personal licenses can follow you from engagement to engagement!


Audience Date
Wellington .NET User Group May 2009