This is part two in a series of articles on .NET architecture. You can start here for the introduction and table of contents. This post will focus on the overarching principles I’ve developed when tackling application architecture. The focus of this post is not on individual technologies (except when used as examples), but on general rules of thumb that I use to help guide me when making architectural decisions.
I consider these to be the axioms of my architectural philosophy. And like axioms in philosophy, if you disagree with any of these foundational principles, you will most likely disagree with a lot of the conclusions I draw based on them. But that’s okay – no matter what principles you hold, someone will always disagree. :-)