One of the first major deliverables produced by the patterns & practices team is Application Architecture for .NET: Designing Applications and Services. This guide is now getting close to 5 years old (it was written by Ed long before I joined the team), but unlike some of our other early deliverables, we've found that it's still surprisingly popular for its age. This is probably partly due the fact that the guide is written at a sufficiently high level for it to still be relevant despite the changes and advances to the platform.
Even so, we've decided that this guide is now due for a refresh, and we'd like your help in figuring out which direction we should take it. In addition to the changes in the underlying platform and in the industry's understanding of architecture, the patterns & practices portfolio has evolved significantly, and we want to be thoughtful on what type of content should go into an updated Application Architecture guide and what content should go in other places such as software factories or Enterprise Library.
Feel free to send us any weird and wonderful ideas you have for the next version of the guide, but to get you thinking, here are a few questions that are on my mind:
- How and when (if at all) do you use the current Application Architecture for .NET guide?
- Do you believe the fundamental architectural concepts described in the guide are still relevant today?
- How deep should we go in mapping the architectural concepts to implementation details (considering that implementation technologies change relatively quickly)? Should we use patterns as the ‘bridge’?
- Should the new guide assume a SOA frame, or should we cover other high-level architecture styles? Keep in mind that SOA was not such a widely-adopted concept at the time the original guide got published.
- Should we assume that readers of the new guide will be familiar with and using other p&p deliverables such as software factories and Enterprise Library?
- Should the guide duplicate or cross-reference the guidance in our software factories that describes the design of specific application styles (smart client, web service, etc)?
- Which new application styles and scenarios should we describe in the new guide? For example, Business Intelligence, Human Workflow, Peer-to-Peer, Grid, Agent, Mesh, Model-based design, etc
- Should the new guide cover any emerging architectural styles or implementation technologies, or only focus on proven practices?
I'm quite excited about finally updating this guide, and we're looking forward to your perspectives on what it should be.