I recently ran across a Patterns & Practices effort from J.D. Meier’s blog, where he was promoting an effort that has produced application architecture guidelines, specifically called the App Arch Guide and posted on CodePlex. The information is distributed over a set of pages, and is organized by the following diagram:
It’s an evolving work but I like the practical way that it’s organized, and that it’s not heavy (easy to digest, wiki format).
The abstract page sums the effort up pretty well:
The purpose of the Application Architecture Guide 2.0 is to improve your effectiveness building applications on the Microsoft platform. The primary audience is solution architects and developer leads. The guide will provide design-level guidance for the architecture and design of applications built on the .NET Framework. It focuses on the most common types of applications, partitioning application functionality into layers, components, and services, and walks through their key design characteristics.
- Canonical app frame - describes at a meta-level, the tiers and layers that an architect should consider. Each tier/layer will be described in terms of its focus, function, capabilities, common design patterns and technologies.
- App Types - 5-7 canonical application archetypes to illustrate common application types. Each archetype will be described in terms of the target scenarios, technologies, patterns and infrastructure it contains. Each archetype will be mapped to the canonical app frame. They are illustrative of common app types and not comprehensive or definitive.
- Arch Frame - a common set of categories for hot spots for key engineering decisions.
- Quality Attributes - a set of qualities/abilities that shape your application architecture: performance, security, scalability, manageability, deployment, communication, etc.
- Principles, patterns and practices - Using the frames as backdrops, the guide will overlay relevant principles, patterns, and practices.
- Technologies and capabilities - a description/overview of the Microsoft custom app dev platform and the main technologies and capabilities within it.
That just sounds like informative reading, doesn’t it?
A couple of other reasons why I like this:
- The application types include mobile applications.
- There is a video section, that has videos on MVC and MVP.
- Has other interesting artifacts like cheat sheets, Explained pages, Guidelines, and How To’s.
- We’ll hopefully see this in book form.
So, check it out and see if this is a good effort.