skip to content
Stylized letter A in teal with pink sparkle accents Khalid Abuhakmeh

The F5 Manifesto For .NET Developers

/ 3 min read

You heard it here first. I am starting a cult and I am your supreme leader.OK fine, I am not starting a cult but I want to impart a philosophy to you that has served me well.

After pulling any project down from source control, and running your build script (if present), I should be able to hit F5 (Start Debugging) and get a functioning application.

So how do you follow the F5 Manifesto?

Use no project dependencies that are “Tools”

I love my tools, they make me productive, but… I never force my workflow or toolset on other developers. If I decide to install a tool like ReSharper, I do not make it a requirement for other devs to work on the project. If I need to buy a $2000 piece of software (not called Visual Studio) just to run your codebase I’d rather not work on it.

Application Awareness

If the project depends on folders existing, databases having particular schema, or services being installed then it should be self-aware. If a particular aspect of the application is missing, it should be smart enough to install them automatically. I’m looking at you database migrations. You make me complete.

Unit Tests

The manifesto also applies to unit tests. The application includes your unit tests, so write a TON of them and them make sure they all run without the need of super fancy tools.

NuGet Dependencies When You Can

Your application should lean as heavily on NuGet based dependencies (if it needs it). Downloading a zip file called lib is unacceptable these days and if I see and MSI you will get an ear full.

Setup / Script / Batch Files

So you’re app has a bit more complexity and you need X to happen before hitting F5. Script the process and make sure it is repeatable. If it isn’t scripted then it is magic… bad magic.

Seed Data

So I’ve been able to run your application, but it requires current data. Make sure that current data is easily accessible and the loading process is scriptable. If I have to corner the DBA and fight them in a thunderdome arena for the right to have access then you are doing it wrong.

So there you have it. Follow these steps and you will be following the F5 manifesto. Did I miss anything?

Update: Jeremy Miller mentioned I should include running any build scripts into the idea and I think it is a good idea.

Related Posts