<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Edward Bakker</title>
    <link>http://www.edwardbakker.nl/</link>
    <description>Guidance, automation and factories</description>
    <language>en-us</language>
    <copyright>Edward Bakker </copyright>
    <lastBuildDate>Mon, 12 Jan 2009 14:07:57 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.2</generator>
    <managingEditor>ef.bakker@quicknet.nl</managingEditor>
    <webMaster>ef.bakker@quicknet.nl</webMaster>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=d8b88244-a09a-4f4f-a3fc-83fa08187c8d</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,d8b88244-a09a-4f4f-a3fc-83fa08187c8d.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,d8b88244-a09a-4f4f-a3fc-83fa08187c8d.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=d8b88244-a09a-4f4f-a3fc-83fa08187c8d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      In an <a href="http://www.edwardbakker.nl/PermaLink,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx">earlier
      post</a> we mentioned that it is relatively easy to get the <a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=20784">current
      Blueprints bits</a> running on the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;displaylang=en">Visual
      Studio 2010 CTP</a> by modifying the .MSI in Orcas. At that time we forgot to mention
      that we need a few extra steps to really get things going with Blueprints in Visual
      Studio 2010. 
   </p>
        <p>
      When trying to build a Blueprint solution in Visual Studio 2010 we will notice the
      following error in the error window. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsVisualStudio20102_C3B3/Error.png">
            <img title="Error" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="163" alt="Error" src="http://www.edwardbakker.nl/content/binary/BlueprintsVisualStudio20102_C3B3/Error_thumb.png" width="870" border="0" />
          </a>
        </p>
        <p>
      As we can see, the build task ‘BASM’ is failing to retrieve the correct path. This
      task is implemented in the ‘<strong>Microsoft.SoftwareFactories.Blueprints.Builds.Tasks.dll</strong>’
      that can be found in ‘<strong>..\Program Files\MSBuild\Microsoft\Blueprints\2.0</strong>’.
      It turns out that the execute method of this tasks looks for a (hardcoded) ‘String
      Value’ called ‘Blueprints’ under the ‘HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<strong>9.0</strong>\MSBuild\SafeImports’
      tree. Because we replaced all ‘9.0’ in ‘10.0’ in the Blueprints .MSI to get it to
      install on Visual Studio 2010 this value doesn’t exist under ‘<strong>9.0</strong>’
      anymore (but does under ‘<strong>10.0</strong>’).
   </p>
        <p>
      To fix this we can either make sure to skip this particular replacement when modifying
      the .MSI in Orcas or manually add the Blueprints ‘String Value’ under the ‘<strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\MSBuild\SafeImports</strong>’
      and give it the value ‘<strong>C:\Program Files\MSBuild\Microsoft\Blueprints\2.0\Microsoft.SoftwareFactories.Blueprints.targets</strong>’. 
   </p>
        <p>
      Another issue occurs when debugging our Blueprint in Visual Studio 2010. Currently,
      there is no property page implemented for the Blueprint project type (.bpproj) and
      therefore starting up Visual Studio <strong>2008</strong> is hardcoded in the Blueprints
      core. To get around this we can add an empty C# ‘Class Library’ project to our solution,
      set this project as the ‘StartUp’ project and make this project startup Visual Studio
      2010 (property page) when debugging. Although this solution does work it makes the
      Visual Studio instances in my Virtual PC image VERY slow (don’t know why). Another
      option, that does work for me, is to leave the Blueprint project as the ‘StartUp’
      project, let it start up a Visual Studio 2008 instance, (and simple ignore it) manually
      start another Visual Studio 2010 instance and attach this instance to the debugging
      process of the Visual Studio instance we started the debug session in. 
   </p>
        <p>
      Now everything is in place to *really* start developing Blueprints for Visual Studio
      2010 CTP!
   </p>
        <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=d8b88244-a09a-4f4f-a3fc-83fa08187c8d" />
      </body>
      <title>Blueprints: Visual Studio 2010 (2)</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,d8b88244-a09a-4f4f-a3fc-83fa08187c8d.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,d8b88244-a09a-4f4f-a3fc-83fa08187c8d.aspx</link>
      <pubDate>Mon, 12 Jan 2009 14:07:57 GMT</pubDate>
      <description>&lt;p&gt;
   In an &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx"&gt;earlier
   post&lt;/a&gt; we mentioned that it is relatively easy to get the &lt;a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=20784"&gt;current
   Blueprints bits&lt;/a&gt; running on the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;amp;displaylang=en"&gt;Visual
   Studio 2010 CTP&lt;/a&gt; by modifying the .MSI in Orcas. At that time we forgot to mention
   that we need a few extra steps to really get things going with Blueprints in Visual
   Studio 2010. 
&lt;/p&gt;
&lt;p&gt;
   When trying to build a Blueprint solution in Visual Studio 2010 we will notice the
   following error in the error window. 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsVisualStudio20102_C3B3/Error.png"&gt;&lt;img title="Error" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="163" alt="Error" src="http://www.edwardbakker.nl/content/binary/BlueprintsVisualStudio20102_C3B3/Error_thumb.png" width="870" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   As we can see, the build task ‘BASM’ is failing to retrieve the correct path. This
   task is implemented in the ‘&lt;strong&gt;Microsoft.SoftwareFactories.Blueprints.Builds.Tasks.dll&lt;/strong&gt;’
   that can be found in ‘&lt;strong&gt;..\Program Files\MSBuild\Microsoft\Blueprints\2.0&lt;/strong&gt;’.
   It turns out that the execute method of this tasks looks for a (hardcoded) ‘String
   Value’ called ‘Blueprints’ under the ‘HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\&lt;strong&gt;9.0&lt;/strong&gt;\MSBuild\SafeImports’
   tree. Because we replaced all ‘9.0’ in ‘10.0’ in the Blueprints .MSI to get it to
   install on Visual Studio 2010 this value doesn’t exist under ‘&lt;strong&gt;9.0&lt;/strong&gt;’
   anymore (but does under ‘&lt;strong&gt;10.0&lt;/strong&gt;’).
&lt;/p&gt;
&lt;p&gt;
   To fix this we can either make sure to skip this particular replacement when modifying
   the .MSI in Orcas or manually add the Blueprints ‘String Value’ under the ‘&lt;strong&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\MSBuild\SafeImports&lt;/strong&gt;’
   and give it the value ‘&lt;strong&gt;C:\Program Files\MSBuild\Microsoft\Blueprints\2.0\Microsoft.SoftwareFactories.Blueprints.targets&lt;/strong&gt;’. 
&lt;/p&gt;
&lt;p&gt;
   Another issue occurs when debugging our Blueprint in Visual Studio 2010. Currently,
   there is no property page implemented for the Blueprint project type (.bpproj) and
   therefore starting up Visual Studio &lt;strong&gt;2008&lt;/strong&gt; is hardcoded in the Blueprints
   core. To get around this we can add an empty C# ‘Class Library’ project to our solution,
   set this project as the ‘StartUp’ project and make this project startup Visual Studio
   2010 (property page) when debugging. Although this solution does work it makes the
   Visual Studio instances in my Virtual PC image VERY slow (don’t know why). Another
   option, that does work for me, is to leave the Blueprint project as the ‘StartUp’
   project, let it start up a Visual Studio 2008 instance, (and simple ignore it) manually
   start another Visual Studio 2010 instance and attach this instance to the debugging
   process of the Visual Studio instance we started the debug session in. 
&lt;/p&gt;
&lt;p&gt;
   Now everything is in place to *really* start developing Blueprints for Visual Studio
   2010 CTP!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=d8b88244-a09a-4f4f-a3fc-83fa08187c8d" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,d8b88244-a09a-4f4f-a3fc-83fa08187c8d.aspx</comments>
      <category>Blueprints;VSTS 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=e8551df6-102b-4477-bb38-69fddbef32a8</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,e8551df6-102b-4477-bb38-69fddbef32a8.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,e8551df6-102b-4477-bb38-69fddbef32a8.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=e8551df6-102b-4477-bb38-69fddbef32a8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      In a <a href="http://clemensreijnen.nl/post/The-VSTA-Layer-Diagram-and-the-P5eP-App-Arch-Guide-20.aspx">previous
      post</a> we already mentioned <a href="http://www.codeplex.com/blueprints">Blueprints</a> as
      a means for integrating architectural guidance from the <a href="http://www.codeplex.com/AppArchGuide">p&amp;p
      App Arch Guide</a> in the VS2010 IDE. Clemens already <a href="http://clemensreijnen.nl/post/Getting-App-Arch-Guid-Knowledge-in-VSTS2010-e28093-Part3-Create-Diagrams-from-Code.aspx">mentioned</a> how
      we can capture some of this knowledge in an item template and use the <a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.templatewizard.iwizard(VS.80).aspx">IWizard</a> interface
      to populate the diagram. Now, let’s see how we can use Item Templates in a slightly
      different way and use them in a Blueprint to unfold a predefined architecture (Layering
      Diagram) in VS2010. 
   </p>
        <p>
      The first step is to capture the architectural guidance in a Layering Diagram that
      we can reuse. To do this we can we create a new Modeling project and add a Layering
      Diagram to this project. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/AddTemplate.png">
            <img title="AddTemplate" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="AddTemplate" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/AddTemplate_thumb.png" width="558" border="0" />
          </a>
        </p>
        <p>
      In this diagram we can model all layers, dependencies, etc. to make it reflect our
      architectural guidance. Once we are done it might look something like this. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Predefined.png">
            <img title="Predefined" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="386" alt="Predefined" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Predefined_thumb.png" width="631" border="0" />
          </a>
        </p>
        <p>
      To make this diagram reusable we have to create an Item Template for it. Unfortunately
      VS2010 doesn’t let us select the layering diagram in the Export Template Wizard so
      we have to manually create an item template for our layering diagram. The easiest
      way to do this is to create an Item Template for another file type (i.e. C# class)
      and modify the ‘MyTemplate.vstempate’ file in the .zip file that VS2010 generates
      and add the two diagram files (.layer and .layer.diagram) to the .zip file. The modified
      MyTemplate.vstemplate file should look something like this. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/VSTemplate.png">
            <img title="VSTemplate" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="201" alt="VSTemplate" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/VSTemplate_thumb.png" width="989" border="0" />
          </a>
        </p>
        <p>
      Now we are done creating a reusable layering diagram we can integrate this with a
      Blueprint. (of course we can create more item templates for other architectures defined
      in the p&amp;p App Arch Guide) 
   </p>
        <p>
      In this post we will not explain how to create a Blueprint from scratch but this is
      pretty easy. Especially after watching the <a href="http://channel9.msdn.com/Niners/Michael%20Lehman/">How
      To videos</a>. Once we have created our Blueprint we can use a Workflow Foundation
      based workflow to actually add our predefined layering diagram to our solution. 
   </p>
        <p>
      To do this, we first have to add a Workflow Command to our Blueprint (<a href="http://channel9.msdn.com/posts/MichaelLehman/Authoring-Blueprints-Custom-Command-Extensions-using-Window-Workflow-WF/">screen
      cast</a> for more details) that will enable our Blueprint users add a layering diagram
      to their solution. The documentation that comes with the Blueprint Workflow Command
      provide us with the code we need to execute a workflow. However, this code assumes
      we are executing a ‘XOML only’ workflow. In our case we choose to use a codebehind
      for our workflow so therefor we use the ‘ExecuteWorkFlow’ method instead of the ‘ExecuteXomlWorkflow’
      method. The code in your command might look like this (added some hardcoded paths
      instead of calls to helper class to get the correct paths). 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Code.png">
            <img title="Code" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="197" alt="Code" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Code_thumb.png" width="1008" border="0" />
          </a>
        </p>
        <p>
      Now that we have the command in place we have to create the actual workflow that we
      execute from the command. After installing Blueprints we get a few extra activities
      that we can use in the workflows in our Blueprint. Below we can see how this workflow
      might look like. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Workflow.png">
            <img title="Workflow" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="667" alt="Workflow" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Workflow_thumb.png" width="418" border="0" />
          </a>
        </p>
        <p>
      The ‘ShowDialog’ activity in this workflow is a normal ‘Code’ activity that in this
      case shows the (very simple) dialog that is displayed below. This dialog lets the
      user select the architecture that will be used in his solution. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Dialog.png">
            <img title="Dialog" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="231" alt="Dialog" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Dialog_thumb.png" width="417" border="0" />
          </a>
        </p>
        <p>
      Once the architecture is selected, the workflow continues with the ‘CheckProjectExists’
      activity. This Blueprint specific activity checks if the current solution contains
      a ‘Modeling project’ with the name ‘Architecture’ (I am sure you can come up with
      a better name ;)). If not, the project is created. After that the ‘AddLayeringTemplate’
      activity is executed to actually unfold the selected item template that will add the
      predefined layering diagram to our modeling project in our solution. 
   </p>
        <p>
      In this post we deliberately left out some implementation details that you might need
      to implement this yourself. However, hopefully it does explain the basic scenario
      of how to add some architectural guidance from <a href="http://www.codeplex.com/AppArchGuide">p&amp;p
      App Arch Guide</a> by using <a href="http://www.codeplex.com/blueprints">Blueprints</a> and
      VS2010 Layering diagrams. In future posts we will ellaborate on this scenario, share
      some more technical details and eventually might even end up with a working solution
      that we can share :-). <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=e8551df6-102b-4477-bb38-69fddbef32a8" /></p>
      </body>
      <title>Integrating Blueprints, Layering Diagrams and Architecture Guide</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,e8551df6-102b-4477-bb38-69fddbef32a8.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,e8551df6-102b-4477-bb38-69fddbef32a8.aspx</link>
      <pubDate>Wed, 07 Jan 2009 13:20:17 GMT</pubDate>
      <description>&lt;p&gt;
   In a &lt;a href="http://clemensreijnen.nl/post/The-VSTA-Layer-Diagram-and-the-P5eP-App-Arch-Guide-20.aspx"&gt;previous
   post&lt;/a&gt; we already mentioned &lt;a href="http://www.codeplex.com/blueprints"&gt;Blueprints&lt;/a&gt; as
   a means for integrating architectural guidance from the &lt;a href="http://www.codeplex.com/AppArchGuide"&gt;p&amp;amp;p
   App Arch Guide&lt;/a&gt; in the VS2010 IDE. Clemens already &lt;a href="http://clemensreijnen.nl/post/Getting-App-Arch-Guid-Knowledge-in-VSTS2010-e28093-Part3-Create-Diagrams-from-Code.aspx"&gt;mentioned&lt;/a&gt; how
   we can capture some of this knowledge in an item template and use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.templatewizard.iwizard(VS.80).aspx"&gt;IWizard&lt;/a&gt; interface
   to populate the diagram. Now, let’s see how we can use Item Templates in a slightly
   different way and use them in a Blueprint to unfold a predefined architecture (Layering
   Diagram) in VS2010. 
&lt;p&gt;
   The first step is to capture the architectural guidance in a Layering Diagram that
   we can reuse. To do this we can we create a new Modeling project and add a Layering
   Diagram to this project. 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/AddTemplate.png"&gt;&lt;img title="AddTemplate" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="AddTemplate" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/AddTemplate_thumb.png" width="558" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   In this diagram we can model all layers, dependencies, etc. to make it reflect our
   architectural guidance. Once we are done it might look something like this. 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Predefined.png"&gt;&lt;img title="Predefined" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="386" alt="Predefined" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Predefined_thumb.png" width="631" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   To make this diagram reusable we have to create an Item Template for it. Unfortunately
   VS2010 doesn’t let us select the layering diagram in the Export Template Wizard so
   we have to manually create an item template for our layering diagram. The easiest
   way to do this is to create an Item Template for another file type (i.e. C# class)
   and modify the ‘MyTemplate.vstempate’ file in the .zip file that VS2010 generates
   and add the two diagram files (.layer and .layer.diagram) to the .zip file. The modified
   MyTemplate.vstemplate file should look something like this. 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/VSTemplate.png"&gt;&lt;img title="VSTemplate" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="201" alt="VSTemplate" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/VSTemplate_thumb.png" width="989" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   Now we are done creating a reusable layering diagram we can integrate this with a
   Blueprint. (of course we can create more item templates for other architectures defined
   in the p&amp;amp;p App Arch Guide) 
&lt;p&gt;
   In this post we will not explain how to create a Blueprint from scratch but this is
   pretty easy. Especially after watching the &lt;a href="http://channel9.msdn.com/Niners/Michael%20Lehman/"&gt;How
   To videos&lt;/a&gt;. Once we have created our Blueprint we can use a Workflow Foundation
   based workflow to actually add our predefined layering diagram to our solution. 
&lt;p&gt;
   To do this, we first have to add a Workflow Command to our Blueprint (&lt;a href="http://channel9.msdn.com/posts/MichaelLehman/Authoring-Blueprints-Custom-Command-Extensions-using-Window-Workflow-WF/"&gt;screen
   cast&lt;/a&gt; for more details) that will enable our Blueprint users add a layering diagram
   to their solution. The documentation that comes with the Blueprint Workflow Command
   provide us with the code we need to execute a workflow. However, this code assumes
   we are executing a ‘XOML only’ workflow. In our case we choose to use a codebehind
   for our workflow so therefor we use the ‘ExecuteWorkFlow’ method instead of the ‘ExecuteXomlWorkflow’
   method. The code in your command might look like this (added some hardcoded paths
   instead of calls to helper class to get the correct paths). 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Code.png"&gt;&lt;img title="Code" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="197" alt="Code" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Code_thumb.png" width="1008" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   Now that we have the command in place we have to create the actual workflow that we
   execute from the command. After installing Blueprints we get a few extra activities
   that we can use in the workflows in our Blueprint. Below we can see how this workflow
   might look like. 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Workflow.png"&gt;&lt;img title="Workflow" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="667" alt="Workflow" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Workflow_thumb.png" width="418" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   The ‘ShowDialog’ activity in this workflow is a normal ‘Code’ activity that in this
   case shows the (very simple) dialog that is displayed below. This dialog lets the
   user select the architecture that will be used in his solution. 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Dialog.png"&gt;&lt;img title="Dialog" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="231" alt="Dialog" src="http://www.edwardbakker.nl/content/binary/IntegratingBlueprintsLayeringDiagramsand_8F8A/Dialog_thumb.png" width="417" border="0"&gt;&lt;/a&gt; 
&lt;p&gt;
   Once the architecture is selected, the workflow continues with the ‘CheckProjectExists’
   activity. This Blueprint specific activity checks if the current solution contains
   a ‘Modeling project’ with the name ‘Architecture’ (I am sure you can come up with
   a better name ;)). If not, the project is created. After that the ‘AddLayeringTemplate’
   activity is executed to actually unfold the selected item template that will add the
   predefined layering diagram to our modeling project in our solution. 
&lt;p&gt;
   In this post we deliberately left out some implementation details that you might need
   to implement this yourself. However, hopefully it does explain the basic scenario
   of how to add some architectural guidance from &lt;a href="http://www.codeplex.com/AppArchGuide"&gt;p&amp;amp;p
   App Arch Guide&lt;/a&gt; by using &lt;a href="http://www.codeplex.com/blueprints"&gt;Blueprints&lt;/a&gt; and
   VS2010 Layering diagrams. In future posts we will ellaborate on this scenario, share
   some more technical details and eventually might even end up with a working solution
   that we can share :-). &lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=e8551df6-102b-4477-bb38-69fddbef32a8" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,e8551df6-102b-4477-bb38-69fddbef32a8.aspx</comments>
      <category>Blueprints;ALM;Architectural Guidance</category>
    </item>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=cccad39d-80dc-4d91-905d-b5753b44e291</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,cccad39d-80dc-4d91-905d-b5753b44e291.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,cccad39d-80dc-4d91-905d-b5753b44e291.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=cccad39d-80dc-4d91-905d-b5753b44e291</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      During the development of our Blueprints we can sometimes use a little extra help
      to understand what is really going on. It turns out that if we add a Registry setting
      called ‘<strong>EnableDeveloperFeatures</strong>’ under the ‘<strong>HKey_Local_Machine\Software\Microsoft\Blueprints</strong>’
      key and set its value to ‘true’ we get a few extra features enabled in the Blueprint
      Manager that might help understand (debugging) Blueprints . In the screenshot below
      we can see the checkboxes that become visible after we have added the ‘<strong>EnableDeveloperFeatures</strong>’
      setting to the Registry. The checkboxes are read only in the Blueprint Manager dialog
      but can be set through the Registry. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Settings.png">
            <img title="Settings" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="330" alt="Settings" src="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Settings_thumb.png" width="606" border="0" />
          </a>
        </p>
        <p>
      As we can see, the ‘Custom Menu Filter’ checkbox is checked which means custom menu
      filters are enabled by default for our Blueprints. We can disable this feature by
      adding a ‘<strong>DisableCustomMenuFilters</strong>’ setting under the ‘<strong>HKey_Local_Machine\Software\Microsoft\Blueprints</strong>’
      key and set its value to ‘false’. 
   </p>
        <p>
      To enable logging in the Blueprint Manager we can add the ‘<strong>BPMLogging</strong>’
      setting to the Registry and set its value to ‘true’. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/PermaLink,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx">In
      an earlier post</a> I demonstrated how to create a custom menu filter. After adding
      a ‘<strong>MenuDebugging</strong>’ setting to the Registry and set its value to ‘true’
      we can see that Blueprint Manager now logs (output window) that it actually detects
      the custom menu filter that we created and also determines if it should be visible
      or not.
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Log.png">
            <img title="Log" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="255" alt="Log" src="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Log_thumb.png" width="688" border="0" />
          </a>
        </p>
        <p>
      Hopefully, enabling these features help a little during the development of your Blueprints…
   </p>
        <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=cccad39d-80dc-4d91-905d-b5753b44e291" />
      </body>
      <title>Blueprints: EnableDeveloperFeatures</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,cccad39d-80dc-4d91-905d-b5753b44e291.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,cccad39d-80dc-4d91-905d-b5753b44e291.aspx</link>
      <pubDate>Sat, 27 Dec 2008 22:24:13 GMT</pubDate>
      <description>&lt;p&gt;
   During the development of our Blueprints we can sometimes use a little extra help
   to understand what is really going on. It turns out that if we add a Registry setting
   called ‘&lt;strong&gt;EnableDeveloperFeatures&lt;/strong&gt;’ under the ‘&lt;strong&gt;HKey_Local_Machine\Software\Microsoft\Blueprints&lt;/strong&gt;’
   key and set its value to ‘true’ we get a few extra features enabled in the Blueprint
   Manager that might help understand (debugging) Blueprints . In the screenshot below
   we can see the checkboxes that become visible after we have added the ‘&lt;strong&gt;EnableDeveloperFeatures&lt;/strong&gt;’
   setting to the Registry. The checkboxes are read only in the Blueprint Manager dialog
   but can be set through the Registry. 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Settings.png"&gt;&lt;img title="Settings" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="330" alt="Settings" src="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Settings_thumb.png" width="606" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   As we can see, the ‘Custom Menu Filter’ checkbox is checked which means custom menu
   filters are enabled by default for our Blueprints. We can disable this feature by
   adding a ‘&lt;strong&gt;DisableCustomMenuFilters&lt;/strong&gt;’ setting under the ‘&lt;strong&gt;HKey_Local_Machine\Software\Microsoft\Blueprints&lt;/strong&gt;’
   key and set its value to ‘false’. 
&lt;/p&gt;
&lt;p&gt;
   To enable logging in the Blueprint Manager we can add the ‘&lt;strong&gt;BPMLogging&lt;/strong&gt;’
   setting to the Registry and set its value to ‘true’. 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx"&gt;In
   an earlier post&lt;/a&gt; I demonstrated how to create a custom menu filter. After adding
   a ‘&lt;strong&gt;MenuDebugging&lt;/strong&gt;’ setting to the Registry and set its value to ‘true’
   we can see that Blueprint Manager now logs (output window) that it actually detects
   the custom menu filter that we created and also determines if it should be visible
   or not.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Log.png"&gt;&lt;img title="Log" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="255" alt="Log" src="http://www.edwardbakker.nl/content/binary/BlueprintsEnableDeveloperFeatures_131E1/Log_thumb.png" width="688" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   Hopefully, enabling these features help a little during the development of your Blueprints…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=cccad39d-80dc-4d91-905d-b5753b44e291" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,cccad39d-80dc-4d91-905d-b5753b44e291.aspx</comments>
      <category>Blueprints;Software Factories</category>
    </item>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=f9693cff-97a4-4e40-8eea-b944c3b62eef</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=f9693cff-97a4-4e40-8eea-b944c3b62eef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      For some (experimental) work that I am currently doing with <a href="http://clemensreijnen.nl/">Clemens</a> we
      needed a version of <a href="http://www.codeplex.com/blueprints">Blueprints</a> that
      installs on the current <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;displaylang=en">VS
      2010 CTP</a>. I am sure every developer already knows how to modify an .MSI package
      by using ‘Orca’ (part of Windows SDK) so I am not going to explain in detail how to
      do that. However, the good news is, that if we open the <a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=20784">Blueprints
      2.1.2 CTP</a> in Orca, replace every occurrence of ‘Visual Studio 9.0’ by ‘Visual
      Studio 10.0’ and save it again we are good to go. No other changes needed. The modified
      installer runs without issues on <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;displaylang=en">VS
      2010 CTP</a> and so far we haven’t found any problems with Blueprints on VS 2010. 
   </p>
        <p>
      If you are interested in the work we are doing, I suggest to go read an <a href="http://www.clemensreijnen.nl/post/The-VSTA-Layer-Diagram-and-the-P5eP-App-Arch-Guide-20.aspx">introductional
      post</a> that <a href="http://www.clemensreijnen.nl/">Clemens</a> just posted which
      describes some early ideas. Expect some more details in the next coming days, weeks,
      months on both <a href="http://www.clemensreijnen.nl/">Clemens</a> blog and/or this
      one. 
   </p>
        <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=f9693cff-97a4-4e40-8eea-b944c3b62eef" />
      </body>
      <title>Blueprints: Visual Studio 2010 CTP</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx</link>
      <pubDate>Tue, 23 Dec 2008 20:58:40 GMT</pubDate>
      <description>&lt;p&gt;
   For some (experimental) work that I am currently doing with &lt;a href="http://clemensreijnen.nl/"&gt;Clemens&lt;/a&gt; we
   needed a version of &lt;a href="http://www.codeplex.com/blueprints"&gt;Blueprints&lt;/a&gt; that
   installs on the current &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;amp;displaylang=en"&gt;VS
   2010 CTP&lt;/a&gt;. I am sure every developer already knows how to modify an .MSI package
   by using ‘Orca’ (part of Windows SDK) so I am not going to explain in detail how to
   do that. However, the good news is, that if we open the &lt;a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=20784"&gt;Blueprints
   2.1.2 CTP&lt;/a&gt; in Orca, replace every occurrence of ‘Visual Studio 9.0’ by ‘Visual
   Studio 10.0’ and save it again we are good to go. No other changes needed. The modified
   installer runs without issues on &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;amp;displaylang=en"&gt;VS
   2010 CTP&lt;/a&gt; and so far we haven’t found any problems with Blueprints on VS 2010. 
&lt;p&gt;
   If you are interested in the work we are doing, I suggest to go read an &lt;a href="http://www.clemensreijnen.nl/post/The-VSTA-Layer-Diagram-and-the-P5eP-App-Arch-Guide-20.aspx"&gt;introductional
   post&lt;/a&gt; that &lt;a href="http://www.clemensreijnen.nl/"&gt;Clemens&lt;/a&gt; just posted which
   describes some early ideas. Expect some more details in the next coming days, weeks,
   months on both &lt;a href="http://www.clemensreijnen.nl/"&gt;Clemens&lt;/a&gt; blog and/or this
   one. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=f9693cff-97a4-4e40-8eea-b944c3b62eef" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,f9693cff-97a4-4e40-8eea-b944c3b62eef.aspx</comments>
      <category>Blueprints;VSTA;ALM</category>
    </item>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=9077ee23-2f38-4521-aa01-2b5baa45cc0c</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=9077ee23-2f38-4521-aa01-2b5baa45cc0c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      For one of the Blueprints I am currently writing I had to add a menu item that enables
      the Blueprint user to execute a specific task (command). Adding menu items to a Blueprint
      is pretty easy by using the Blueprint configuration dialog. As we can see in the screenshot
      below we can also set the ‘visibility for the menu item by specifying a menu filter
      in the ‘Visibility box’ on the dialog. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/config.png">
            <img title="config" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="343" alt="config" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/config_thumb.png" width="535" border="0" />
          </a>
        </p>
        <p>
      The current Blueprints CTP comes with a few ‘built-in’ menu filters like: Project=roject
      name, FolderEndsWith=folder name, etc. (complete list can be found in de Blueprints
      documentation). Of course I needed a menu filter that wasn’t available out of the
      box. Unfortunately the documentation doesn’t say anything about adding custom menu
      filters but luckily a little experimenting (and Reflector ;)) was enough to get this
      to work.
   </p>
        <p>
      Here are the steps to implement your own custom menu filter:  
   </p>
        <p>
      The first thing to do is to simply add the name of your new custom menu filter in
      the ‘Visibility’ box of the menu item you want the custom menu filter to be applied
      on. In this example we also pass a custom argument (‘BlaBla’) to our custom menu filter.
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/con1.png">
            <img title="con1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="350" alt="con1" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/con1_thumb.png" width="546" border="0" />
          </a>
        </p>
        <p>
      The second step is to actually implement the custom menu filter. This can be easily
      done by adding a ‘Command Extension’ project to your Blueprint solution (Blueprints
      menu –&gt; Add Command Extension). This project already implements a post build event
      to make sure the .dll that hosts your command extension is copied to the correct location
      to let Blueprint Manager find it during execution of your Blueprint. 
   </p>
        <p>
      for this example we can delete all default files in the extension project and add
      a new class to this project that implements the ‘IMenuFilter’ interface (add a reference
      to the ‘Microsoft.SoftwareFactories.BASMAPI.dll’ assembly that can be found under
      the Blueprint installation directory).
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code1.png">
            <img title="code1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="243" alt="code1" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code1_thumb.png" width="649" border="0" />
          </a>
        </p>
        <p>
      In this class, the ‘FilterSupported’ method is used to decide whether a  custom
      menu filter is supported in our Blueprints. Àll we have to do in this method is return
      ‘true’ for the custom menu filters (name) that we want to support in our Blueprint.
      (note that we can handle multiple custom filters here).
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code2.png">
            <img title="code2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="code2" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code2_thumb.png" width="398" border="0" />
          </a>
        </p>
        <p>
      The ‘Visible’ method is used to decide whether the menu item that has our custom menu
      filter applied should be visible or not. The screenshot below demonstrates a, not
      very useful (and not bulletproof), implementation of a custom menu filter that only
      shows the menu item in case the Blueprint user right clicks the Solution (Solution
      Explorer) and the name of the selected Solution starts with the parameter supplied
      to the custom menu filter (‘BlaBla’ in this case).  As said, not a very useful
      filter but it hopefuly demonstrates what can can be done here. 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code3.png">
            <img title="code3" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="521" alt="code3" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code3_thumb.png" width="549" border="0" />
          </a>
        </p>
        <p>
      After we finished the ‘Visible’ method, we are done implementing our custom menu filter
      and all we have to do is make sure the Blueprints Manager knows about our custom menu
      filter. How?
   </p>
        <p>
      As we can see in the screenshot below, the menus that we define in our Blueprint configuration
      dialog (see above) are stored in the ‘config.xml’ file of our Blueprint (located in
      the properties folder in our Blueprint project).
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Menu.png">
            <img title="Menu" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="50" alt="Menu" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Menu_thumb.png" width="745" border="0" />
          </a>
        </p>
        <p>
      At some point, the Blueprint Manager parses this config file, searches for custom
      menus, detects the ‘MyCustomMenuFilter’ that we specified in our menu item and notices
      it isn’t one of the ‘built-in’ menu filters. At that time the Blueprint Manager checks
      if any additional ‘resources’ are registered for our Blueprint that might host an
      implementation of the ‘IMenuFilter’ interface. To make sure the Blueprint Manager
      can find our extension, we register our custom menu filter by adding the following
      (screenshot below) to the config file of our Blueprint.
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Resources.png">
            <img title="Resources" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="50" alt="Resources" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Resources_thumb.png" width="906" border="0" />
          </a>
        </p>
        <p>
      After that, if the Blueprints Manager detects a menu filter that is doesn’t recognize,
      it will search its additional resources and find our custom menu filter implementation.
      It will then call the ‘FilterSupported’ and ‘Visible’ methods on our ‘CustomMenuFilters’
      class to decide whether or not the custom menu item is supported and under what circumstances
      display our menu item.
   </p>
        <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=9077ee23-2f38-4521-aa01-2b5baa45cc0c" />
      </body>
      <title>Blueprints: Custom menu filters</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx</link>
      <pubDate>Mon, 22 Dec 2008 23:40:59 GMT</pubDate>
      <description>&lt;p&gt;
   For one of the Blueprints I am currently writing I had to add a menu item that enables
   the Blueprint user to execute a specific task (command). Adding menu items to a Blueprint
   is pretty easy by using the Blueprint configuration dialog. As we can see in the screenshot
   below we can also set the ‘visibility for the menu item by specifying a menu filter
   in the ‘Visibility box’ on the dialog. 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/config.png"&gt;&lt;img title="config" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="343" alt="config" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/config_thumb.png" width="535" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   The current Blueprints CTP comes with a few ‘built-in’ menu filters like: Project=roject
   name, FolderEndsWith=folder name, etc. (complete list can be found in de Blueprints
   documentation). Of course I needed a menu filter that wasn’t available out of the
   box. Unfortunately the documentation doesn’t say anything about adding custom menu
   filters but luckily a little experimenting (and Reflector ;)) was enough to get this
   to work.
&lt;/p&gt;
&lt;p&gt;
   Here are the steps to implement your own custom menu filter:&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
   The first thing to do is to simply add the name of your new custom menu filter in
   the ‘Visibility’ box of the menu item you want the custom menu filter to be applied
   on. In this example we also pass a custom argument (‘BlaBla’) to our custom menu filter.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/con1.png"&gt;&lt;img title="con1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="350" alt="con1" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/con1_thumb.png" width="546" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   The second step is to actually implement the custom menu filter. This can be easily
   done by adding a ‘Command Extension’ project to your Blueprint solution (Blueprints
   menu –&amp;gt; Add Command Extension). This project already implements a post build event
   to make sure the .dll that hosts your command extension is copied to the correct location
   to let Blueprint Manager find it during execution of your Blueprint. 
&lt;/p&gt;
&lt;p&gt;
   for this example we can delete all default files in the extension project and add
   a new class to this project that implements the ‘IMenuFilter’ interface (add a reference
   to the ‘Microsoft.SoftwareFactories.BASMAPI.dll’ assembly that can be found under
   the Blueprint installation directory).
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code1.png"&gt;&lt;img title="code1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="243" alt="code1" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code1_thumb.png" width="649" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   In this class, the ‘FilterSupported’ method is used to decide whether a&amp;nbsp; custom
   menu filter is supported in our Blueprints. Àll we have to do in this method is return
   ‘true’ for the custom menu filters (name) that we want to support in our Blueprint.
   (note that we can handle multiple custom filters here).
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code2.png"&gt;&lt;img title="code2" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="code2" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code2_thumb.png" width="398" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   The ‘Visible’ method is used to decide whether the menu item that has our custom menu
   filter applied should be visible or not. The screenshot below demonstrates a, not
   very useful (and not bulletproof), implementation of a custom menu filter that only
   shows the menu item in case the Blueprint user right clicks the Solution (Solution
   Explorer) and the name of the selected Solution starts with the parameter supplied
   to the custom menu filter (‘BlaBla’ in this case).&amp;nbsp; As said, not a very useful
   filter but it hopefuly demonstrates what can can be done here. 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code3.png"&gt;&lt;img title="code3" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="521" alt="code3" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/code3_thumb.png" width="549" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   After we finished the ‘Visible’ method, we are done implementing our custom menu filter
   and all we have to do is make sure the Blueprints Manager knows about our custom menu
   filter. How?
&lt;/p&gt;
&lt;p&gt;
   As we can see in the screenshot below, the menus that we define in our Blueprint configuration
   dialog (see above) are stored in the ‘config.xml’ file of our Blueprint (located in
   the properties folder in our Blueprint project).
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Menu.png"&gt;&lt;img title="Menu" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="50" alt="Menu" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Menu_thumb.png" width="745" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   At some point, the Blueprint Manager parses this config file, searches for custom
   menus, detects the ‘MyCustomMenuFilter’ that we specified in our menu item and notices
   it isn’t one of the ‘built-in’ menu filters. At that time the Blueprint Manager checks
   if any additional ‘resources’ are registered for our Blueprint that might host an
   implementation of the ‘IMenuFilter’ interface. To make sure the Blueprint Manager
   can find our extension, we register our custom menu filter by adding the following
   (screenshot below) to the config file of our Blueprint.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Resources.png"&gt;&lt;img title="Resources" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="50" alt="Resources" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustommenufilters_127A7/Resources_thumb.png" width="906" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   After that, if the Blueprints Manager detects a menu filter that is doesn’t recognize,
   it will search its additional resources and find our custom menu filter implementation.
   It will then call the ‘FilterSupported’ and ‘Visible’ methods on our ‘CustomMenuFilters’
   class to decide whether or not the custom menu item is supported and under what circumstances
   display our menu item.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=9077ee23-2f38-4521-aa01-2b5baa45cc0c" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,9077ee23-2f38-4521-aa01-2b5baa45cc0c.aspx</comments>
      <category>Blueprints;Software Factories</category>
    </item>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=19ed9391-55ca-4e49-aeef-e3c7289f199e</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,19ed9391-55ca-4e49-aeef-e3c7289f199e.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,19ed9391-55ca-4e49-aeef-e3c7289f199e.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=19ed9391-55ca-4e49-aeef-e3c7289f199e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      When working with a Blueprint to deliver a product, we very often start with unfolding
      a solution/project structure (template) that reflects some architectural guidance.
      When building a Blueprint, we have a few options for unfolding templates within our
      Blueprint (that we can set through configuration as displayed below). The option ‘None’
      obviously doesn’t unfold a template at all, ‘Auto-generated’ unfolds a predefined
      project template (C# class library) and ‘User-supplied’ provides us with the possibility
      to define our own solution/project templates. (The guidance that comes with the current
      release of Blueprints does a pretty good job describing these three options)
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/configuration.png">
            <img title="configuration" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="291" alt="configuration" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/configuration_thumb.png" width="454" border="0" />
          </a>
        </p>
        <p>
      However, sometimes we need even more control before, during or after template unfolding
      (ie create folder structures, complex dialogs, Add to source control, etc.). Luckily,
      there is another mechanism that we can use for this scenario that gives us full control!
   </p>
        <p>
      We can add a ‘Command Extension’ (right click on your Blueprint and select ‘Add Command
      Extension’ from the Blueprints menu) and write an extension that unfolds our custom
      project templates.  
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/AddExtension.png">
            <img title="AddExtension" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="209" alt="AddExtension" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/AddExtension_thumb.png" width="294" border="0" />
          </a>
        </p>
        <p>
      Adding a Command Extension to our Blueprint gives us a new project in our Blueprint
      solution. This new project already contains an example extension that we can modify
      to implement our custom unfolding logic.  Below, a simplyfied implementation
      of this modified Command Extension is given that uses the custom ‘MyTemplate.vstemplate’
      template and unfolds that to a (hard coded) location. 
   </p>
        <p>
        
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Extension.png">
            <img title="Extension" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="224" alt="Extension" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Extension_thumb.png" width="559" border="0" />
          </a>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
      After we fully implemented our extension, we can add this Command Extension to the
      commands collection of our Blueprint (More info on how to add commands can be found
      in the Blueprints documentation). 
   </p>
        <p>
          <a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Command.png">
            <img title="Command" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="243" alt="Command" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Command_thumb.png" width="379" border="0" />
          </a>
        </p>
        <p>
      The real ‘trick’ here is to name the command ‘<strong>INIT</strong>’ which will force
      the Blueprints Manager to execute the command automatically for us when unfolding
      our Blueprint to a (empty) Visual Studio solution. Also, don’t forget to set the ‘Template’
      option in the Blueprint configuration dialog to ‘<strong>None</strong>’! Note that
      we also added a switch statement to our implementation of the Command Extension to
      only execute the template unfolding in case the ‘INIT’ command gets executed. 
   </p>
        <p>
      With this in place we can write complex ‘vstemplates’, that include <a href="http://msdn.microsoft.com/en-us/library/ms171411.aspx">WizardExtensions</a> to
      collect user input and rely on the Blueprints Manager to execute our ‘INIT’ command
      to unfold these templates when developers add our Blueprint to their Visual Studio
      solutions. 
   </p>
        <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=19ed9391-55ca-4e49-aeef-e3c7289f199e" />
      </body>
      <title>Blueprints: Customize template unfolding</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,19ed9391-55ca-4e49-aeef-e3c7289f199e.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,19ed9391-55ca-4e49-aeef-e3c7289f199e.aspx</link>
      <pubDate>Sat, 20 Dec 2008 22:27:52 GMT</pubDate>
      <description>&lt;p&gt;
   When working with a Blueprint to deliver a product, we very often start with unfolding
   a solution/project structure (template) that reflects some architectural guidance.
   When building a Blueprint, we have a few options for unfolding templates within our
   Blueprint (that we can set through configuration as displayed below). The option ‘None’
   obviously doesn’t unfold a template at all, ‘Auto-generated’ unfolds a predefined
   project template (C# class library) and ‘User-supplied’ provides us with the possibility
   to define our own solution/project templates. (The guidance that comes with the current
   release of Blueprints does a pretty good job describing these three options)
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/configuration.png"&gt;&lt;img title="configuration" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="291" alt="configuration" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/configuration_thumb.png" width="454" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   However, sometimes we need even more control before, during or after template unfolding
   (ie create folder structures, complex dialogs, Add to source control, etc.). Luckily,
   there is another mechanism that we can use for this scenario that gives us full control!
&lt;/p&gt;
&lt;p&gt;
   We can add a ‘Command Extension’ (right click on your Blueprint and select ‘Add Command
   Extension’ from the Blueprints menu) and write an extension that unfolds our custom
   project templates.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/AddExtension.png"&gt;&lt;img title="AddExtension" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="209" alt="AddExtension" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/AddExtension_thumb.png" width="294" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   Adding a Command Extension to our Blueprint gives us a new project in our Blueprint
   solution. This new project already contains an example extension that we can modify
   to implement our custom unfolding logic.&amp;nbsp; Below, a simplyfied implementation
   of this modified Command Extension is given that uses the custom ‘MyTemplate.vstemplate’
   template and unfolds that to a (hard coded) location. 
&lt;p&gt;
   &amp;nbsp; 
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Extension.png"&gt;&lt;img title="Extension" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="224" alt="Extension" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Extension_thumb.png" width="559" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
   After we fully implemented our extension, we can add this Command Extension to the
   commands collection of our Blueprint (More info on how to add commands can be found
   in the Blueprints documentation). 
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Command.png"&gt;&lt;img title="Command" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="243" alt="Command" src="http://www.edwardbakker.nl/content/binary/BlueprintsCustomizetemplateunfolding_13634/Command_thumb.png" width="379" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
   The real ‘trick’ here is to name the command ‘&lt;strong&gt;INIT&lt;/strong&gt;’ which will force
   the Blueprints Manager to execute the command automatically for us when unfolding
   our Blueprint to a (empty) Visual Studio solution. Also, don’t forget to set the ‘Template’
   option in the Blueprint configuration dialog to ‘&lt;strong&gt;None&lt;/strong&gt;’! Note that
   we also added a switch statement to our implementation of the Command Extension to
   only execute the template unfolding in case the ‘INIT’ command gets executed. 
&lt;/p&gt;
&lt;p&gt;
   With this in place we can write complex ‘vstemplates’, that include &lt;a href="http://msdn.microsoft.com/en-us/library/ms171411.aspx"&gt;WizardExtensions&lt;/a&gt; to
   collect user input and rely on the Blueprints Manager to execute our ‘INIT’ command
   to unfold these templates when developers add our Blueprint to their Visual Studio
   solutions. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=19ed9391-55ca-4e49-aeef-e3c7289f199e" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,19ed9391-55ca-4e49-aeef-e3c7289f199e.aspx</comments>
      <category>Blueprints;Software Factories</category>
    </item>
    <item>
      <trackback:ping>http://www.edwardbakker.nl/Trackback.aspx?guid=d6910688-a36b-4c10-9709-2628aa756e18</trackback:ping>
      <pingback:server>http://www.edwardbakker.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.edwardbakker.nl/PermaLink,guid,d6910688-a36b-4c10-9709-2628aa756e18.aspx</pingback:target>
      <dc:creator>Edward Bakker (Edward Bakker)</dc:creator>
      <wfw:comment>http://www.edwardbakker.nl/CommentView,guid,d6910688-a36b-4c10-9709-2628aa756e18.aspx</wfw:comment>
      <wfw:commentRss>http://www.edwardbakker.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=d6910688-a36b-4c10-9709-2628aa756e18</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Those of you interested in software factories should check out the new <a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=18965">Blueprints
      Manger</a> and <a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=18967">Sample
      Blueprint</a> which were released on the <a href="http://www.codeplex.com/blueprints">Blueprints
      Codeplex site</a> right after PDC 2008. <a href="http://blogs.msdn.com/jackgr/">Jack
      Greenfield</a> and <a href="http://blogs.msdn.com/mglehman/">Michael Lehman</a> hosted
      the ‘Blueprint booth’ at PDC 2008 where they demoed this latest release. Blueprints
      represent the next generation Software Factories and solve many of the authoring and
      deploying issues that we have experienced with GAT/GAX based software factories. In
      addition, they add some great features (some of them demonstrated in the <a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=18967">Sample
      Blueprint</a>) to the factory space like : 
   </p>
        <ul>
          <li>
         Multiple interacting Blueprints 
      </li>
          <li>
         Blueprint Composition 
      </li>
          <li>
         RSS based updates 
      </li>
          <li>
         WF-Process structured workflow 
      </li>
          <li>
         WF-Commands - workflows which can automation developer tasks within Visual Studio 
      </li>
          <li>
         Custom Menu Filters - allowing menus to appear when the conditions are right 
      </li>
          <li>
         Code generation using the T4 Template system 
      </li>
          <li>
         Custom extensions - assemblies which can interact with the user and Visual Studio 
      </li>
        </ul>
        <p>
      Details on Blueprints can be found in the ‘<a href="http://msdn.microsoft.com/nl-nl/architecture/library/dd179252.aspx">Introduction
      to Microsoft Blueprints</a>’ paper (link currently broken but will be fixed soon!)
      that can be downloaded from the <a href="http://msdn.microsoft.com/nl-nl/architecture/blueprints(en-us).aspx">Blueprints
      homepage</a> on MSDN. 
   </p>
        <p>
      More information, samples, screencasts on factory authoring, planning, etc. will be
      available in the coming period so you better make sure to get back to the <a href="http://www.codeplex.com/blueprints">Blueprints
      home</a> on Codeplex reguarly! (expect some info on this blog too ;))
   </p>
        <img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=d6910688-a36b-4c10-9709-2628aa756e18" />
      </body>
      <title>Blueprints October CTP released</title>
      <guid>http://www.edwardbakker.nl/PermaLink,guid,d6910688-a36b-4c10-9709-2628aa756e18.aspx</guid>
      <link>http://www.edwardbakker.nl/PermaLink,guid,d6910688-a36b-4c10-9709-2628aa756e18.aspx</link>
      <pubDate>Mon, 03 Nov 2008 23:04:16 GMT</pubDate>
      <description>&lt;p&gt;
   Those of you interested in software factories should check out the new &lt;a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=18965"&gt;Blueprints
   Manger&lt;/a&gt; and &lt;a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=18967"&gt;Sample
   Blueprint&lt;/a&gt; which were released on the &lt;a href="http://www.codeplex.com/blueprints"&gt;Blueprints
   Codeplex site&lt;/a&gt; right after PDC 2008. &lt;a href="http://blogs.msdn.com/jackgr/"&gt;Jack
   Greenfield&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/mglehman/"&gt;Michael Lehman&lt;/a&gt; hosted
   the ‘Blueprint booth’ at PDC 2008 where they demoed this latest release. Blueprints
   represent the next generation Software Factories and solve many of the authoring and
   deploying issues that we have experienced with GAT/GAX based software factories. In
   addition, they add some great features (some of them demonstrated in the &lt;a href="http://www.codeplex.com/blueprints/Release/ProjectReleases.aspx?ReleaseId=18967"&gt;Sample
   Blueprint&lt;/a&gt;) to the factory space like : 
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;
      Multiple interacting Blueprints 
   &lt;li&gt;
      Blueprint Composition 
   &lt;li&gt;
      RSS based updates 
   &lt;li&gt;
      WF-Process structured workflow 
   &lt;li&gt;
      WF-Commands - workflows which can automation developer tasks within Visual Studio 
   &lt;li&gt;
      Custom Menu Filters - allowing menus to appear when the conditions are right 
   &lt;li&gt;
      Code generation using the T4 Template system 
   &lt;li&gt;
      Custom extensions - assemblies which can interact with the user and Visual Studio 
   &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   Details on Blueprints can be found in the ‘&lt;a href="http://msdn.microsoft.com/nl-nl/architecture/library/dd179252.aspx"&gt;Introduction
   to Microsoft Blueprints&lt;/a&gt;’ paper (link currently broken but will be fixed soon!)
   that can be downloaded from the &lt;a href="http://msdn.microsoft.com/nl-nl/architecture/blueprints(en-us).aspx"&gt;Blueprints
   homepage&lt;/a&gt; on MSDN. 
&lt;/p&gt;
&lt;p&gt;
   More information, samples, screencasts on factory authoring, planning, etc. will be
   available in the coming period so you better make sure to get back to the &lt;a href="http://www.codeplex.com/blueprints"&gt;Blueprints
   home&lt;/a&gt; on Codeplex reguarly! (expect some info on this blog too ;))
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edwardbakker.nl/aggbug.ashx?id=d6910688-a36b-4c10-9709-2628aa756e18" /&gt;</description>
      <comments>http://www.edwardbakker.nl/CommentView,guid,d6910688-a36b-4c10-9709-2628aa756e18.aspx</comments>
      <category>Software Factories;Blueprints</category>
    </item>
  </channel>
</rss>