Software developmentVisual Studio

Making mistakes: Part 2

Delete all your binaries before a release build. An incredibly easy way to mess up your project is forgetting to delete all your own binaries before building and testing a release candidate. It’s so easy to miss that most companies run dedicated build and test systems that enforce a clean environment before any meaningful action is taken. Not all developers can enjoy that kind of safety at work, and even less of us at home. But first, let’s go ahead and dig a little deeper into how Visual Studio treats assembly references, and why this is so important. There are three kinds of assembly references that I am aware of and each one has its specific behaviour. There is the project reference that we get a lot in… Continue Reading…

Software developmentVisual Studio

Resolving cached NuGet packages at runtime

Roughly seven months ago I came across an odd behaviour of Visual Studio that I thought wasn’t possible and that broke my code at runtime. I asked on Stack Overflow hoping that someone could point me in the right direction, but that didn’t happen and Google wasn’t very helpful either. Curiosity finally made me tackle the issue myself once I found the time for it. This article is basically Helmuth von Moltke’s theory of war set in a programming scenario, and it serves as a good example of how important it is to adapt your design during development. No design or architecture extends with certainty beyond the first encounter with a user or a working prototype. Helmuth von Moltke the Elder (if he had been a nerd) Before… Continue Reading…

CryptographySoftware developmentVisual Studio

A kingdom for a strong name

We all have become increasingly paranoid when dealing with computers and software in any way and most of us run some kind of firewall and antivirus software to feel safer on the internet. I won’t go into details on this very wide subject, but I want to elaborate on what we as the developers of software can do about it. I’ll stick to my little .NET world to demonstrate how we can achieve higher security with applications. As already hinted at by the title, today’s topic is strong name signing. Quick refresher on strong-naming A good resource is the Microsoft page on strong-named assemblies, and you should definitely read that. But I’m going to outline the matter any ways so read on if you wish. Strong-naming an assembly… Continue Reading…