Over the last 2 days I've struggling to fix a really irritating bug. One of my projects inside a solution didn't work after deployment. Usually these things come out during the final stage of system testing on the development side. But not this time.
In the end it turned out that the entity framework was not correctly installed in the project. Although trivial problem it was a nightmare to find it. So this highlighted few important things about application development:
- Test the system thoroughly - something may not work when it should
- Create system blackbox - just like in an airplane have the last 2 days (or so) of data to analyze. If the system crashes unexpectedly you may have a starting point, eliminate certain possibility and spot patterns.
- System tracing - this one is kind of related to the previous point. Tracking can highlight all the different ways in which the system can behave and most importantly: whether or not your system is ready to deal with it.
I think I will create a set of articles explaining how to create all of those things in .NET.