Those of you who remember ye olde days of yore when .NET 1.0 and 1.1 were the latest and greatest thing may also remember the Patterns and Practices Application Architecture Guide. It was published waaay back in December 2002, and it has consistently been one of our most popular guides overs the years.
But time and technology has marched on relentless and so the AAG is getting a bit long in the tooth now. The architectural principles and concepts that it describes are still highly relevant of course - which is one reason for its longevity and continued popularity - but the guidance on how to best leverage the .NET platform and its constituent technologies to build applications and solutions desperately needs an update.
It's been a long time coming but I am happy to report that we are now working on Application Architecture Guide V2.0 (I guess that should be Second Edition). J.D. Meier is driving this project and has just announced the effort on his blog, along with a pointer to the project's CodePlex site here.
A lot has changed since 2002, both in terms of the technologies and the capabilities of the .NET platform and in the types of applications that folks are building these days. Application Architecture is obviously a rather large field and we could produce volumes and volumes of guidance on all of its various aspects, but this would not be practical. So to keep the guide manageable and useful we're hoping to keep the guide around the 200 page mark. The guide will be somewhat high level, as was the first edition, but it will serve as a frame of reference and a jumping off point for more detailed guidance on specific technologies, patterns and techniques.
We've had strong feedback that the guide should provide guidance on choosing the right architecture for an application, and on choosing the right technologies to implement that architecture. For the former, the guide will describe a number of Application Archetypes, canonical architectures for common application types. For the latter, the guide will describe the capabilities and salient features of the various technologies and provide guidance on how to choose between them. The guide will also cover Architectural Qualities - like performance, scalability, manageability, etc - that have to be factored in when building applications.
J.D. describes some of the high level areas that we're looking to cover in the guide in his blog post. What would you like the guide to cover? Are there specific topics or areas that are important that are missing or under-represented? Head on over to the AppArch CodePlex site and let us know!