I stumbled upon Microsoft Blueprints after looking at some sample code from Vertigo. Essentially it is a replacement for the Guidance Automation Extensions (GAX) from the patterns and practices group. GAX was an effort to allow architects to create templates and guidance for frameworks, components and patterns that may be used by a development team – Blueprints is the next stage in this development.
Using the Visual Studio plugin, you can use what are termed “Blueprints”. A Blueprint contains guidance for a particular task. For example, setting up authentication and authorization on a website could be contained within a blueprint. This could be as simple as a workflow document (termed a readable resource), or it could be that the Blueprint provides a custom tool or template for doing the task (termed an executable resource).
Why bother with this? Well, the main benefit is that you can create your own Blueprints (that can be distributed via RSS feeds). When you work through a few software projects, you start to see the same things needing to be done again and again. Building a Blueprint is not neccessarily trivial, but what you can do is to ‘harvest’ all of the common code between these projects.
Why not just create a common code library? That is a good idea no matter what else you do, but what Blueprints does is allow a delivery of the common code and the documentated guidance as well, all in the one package. A Blueprint can be composed of other Blueprints, so there is a lot of scope to create some complex, task-specific Blueprints quickly.
Is it any good? After high hopes for it, I am a little disappointed overrall. It is quite cumbersome to create your own Blueprints, and the documentation support is quite lacking, which leads to a pretty steep learning curve to get the most out of it. Also, the use of a Blueprint within your project is more intrusive than I would like … it just doesn’t feel friendly. Future versions of Visual Studio are set to include some incarnation of Blueprints, but I think it needs to improve a bit more first.

