<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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/" version="2.0">
  <channel>
    <title>Code Smart Not Hard - ALM</title>
    <link>http://www.codesmartnothard.com/</link>
    <description>Continuous Learning and Sharing of Team Foundation Server and Application Lifecycle Management</description>
    <language>en-us</language>
    <copyright>Mike Douglas</copyright>
    <lastBuildDate>Mon, 06 May 2013 01:01:00 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>mikedouglasdev@gmail.com</managingEditor>
    <webMaster>mikedouglasdev@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=5e025a4a-0516-45d5-8e1f-606d3435700d</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,5e025a4a-0516-45d5-8e1f-606d3435700d.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,5e025a4a-0516-45d5-8e1f-606d3435700d.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5e025a4a-0516-45d5-8e1f-606d3435700d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h3>Overview
</h3>
        <p>
The ALM Rangers heavily leverage the power of Team Foundation Service (TFService)
for all of our projects.  While TFSService doesn’t contain all of the features
found in on-premises Team Foundation Server, for most projects and applications that
we build, the features available within TFService are sufficient.  For this project
we are working on the <a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2013/04/09/toc-alm-readiness-treasure-map.aspx" target="_blank">V2
of the ALM Readiness Treasure Map</a>, a Windows 8 Store App.  If you are not
familiar with V1, read the article, <a href="http://msdn.microsoft.com/en-us/magazine/dn166932.aspx" target="_blank">A
Treasure Hunt Through ALM Readiness</a>, in the MSDN magazine and download the app
from the Windows 8 Store.  With this project, there are two features that we
can’t accomplish with TFSService.  TFService does not include symbol server support. 
In addition Windows 8 Store apps cannot be built with Team Foundation Service. 
If we were to use an on-premises build server with Team Foundation Service, we could
support building the application.  Read the <a href="http://msdn.microsoft.com/en-us/magazine/dn166931.aspx" target="_blank">Building
and Validating Windows Store Apps with Team Foundation Service</a> article in the
April 2013 edition of MSDN Magazine for a great walkthrough on creating an on-premises
build server for TFService to build Windows 8 Store apps.
</p>
        <p>
Since we are using a pure TFService solution, we will need to store the symbols, binaries,
and the app package in source control for released and internal builds. Below is the
solution enabling and using the debug symbols and also storing binaries and packages
for release and internal builds.  This is our initial plan and it may evolve
as the project progresses.  In addition, hopefully in the future TFService will
support both of these features. Be heard and vote for <a href="http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3553572-team-foundation-service-to-be-able-to-build-window" target="_blank">Windows
8 Build Support</a> and Symbol Support on <a href="http://visualstudio.uservoice.com/forums/121579-visual-studio" target="_blank">Visual
Studio User Voice</a>. As always, we always appreciate your feedback and your ideas
for this solution.
</p>
        <h3>Enabling and Using Debug Symbols
</h3>
        <p>
Enable full debug symbol information for the release build configuration in addition
to the debug build configuration.  This will allow us to have detailed stack
information about the error that include line numbers of the errors and debug the
application without the source control.<br /></p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_4.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_1.png" width="504" height="383" />
          </a>
        </p>
        <p>
Also ensure that the <strong>include public symbols, if any, to enable crash analysis
for the app</strong> option is checked when creating the app package.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_8.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_3.png" width="504" height="410" />
          </a>
        </p>
        <p>
To be able to use the debug symbols within the application, perform the following
steps.  The TreasureMap application’s namespace begins with Microsoft, so you
need to remove the Microsoft.* exclusion from the options.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_10.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_4.png" width="504" height="296" />
          </a>
        </p>
        <p>
Once the symbols have been included, if you wish to debug the issue from production,
use Visual Studio to debug the application by choosing <strong>Debug Installed App
Package…</strong> option.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_14.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_6.png" width="404" height="494" />
          </a>
        </p>
        <p>
Choose the installed app package to debug
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_16.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_7.png" width="504" height="473" />
          </a>
        </p>
        <p>
From within Visual Studio, you will be able to hit exceptions and step through the
application’s code.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_18.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_8.png" width="604" height="319" />
          </a>
          <br clear="all" />
        </p>
        <h3>Storing Release Builds
</h3>
        <p>
When a release candidate version has been accepted by the Windows app store, take
the output from the packaging and binaries and put it into the following folder structure. 
Then check-in all of the files into source control as shown below:
</p>
        <p>
          <strong>Rel\[version]\Binaries</strong>
        </p>
        <p>
          <strong>
            <br />
            <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_20.png">
              <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_9.png" width="604" height="184" />
            </a>
          </strong>
        </p>
        <p>
          <strong>Rel\[version]\PackagedOutput</strong>
        </p>
        <p>
 
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_22.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_10.png" width="604" height="139" />
          </a>
        </p>
        <h3>Storing Internal Builds
</h3>
        <p>
Internal Only releases should be built locally and stored in the Drop folder in TFService. 
Use the following folder structure and naming convention.  Under varTreasureMap_Dev,
create a new folder using the format [Date].[Build Number]. In this folder, copy and
check in the binaries / output from the build into the Binaries folder.  Also
create the app package files locally by choosing Project &gt; Store &gt; Create App
Packages.  Be sure to choose No when asked if you want to publish to the Windows
Store.  After going through the wizard, copy the output to the PackagedOutput
folder under the build folder and check in these files.  Send an email to the
team letting them know a new internal version is available for side loading to test.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_24.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_11.png" width="604" height="212" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=5e025a4a-0516-45d5-8e1f-606d3435700d" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Storing Windows 8 Store Apps binaries and debug symbols in Team Foundation Service</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,5e025a4a-0516-45d5-8e1f-606d3435700d.aspx</guid>
      <link>http://www.codesmartnothard.com/2013/05/06/StoringWindows8StoreAppsBinariesAndDebugSymbolsInTeamFoundationService.aspx</link>
      <pubDate>Mon, 06 May 2013 01:01:00 GMT</pubDate>
      <description>&lt;h3&gt;Overview
&lt;/h3&gt;
&lt;p&gt;
The ALM Rangers heavily leverage the power of Team Foundation Service (TFService)
for all of our projects.&amp;nbsp; While TFSService doesn’t contain all of the features
found in on-premises Team Foundation Server, for most projects and applications that
we build, the features available within TFService are sufficient.&amp;nbsp; For this project
we are working on the &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2013/04/09/toc-alm-readiness-treasure-map.aspx" target="_blank"&gt;V2
of the ALM Readiness Treasure Map&lt;/a&gt;, a Windows 8 Store App.&amp;nbsp; If you are not
familiar with V1, read the article, &lt;a href="http://msdn.microsoft.com/en-us/magazine/dn166932.aspx" target="_blank"&gt;A
Treasure Hunt Through ALM Readiness&lt;/a&gt;, in the MSDN magazine and download the app
from the Windows 8 Store.&amp;nbsp; With this project, there are two features that we
can’t accomplish with TFSService.&amp;nbsp; TFService does not include symbol server support.&amp;nbsp;
In addition Windows 8 Store apps cannot be built with Team Foundation Service.&amp;nbsp;
If we were to use an on-premises build server with Team Foundation Service, we could
support building the application.&amp;nbsp; Read the &lt;a href="http://msdn.microsoft.com/en-us/magazine/dn166931.aspx" target="_blank"&gt;Building
and Validating Windows Store Apps with Team Foundation Service&lt;/a&gt; article in the
April 2013 edition of MSDN Magazine for a great walkthrough on creating an on-premises
build server for TFService to build Windows 8 Store apps.
&lt;/p&gt;
&lt;p&gt;
Since we are using a pure TFService solution, we will need to store the symbols, binaries,
and the app package in source control for released and internal builds. Below is the
solution enabling and using the debug symbols and also storing binaries and packages
for release and internal builds.&amp;nbsp; This is our initial plan and it may evolve
as the project progresses.&amp;nbsp; In addition, hopefully in the future TFService will
support both of these features. Be heard and vote for &lt;a href="http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3553572-team-foundation-service-to-be-able-to-build-window" target="_blank"&gt;Windows
8 Build Support&lt;/a&gt; and Symbol Support on &lt;a href="http://visualstudio.uservoice.com/forums/121579-visual-studio" target="_blank"&gt;Visual
Studio User Voice&lt;/a&gt;. As always, we always appreciate your feedback and your ideas
for this solution.
&lt;/p&gt;
&lt;h3&gt;Enabling and Using Debug Symbols
&lt;/h3&gt;
&lt;p&gt;
Enable full debug symbol information for the release build configuration in addition
to the debug build configuration.&amp;nbsp; This will allow us to have detailed stack
information about the error that include line numbers of the errors and debug the
application without the source control.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_1.png" width="504" height="383"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Also ensure that the &lt;strong&gt;include public symbols, if any, to enable crash analysis
for the app&lt;/strong&gt; option is checked when creating the app package.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_8.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_3.png" width="504" height="410"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
To be able to use the debug symbols within the application, perform the following
steps.&amp;nbsp; The TreasureMap application’s namespace begins with Microsoft, so you
need to remove the Microsoft.* exclusion from the options.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_10.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_4.png" width="504" height="296"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Once the symbols have been included, if you wish to debug the issue from production,
use Visual Studio to debug the application by choosing &lt;strong&gt;Debug Installed App
Package…&lt;/strong&gt; option.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_14.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_6.png" width="404" height="494"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Choose the installed app package to debug
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_16.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_7.png" width="504" height="473"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
From within Visual Studio, you will be able to hit exceptions and step through the
application’s code.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_18.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_8.png" width="604" height="319"&gt;&lt;/a&gt;
&lt;br clear="all"&gt;
&lt;/p&gt;
&lt;h3&gt;Storing Release Builds
&lt;/h3&gt;
&lt;p&gt;
When a release candidate version has been accepted by the Windows app store, take
the output from the packaging and binaries and put it into the following folder structure.&amp;nbsp;
Then check-in all of the files into source control as shown below:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Rel\[version]\Binaries&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;
&lt;br&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_20.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_9.png" width="604" height="184"&gt;&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Rel\[version]\PackagedOutput&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_22.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_10.png" width="604" height="139"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Storing Internal Builds
&lt;/h3&gt;
&lt;p&gt;
Internal Only releases should be built locally and stored in the Drop folder in TFService.&amp;nbsp;
Use the following folder structure and naming convention.&amp;nbsp; Under varTreasureMap_Dev,
create a new folder using the format [Date].[Build Number]. In this folder, copy and
check in the binaries / output from the build into the Binaries folder.&amp;nbsp; Also
create the app package files locally by choosing Project &amp;gt; Store &amp;gt; Create App
Packages.&amp;nbsp; Be sure to choose No when asked if you want to publish to the Windows
Store.&amp;nbsp; After going through the wizard, copy the output to the PackagedOutput
folder under the build folder and check in these files.&amp;nbsp; Send an email to the
team letting them know a new internal version is available for side loading to test.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_24.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Windows-8-Store-Apps-Binaries-and-debug-_10FE1/image_thumb_11.png" width="604" height="212"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=5e025a4a-0516-45d5-8e1f-606d3435700d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,5e025a4a-0516-45d5-8e1f-606d3435700d.aspx</comments>
      <category>ALM</category>
      <category>Rangers</category>
      <category>Team Foundation Service</category>
      <category>Visual Studio 2012</category>
      <category>Windows 8</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=6bc104a7-732c-4fb0-8729-15c6c6cfefd2</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,6bc104a7-732c-4fb0-8729-15c6c6cfefd2.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,6bc104a7-732c-4fb0-8729-15c6c6cfefd2.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6bc104a7-732c-4fb0-8729-15c6c6cfefd2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Continuous Delivery is the process of automatically building, testing, and deploying
the application through test and into production at regular intervals.  Windows
Azure is Microsoft’s cloud based application hosting platform that provides Infrastructure
and Platform as a service solutions for for building, deploying, and managing solutions
that can scale to support millions of uses with only configuration changes. 
In addition Window Azure can extend your or replace your network infrastructure. 
Microsoft also offers a full featured Application Lifecycle Management tool in Azure
called Team Foundation Service.  
</p>
        <p>
Setting up Continuous Delivery with Windows Azure and Team Foundation Service is as
easy as creating the accounts, linking the two systems together, and checking in your
code.  The following post provides a step by step walkthrough of setting up the
process.  I have also created build and deploy process for Azure Cloud Service
applications for on-premises Team Foundation Servers.  Unlike the out of the
box (OOB) solution for Team Foundation Service, setting up the solution for on-premises
TFS requires customization and installing additional components.  I will write
on this in a future post.
</p>
        <h3>Are you on Team Foundation Service?
</h3>
        <p>
The first thing to do is sign up on TFService if you haven’t already do it. 
Pricing hasn’t been announced yet but it has been announced that there will be a free
tier and a tier included with MSDN.  In addition, right now, while it is still
in preview it is free. So, there isn’t any reason to keep from trying it.  Sign
up at <a href="http://tfs.visualstudio.com">http://tfs.visualstudio.com</a>.
</p>
        <h3>Sign up for Windows Azure
</h3>
        <p>
Signing up for Windows Azure is easy.  You can start using a lot of features
for free by signing up through your <a href="http://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/" target="_blank">MSDN
account</a> or for a <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200124063" target="_blank">free
trial</a>.  
</p>
        <h3>Continuous Delivery Setup
</h3>
        <p>
Now that you have both of your accounts, let’s create the Cloud Service to host your
application.  When you open the Windows Azure management screen, you will see
a list of all available features including the cloud services as shown in figure 1.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_34.png">
            <img title="Windows Azure Management" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows Azure Management" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_14.png" width="604" height="252" />
          </a>
          <br />
        </p>
        <p>
To create the cloud service, choose the Create (+) option in the bottom left corner,
the new dialog window will display.  If you are currently in the cloud services
area, the following options will automatically populate otherwise choose these options
and enter the URL for your site and the preferred region.  It will validate that
this name is available with a green checkmark.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_36.png">
            <img title="Create Azure Cloud Service" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Create Azure Cloud Service" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_15.png" width="804" height="214" />
          </a>
          <br />
Figure 2 – New Cloud Service dialog in Windows Azure
</p>
        <p>
 
</p>
        <p>
Once it has been created, the dashboard will display with the following steps. 
Here you can create the deployment settings for your build.  In our instance,
we will create our TFS connection and let it create a default staging deployment. 
If you want more control over the deployment you will want to create the deployment
settings first.  Choose <strong>Set up TFS publishing</strong> to begin the authorization
process to link the two systems.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image10.png">
            <img title="Cloud Service has been created" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Cloud Service has been created" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image10_thumb.png" width="604" height="426" />
          </a>
        </p>
        <p>
The Authorize TFS connection dialog will appear where you enter your Team Foundation
Service account/collection name.  Select <strong>Authorize Now</strong> to connect
to your TFService account.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image14.png">
            <img title="Authorize TFS connection" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Authorize TFS connection " src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image14_thumb.png" width="554" height="396" />
          </a>
        </p>
        <p>
It will prompt you with the request to grant Windows Azure access to your TFService
account.  Choose <strong>Accept</strong>.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image17.png">
            <img title="Cloud Service requestiong permission to Team Foundation Service " style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Cloud Service requestiong permission to Team Foundation Service " src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image17_thumb.png" width="704" height="304" />
          </a>
        </p>
        <p>
Next, choose the Team Project that will contain your Cloud Service application.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_38.png">
            <img title="Choose TFS Team Project" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Choose TFS Team Project" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_16.png" width="604" height="244" />
          </a>
        </p>
        <p>
Once the linking process has completed, it will guide you through the next steps. 
If you haven’t already downloaded the Azure SDK tools, you should do this.  If
you are unsure if you have these tools installed, when you try to create the solution
with Visual Studio in the following step, it will prompt you to download the tools. 
Click On <strong>Open Visual Studio 2012</strong> to open the IDE with the Team Project
opened that you selected above.  Note: This does not open Visual Studio 2012
automatically with elevated permissions.  If you wish to run your solution locally
with the cloud emulator, you must run Visual Studio under elevated permissions.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image30.png">
            <img title="Cloud Service and TFS are configured" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Cloud Service and TFS are configured" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image30_thumb.png" width="804" height="611" />
          </a>
        </p>
        <p>
Within Visual Studio 2012, choose <strong>New &gt; Project</strong> to open the following
New Project dialog.  Select the Cloud template folder under the your favorite
language folder (C#).  Note: Be sure to create the solution in a folder that
is part of your local workspace for the Team Project that was selected.  This
will help ensure the easiest process for checking in your files.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image26.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image26_thumb.png" width="604" height="309" />
          </a>
        </p>
        <p>
The New Windows Azure Cloud Service dialog appears where you can select the different
types of cloud service projects.  In this example, I chose ASP.NET MVC 4 Web
Role because my system is going to have a front end website for capturing orders. 
I also added a Worker Role for order processing that will be used to process the orders
is a background process.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image38.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image38_thumb.png" width="504" height="316" />
          </a>
        </p>
        <p>
The New ASP.NET MVC 4 Project dialog will prompt you to select the appropriate project
template.  Note:  Now included are the Single Page Application (SPA) and
Face Application project templates that were added with Update 2.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image34.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image34_thumb.png" width="504" height="458" />
          </a>
        </p>
        <p>
Once the solution has been created, I made a simple change to update the name of the
home page title and checked in the entire solution.  Before I checked in, I noticed
that the linking process automatically created the CI build definition but the selected
project was blank other than the deployment settings and the build was disabled. 
There must be a process that waiting for the first check in to identity the appropriate
solution to be used in the build definition.  Once I checked in, the build was
enabled and started.  It also has the appropriate project selected.  After
a few minutes the build completed and my application was deployed.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_42.png">
            <img title="TFS deployed cloud service" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="TFS deployed cloud service" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_18.png" width="704" height="558" />
          </a>
        </p>
        <p>
Using the URL above, I can view my website.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_26.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_1.png" width="404" height="339" />
          </a>
        </p>
        <p>
When I go back into view the Cloud Service in Windows Azure.  You can see that
it shows my deployment from TFS and notice that it deployed to the staging environment
as the default deployment setting.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_32.png">
            <img title="View deployment history for your Azure Cloud Service" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="View deployment history for your Azure Cloud Service" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_13.png" width="654" height="326" />
          </a>
        </p>
        <p>
Also, notice that both the web role and the worker role projects have been deployed
and they are running.  I can verify everything is working in staging.  To
promote this to the production instance, you can choose the <strong>Swap</strong> option
highlighted below.  This performs a swap of the production and staging virtual
IP addresses.  This allows for minimal downtime and a simple way to rollback
by performing the swap a second time.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_28.png">
            <img title="VIP Swap to switch production and staging sites" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="VIP Swap to switch production and staging sites" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_2.png" width="604" height="339" />
          </a>
        </p>
        <h3>Summary
</h3>
        <p>
As you can see there is strong integration between Windows Azure Cloud Services and
Team Foundation Service that is simple to implement.  This integration provides
a great out of the box (OOB) solution for Continuous Integration and Delivery. 
Try it out today.
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=6bc104a7-732c-4fb0-8729-15c6c6cfefd2" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Continuous Delivery with Team Foundation Service and Azure Cloud Services</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,6bc104a7-732c-4fb0-8729-15c6c6cfefd2.aspx</guid>
      <link>http://www.codesmartnothard.com/2013/04/18/ContinuousDeliveryWithTeamFoundationServiceAndAzureCloudServices.aspx</link>
      <pubDate>Thu, 18 Apr 2013 12:32:00 GMT</pubDate>
      <description>&lt;p&gt;
Continuous Delivery is the process of automatically building, testing, and deploying
the application through test and into production at regular intervals.&amp;nbsp; Windows
Azure is Microsoft’s cloud based application hosting platform that provides Infrastructure
and Platform as a service solutions for for building, deploying, and managing solutions
that can scale to support millions of uses with only configuration changes.&amp;nbsp;
In addition Window Azure can extend your or replace your network infrastructure.&amp;nbsp;
Microsoft also offers a full featured Application Lifecycle Management tool in Azure
called Team Foundation Service.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Setting up Continuous Delivery with Windows Azure and Team Foundation Service is as
easy as creating the accounts, linking the two systems together, and checking in your
code.&amp;nbsp; The following post provides a step by step walkthrough of setting up the
process.&amp;nbsp; I have also created build and deploy process for Azure Cloud Service
applications for on-premises Team Foundation Servers.&amp;nbsp; Unlike the out of the
box (OOB) solution for Team Foundation Service, setting up the solution for on-premises
TFS requires customization and installing additional components.&amp;nbsp; I will write
on this in a future post.
&lt;/p&gt;
&lt;h3&gt;Are you on Team Foundation Service?
&lt;/h3&gt;
&lt;p&gt;
The first thing to do is sign up on TFService if you haven’t already do it.&amp;nbsp;
Pricing hasn’t been announced yet but it has been announced that there will be a free
tier and a tier included with MSDN.&amp;nbsp; In addition, right now, while it is still
in preview it is free. So, there isn’t any reason to keep from trying it.&amp;nbsp; Sign
up at &lt;a href="http://tfs.visualstudio.com"&gt;http://tfs.visualstudio.com&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;Sign up for Windows Azure
&lt;/h3&gt;
&lt;p&gt;
Signing up for Windows Azure is easy.&amp;nbsp; You can start using a lot of features
for free by signing up through your &lt;a href="http://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/" target="_blank"&gt;MSDN
account&lt;/a&gt; or for a &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200124063" target="_blank"&gt;free
trial&lt;/a&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;h3&gt;Continuous Delivery Setup
&lt;/h3&gt;
&lt;p&gt;
Now that you have both of your accounts, let’s create the Cloud Service to host your
application.&amp;nbsp; When you open the Windows Azure management screen, you will see
a list of all available features including the cloud services as shown in figure 1.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_34.png"&gt;&lt;img title="Windows Azure Management" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Windows Azure Management" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_14.png" width="604" height="252"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
To create the cloud service, choose the Create (+) option in the bottom left corner,
the new dialog window will display.&amp;nbsp; If you are currently in the cloud services
area, the following options will automatically populate otherwise choose these options
and enter the URL for your site and the preferred region.&amp;nbsp; It will validate that
this name is available with a green checkmark.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_36.png"&gt;&lt;img title="Create Azure Cloud Service" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Create Azure Cloud Service" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_15.png" width="804" height="214"&gt;&lt;/a&gt;
&lt;br&gt;
Figure 2 – New Cloud Service dialog in Windows Azure
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Once it has been created, the dashboard will display with the following steps.&amp;nbsp;
Here you can create the deployment settings for your build.&amp;nbsp; In our instance,
we will create our TFS connection and let it create a default staging deployment.&amp;nbsp;
If you want more control over the deployment you will want to create the deployment
settings first.&amp;nbsp; Choose &lt;strong&gt;Set up TFS publishing&lt;/strong&gt; to begin the authorization
process to link the two systems.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image10.png"&gt;&lt;img title="Cloud Service has been created" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Cloud Service has been created" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image10_thumb.png" width="604" height="426"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The Authorize TFS connection dialog will appear where you enter your Team Foundation
Service account/collection name.&amp;nbsp; Select &lt;strong&gt;Authorize Now&lt;/strong&gt; to connect
to your TFService account.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image14.png"&gt;&lt;img title="Authorize TFS connection" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Authorize TFS connection " src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image14_thumb.png" width="554" height="396"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It will prompt you with the request to grant Windows Azure access to your TFService
account.&amp;nbsp; Choose &lt;strong&gt;Accept&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image17.png"&gt;&lt;img title="Cloud Service requestiong permission to Team Foundation Service " style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Cloud Service requestiong permission to Team Foundation Service " src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image17_thumb.png" width="704" height="304"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Next, choose the Team Project that will contain your Cloud Service application.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_38.png"&gt;&lt;img title="Choose TFS Team Project" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Choose TFS Team Project" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_16.png" width="604" height="244"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Once the linking process has completed, it will guide you through the next steps.&amp;nbsp;
If you haven’t already downloaded the Azure SDK tools, you should do this.&amp;nbsp; If
you are unsure if you have these tools installed, when you try to create the solution
with Visual Studio in the following step, it will prompt you to download the tools.&amp;nbsp;
Click On &lt;strong&gt;Open Visual Studio 2012&lt;/strong&gt; to open the IDE with the Team Project
opened that you selected above.&amp;nbsp; Note: This does not open Visual Studio 2012
automatically with elevated permissions.&amp;nbsp; If you wish to run your solution locally
with the cloud emulator, you must run Visual Studio under elevated permissions.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image30.png"&gt;&lt;img title="Cloud Service and TFS are configured" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Cloud Service and TFS are configured" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image30_thumb.png" width="804" height="611"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Within Visual Studio 2012, choose &lt;strong&gt;New &amp;gt; Project&lt;/strong&gt; to open the following
New Project dialog.&amp;nbsp; Select the Cloud template folder under the your favorite
language folder (C#).&amp;nbsp; Note: Be sure to create the solution in a folder that
is part of your local workspace for the Team Project that was selected.&amp;nbsp; This
will help ensure the easiest process for checking in your files.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image26.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image26_thumb.png" width="604" height="309"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The New Windows Azure Cloud Service dialog appears where you can select the different
types of cloud service projects.&amp;nbsp; In this example, I chose ASP.NET MVC 4 Web
Role because my system is going to have a front end website for capturing orders.&amp;nbsp;
I also added a Worker Role for order processing that will be used to process the orders
is a background process.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image38.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image38_thumb.png" width="504" height="316"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The New ASP.NET MVC 4 Project dialog will prompt you to select the appropriate project
template.&amp;nbsp; Note:&amp;nbsp; Now included are the Single Page Application (SPA) and
Face Application project templates that were added with Update 2.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image34.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image34_thumb.png" width="504" height="458"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Once the solution has been created, I made a simple change to update the name of the
home page title and checked in the entire solution.&amp;nbsp; Before I checked in, I noticed
that the linking process automatically created the CI build definition but the selected
project was blank other than the deployment settings and the build was disabled.&amp;nbsp;
There must be a process that waiting for the first check in to identity the appropriate
solution to be used in the build definition.&amp;nbsp; Once I checked in, the build was
enabled and started.&amp;nbsp; It also has the appropriate project selected.&amp;nbsp; After
a few minutes the build completed and my application was deployed.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_42.png"&gt;&lt;img title="TFS deployed cloud service" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="TFS deployed cloud service" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_18.png" width="704" height="558"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Using the URL above, I can view my website.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_26.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_1.png" width="404" height="339"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
When I go back into view the Cloud Service in Windows Azure.&amp;nbsp; You can see that
it shows my deployment from TFS and notice that it deployed to the staging environment
as the default deployment setting.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_32.png"&gt;&lt;img title="View deployment history for your Azure Cloud Service" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="View deployment history for your Azure Cloud Service" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_13.png" width="654" height="326"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Also, notice that both the web role and the worker role projects have been deployed
and they are running.&amp;nbsp; I can verify everything is working in staging.&amp;nbsp; To
promote this to the production instance, you can choose the &lt;strong&gt;Swap&lt;/strong&gt; option
highlighted below.&amp;nbsp; This performs a swap of the production and staging virtual
IP addresses.&amp;nbsp; This allows for minimal downtime and a simple way to rollback
by performing the swap a second time.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_28.png"&gt;&lt;img title="VIP Swap to switch production and staging sites" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="VIP Swap to switch production and staging sites" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/101ca96deda9_57B5/image_thumb_2.png" width="604" height="339"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Summary
&lt;/h3&gt;
&lt;p&gt;
As you can see there is strong integration between Windows Azure Cloud Services and
Team Foundation Service that is simple to implement.&amp;nbsp; This integration provides
a great out of the box (OOB) solution for Continuous Integration and Delivery.&amp;nbsp;
Try it out today.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=6bc104a7-732c-4fb0-8729-15c6c6cfefd2" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,6bc104a7-732c-4fb0-8729-15c6c6cfefd2.aspx</comments>
      <category>ALM</category>
      <category>Continuous Integration</category>
      <category>Team Foundation Service</category>
      <category>Visual Studio 2012</category>
      <category>Windows Azure</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=4a9e7724-2ec6-4700-8edc-aff30053e73c</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,4a9e7724-2ec6-4700-8edc-aff30053e73c.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,4a9e7724-2ec6-4700-8edc-aff30053e73c.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=4a9e7724-2ec6-4700-8edc-aff30053e73c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently had a team ask me about changing the default check in option from Resolve
to Associate in Team Foundation Server 2012 (TFS 2012). I did some research and found
there is a lot of confusion around the available options.  I am going to describe
the two main options to help you decide which option will work best for you and your
team.  So, why is changing this important? Our Deliveron ALM Delivery Guidance
recommends that each person should update his/her tasks before stand-up each day. 
We also recommend the hours be zeroed out for completed tasks, however the task should
be left open until stand-up.  During the stand-up the task will be moved from
Active to Closed where the team can celebrate the victory.  I have seen teams
use clapping, snaps, and noise makers to name a few.   When developers check-in
his/her code, they should always associate the check-in to the appropriate work item(s)
but not choose Resolve.  Resolve is the default option but by choosing this,
it will automatically close the Task bypassing being able to close it during the stand-up.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_2.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb.png" width="244" height="100" />
          </a>
          <br />
          <strong>Figure 1 – Resolve is the default option for Tasks and Bugs</strong>
        </p>
        <p>
Changing the option to Associate each time seems small but it would be nice to change
the default option from Resolve to Associate.  In TFS 2010 it was relatively
simple to change this by updating a registry key.  However, in TFS 2012 there
are two options that address this in different ways.  Both options have some
drawbacks. I will explain the two options and let you make the decision which you
prefer.
</p>
        <h3>Removing the Check-In Action from the Work Item Template (WIT)
</h3>
        <p>
One way to address this is to remove the Check-In action from each WIT.  Using
the TFS Power Tools, you can remove the Action from the Transition.  In the Task,
you need to remove it from the New –&gt; Closed and the Active –&gt; Closed transitions. 
To do this, double click on the Transition title bar to open the Workflow Transition
dialog.  Navigate to the Actions tab and delete the Action.  In addition
to the Task, you should also remove this from the Bug WIT since these are the two
types of work items that you would typically associate your check-ins to.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_4.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_1.png" width="404" height="352" />
          </a>
          <br />
          <strong>Figure 2 – Removing the Check-In action from the WIT</strong>
        </p>
        <p>
Once the WITs have been updated into your team project this will be available for
all users.  Now when you add a related work item, the only option available is
Associate.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_6.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_2.png" width="354" height="99" />
          </a>
          <br />
          <strong>Figure 3 – The default and only option is Associate</strong>
        </p>
        <p>
As I mentioned, this solution has some pros and cons. Here is a few to consider:
</p>
        <p>
Pros
</p>
        <ul>
          <li>
This change only has to be made the Team Project and nothing has to be done on the
clients.</li>
          <li>
We recommend not resolving the work item, so removing this option is not a big deal.</li>
        </ul>
        <p>
Cons
</p>
        <ul>
          <li>
This would need to be applied to all current Team Projects and would need to update
the Process Template for future Team Projects.</li>
          <li>
This removes the Resolve option for users, so there is no way to perform this action
anymore.</li>
        </ul>
        <p>
 
</p>
        <h3>Updating Visual Studio clients to change the default option to Associate
</h3>
        <p>
This option sounds good.  Unfortunately it only works under one scenario. 
With the Team Explorer 2012, there are two primary ways to initiate a check in. 
You can initiate the check in from the Pending Changes Pane and from My Work Pane. 
By default if you initiate the check-in from either location, the default option will
be Resolve.  Once this fix has been applied, it will update the default option
when initiating the action from the My Work pane but not the Pending Changes Pane. 
I will show you how to set this up but first I will show you the scenario that doesn’t
work and the one that does work.
</p>
        <p>
From my experience, most check-ins are initiated from the Pending Changes pane or
by right clicking on a location in Solution explorer.  Either way you will end
up on the Pending Changes pane, where you can associate a work item by query or by
ID.  Unfortunately the change has no effect on this and will continue to default
to the Resolve option as shown below. 
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_8.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_3.png" width="354" height="275" />
          </a>
          <br />
          <strong>Figure 4 – Pending Changes still defaults to Resolve after updating the registry
key.</strong>
        </p>
        <p>
In Team Explorer 2012, there is a new Pane called My Work.  This Pane is designed
to group and manage all of your current work including code, break points, and associated
work items.  This provides the ability to suspend/resume your current work so
you can switch to work on something else and then come back to it later with everything
the way you left it.  After applying the update, initiating the check-in from
here will change the default option to Associate.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_12.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_5.png" width="604" height="252" />
          </a>
          <br />
          <strong>Figure 5 – Initiating the check in from My Work changes the default to Associate
after the updating the registry key.</strong>
        </p>
        <p>
Now that you understand the scenarios.  To enable this option, each Visual Studio
user will need to update the following registry key and change ResolveAsDefaultCheckinAction
= False.
</p>
        <p>
          <strong>HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\SourceControl\Behavior</strong>
        </p>
        <p>
  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/clip_image002_2.jpg">
            <img title="clip_image002" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image002" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/clip_image002_thumb.jpg" width="404" height="32" />
          </a> <br /><strong>Figure 6 – Set ResolveAsDefaultCheckinAction = False</strong><br /></p>
        <p>
Next, exit all instances of Visual Studio 2012.  Open the Developer Command Prompt
for VS 2012 with administrator privileges.  Run <strong>devenv /setup</strong> to
ensure that the registry is picked up by Visual Studio.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_18.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_8.png" width="454" height="111" />
          </a>
          <br />
          <strong>Figure 7 – Run devenv /setup to ensure registry change is applied.</strong>
        </p>
        <p>
With the change applied, the default option is changed for your My Work initiated
check ins.
</p>
        <p>
For this option, here are several pros and cons:
</p>
        <p>
Pros
</p>
        <ul>
          <li>
This change only has to be made once for it to apply to all TFS servers and Team Projects
that you use.</li>
          <li>
This keeps the Resolve option for the most flexibility.</li>
          <li>
Only developers that want to change the default option will be affected.</li>
        </ul>
        <p>
Cons
</p>
        <ul>
          <li>
Most check ins are initiated from the solution or Pending Changes where this update
does not work.</li>
          <li>
Each Visual Studio user needs to perform this update for it to work for them.</li>
        </ul>
        <h3>Summary
</h3>
        <p>
As you can see there isn’t a perfect option.  Hopefully this gives you a complete
picture of the options so you can make the best decision for your team. We chose the
first option because the Resolve option would be rarely used. 
</p>
        <p>
Mike
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=4a9e7724-2ec6-4700-8edc-aff30053e73c" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Changing the Default Check In Option to Associate in TFS 2012</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,4a9e7724-2ec6-4700-8edc-aff30053e73c.aspx</guid>
      <link>http://www.codesmartnothard.com/2013/02/09/ChangingTheDefaultCheckInOptionToAssociateInTFS2012.aspx</link>
      <pubDate>Sat, 09 Feb 2013 14:50:00 GMT</pubDate>
      <description>&lt;p&gt;
I recently had a team ask me about changing the default check in option from Resolve
to Associate in Team Foundation Server 2012 (TFS 2012). I did some research and found
there is a lot of confusion around the available options.&amp;nbsp; I am going to describe
the two main options to help you decide which option will work best for you and your
team.&amp;nbsp; So, why is changing this important? Our Deliveron ALM Delivery Guidance
recommends that each person should update his/her tasks before stand-up each day.&amp;nbsp;
We also recommend the hours be zeroed out for completed tasks, however the task should
be left open until stand-up.&amp;nbsp; During the stand-up the task will be moved from
Active to Closed where the team can celebrate the victory.&amp;nbsp; I have seen teams
use clapping, snaps, and noise makers to name a few.&amp;nbsp;&amp;nbsp; When developers check-in
his/her code, they should always associate the check-in to the appropriate work item(s)
but not choose Resolve.&amp;nbsp; Resolve is the default option but by choosing this,
it will automatically close the Task bypassing being able to close it during the stand-up.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb.png" width="244" height="100"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 1 – Resolve is the default option for Tasks and Bugs&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Changing the option to Associate each time seems small but it would be nice to change
the default option from Resolve to Associate.&amp;nbsp; In TFS 2010 it was relatively
simple to change this by updating a registry key.&amp;nbsp; However, in TFS 2012 there
are two options that address this in different ways.&amp;nbsp; Both options have some
drawbacks. I will explain the two options and let you make the decision which you
prefer.
&lt;/p&gt;
&lt;h3&gt;Removing the Check-In Action from the Work Item Template (WIT)
&lt;/h3&gt;
&lt;p&gt;
One way to address this is to remove the Check-In action from each WIT.&amp;nbsp; Using
the TFS Power Tools, you can remove the Action from the Transition.&amp;nbsp; In the Task,
you need to remove it from the New –&amp;gt; Closed and the Active –&amp;gt; Closed transitions.&amp;nbsp;
To do this, double click on the Transition title bar to open the Workflow Transition
dialog.&amp;nbsp; Navigate to the Actions tab and delete the Action.&amp;nbsp; In addition
to the Task, you should also remove this from the Bug WIT since these are the two
types of work items that you would typically associate your check-ins to.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_1.png" width="404" height="352"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 2 – Removing the Check-In action from the WIT&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Once the WITs have been updated into your team project this will be available for
all users.&amp;nbsp; Now when you add a related work item, the only option available is
Associate.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_6.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_2.png" width="354" height="99"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 3 – The default and only option is Associate&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
As I mentioned, this solution has some pros and cons. Here is a few to consider:
&lt;/p&gt;
&lt;p&gt;
Pros
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
This change only has to be made the Team Project and nothing has to be done on the
clients.&lt;/li&gt;
&lt;li&gt;
We recommend not resolving the work item, so removing this option is not a big deal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Cons
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
This would need to be applied to all current Team Projects and would need to update
the Process Template for future Team Projects.&lt;/li&gt;
&lt;li&gt;
This removes the Resolve option for users, so there is no way to perform this action
anymore.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Updating Visual Studio clients to change the default option to Associate
&lt;/h3&gt;
&lt;p&gt;
This option sounds good.&amp;nbsp; Unfortunately it only works under one scenario.&amp;nbsp;
With the Team Explorer 2012, there are two primary ways to initiate a check in.&amp;nbsp;
You can initiate the check in from the Pending Changes Pane and from My Work Pane.&amp;nbsp;
By default if you initiate the check-in from either location, the default option will
be Resolve.&amp;nbsp; Once this fix has been applied, it will update the default option
when initiating the action from the My Work pane but not the Pending Changes Pane.&amp;nbsp;
I will show you how to set this up but first I will show you the scenario that doesn’t
work and the one that does work.
&lt;/p&gt;
&lt;p&gt;
From my experience, most check-ins are initiated from the Pending Changes pane or
by right clicking on a location in Solution explorer.&amp;nbsp; Either way you will end
up on the Pending Changes pane, where you can associate a work item by query or by
ID.&amp;nbsp; Unfortunately the change has no effect on this and will continue to default
to the Resolve option as shown below. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_8.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_3.png" width="354" height="275"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 4 – Pending Changes still defaults to Resolve after updating the registry
key.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In Team Explorer 2012, there is a new Pane called My Work.&amp;nbsp; This Pane is designed
to group and manage all of your current work including code, break points, and associated
work items.&amp;nbsp; This provides the ability to suspend/resume your current work so
you can switch to work on something else and then come back to it later with everything
the way you left it.&amp;nbsp; After applying the update, initiating the check-in from
here will change the default option to Associate.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_12.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_5.png" width="604" height="252"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 5 – Initiating the check in from My Work changes the default to Associate
after the updating the registry key.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Now that you understand the scenarios.&amp;nbsp; To enable this option, each Visual Studio
user will need to update the following registry key and change ResolveAsDefaultCheckinAction
= False.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\SourceControl\Behavior&lt;/strong&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/clip_image002_2.jpg"&gt;&lt;img title="clip_image002" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image002" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/clip_image002_thumb.jpg" width="404" height="32"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;
&lt;strong&gt;Figure 6 – Set ResolveAsDefaultCheckinAction = False&lt;/strong&gt;
&lt;br&gt;
&lt;p&gt;
Next, exit all instances of Visual Studio 2012.&amp;nbsp; Open the Developer Command Prompt
for VS 2012 with administrator privileges.&amp;nbsp; Run &lt;strong&gt;devenv /setup&lt;/strong&gt; to
ensure that the registry is picked up by Visual Studio.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_18.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Changing-the-checkin-default-behavior-to_5E00/image_thumb_8.png" width="454" height="111"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 7 – Run devenv /setup to ensure registry change is applied.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
With the change applied, the default option is changed for your My Work initiated
check ins.
&lt;/p&gt;
&lt;p&gt;
For this option, here are several pros and cons:
&lt;/p&gt;
&lt;p&gt;
Pros
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
This change only has to be made once for it to apply to all TFS servers and Team Projects
that you use.&lt;/li&gt;
&lt;li&gt;
This keeps the Resolve option for the most flexibility.&lt;/li&gt;
&lt;li&gt;
Only developers that want to change the default option will be affected.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Cons
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Most check ins are initiated from the solution or Pending Changes where this update
does not work.&lt;/li&gt;
&lt;li&gt;
Each Visual Studio user needs to perform this update for it to work for them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Summary
&lt;/h3&gt;
&lt;p&gt;
As you can see there isn’t a perfect option.&amp;nbsp; Hopefully this gives you a complete
picture of the options so you can make the best decision for your team. We chose the
first option because the Resolve option would be rarely used. 
&lt;/p&gt;
&lt;p&gt;
Mike
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=4a9e7724-2ec6-4700-8edc-aff30053e73c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,4a9e7724-2ec6-4700-8edc-aff30053e73c.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=f85cd572-012d-47f9-b921-7cf544d0832a</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,f85cd572-012d-47f9-b921-7cf544d0832a.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,f85cd572-012d-47f9-b921-7cf544d0832a.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f85cd572-012d-47f9-b921-7cf544d0832a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Recently, I have had two article published on MSDN and had the opportunity to help
do a technical review for a book.  Here are the overviews and links to the full
articles in case you missed them.
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/jj159345.aspx" target="_blank">Testing
for Continuous Delivery with Visual Studio 2012</a>
          <br />
This is an excellent guide for transforming traditional and manual testing practices
to support modern iterative development with continuous delivery.  This book
is available as a free PDF.  Here are some highlights:
</p>
        <ul>
          <li>
Create and use effective unit tests, load, and performance tests. 
</li>
          <li>
Record and play back manual tests to reproduce bugs and verify the fixes. 
</li>
          <li>
Transform manual tests into code to speed up re-testing. 
</li>
          <li>
Understand how the lab environment works and how it supports a project. 
</li>
          <li>
Monitor your project in terms of tests passed. 
</li>
          <li>
Run build-deploy-test workflows on virtual lab environments. 
</li>
          <li>
Evolve your testing process to satisfy the demands of agile and continuous delivery.</li>
        </ul>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/jj159345.aspx" target="_blank">Read
More</a>
        </p>
        <p>
 
</p>
        <p>
          <a href="http://blogs.msdn.com/b/mvpawardprogram/archive/2012/09/12/continuous-feedback-using-storyboarding-code-reviews-and-the-feedback-tool-in-visual-studio-2012-alm.aspx" target="_blank">Continuous
Feedback using Storyboarding, Code Reviews, and the Feedback Tool in Visual Studio
2012 ALM</a>
          <br />
One of the key advantages of Agile or any other kind of iterative development process
is to receive feedback early and often throughout the development process instead
of waiting until the end. Traditionally this has been accomplished by teams working
closely together where the decision makers can simply turn around to tell developers
what they like and don't like. This type of collaboration becomes much more difficult
with distributed development teams. Visual Studio 2012 has introduced several tools
to help distributed teams collaborate better by being able to request, provide, and
receive feedback throughout the development process.
</p>
        <p>
          <img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-15-70-metablogapi/0743.image_5F00_1DF6CF90.png" width="332" height="187" />
        </p>
        <p>
          <a href="http://blogs.msdn.com/b/mvpawardprogram/archive/2012/09/12/continuous-feedback-using-storyboarding-code-reviews-and-the-feedback-tool-in-visual-studio-2012-alm.aspx" target="_blank">Read
More</a>
        </p>
        <p>
 
</p>
        <p>
          <a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/28/code-coverage-in-microsoft-test-manager-in-visual-studio-update-1.aspx" target="_blank">Code
Coverage in Microsoft Test Manager in Visual Studio Update 1</a>
          <br />
If you are QA professional, have you ever wondered how much of the application code
is covered by your tests? Or if you are developer, have you ever wished you knew if
there is any code that is no longer being called? Code Coverage for MTM makes it possible
for QA professionals to know how much of the application code is being covered by
Test Cases executed within MTM. Developers will know if all of code is being accessed
by the application and a valid test case. Furthermore, developers can help the QA
team identify scenarios in order to access the uncovered code blocks.
</p>
        <p>
          <img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-45-92-metablogapi/0638.clip_5F00_image002_5F00_629305B4.jpg" width="378" height="295" />
        </p>
        <p>
          <a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/28/code-coverage-in-microsoft-test-manager-in-visual-studio-update-1.aspx" target="_blank">Read
More</a>
        </p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=f85cd572-012d-47f9-b921-7cf544d0832a" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Visual Studio ALM Articles and Book Involvement on MSDN</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,f85cd572-012d-47f9-b921-7cf544d0832a.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/12/11/VisualStudioALMArticlesAndBookInvolvementOnMSDN.aspx</link>
      <pubDate>Tue, 11 Dec 2012 06:47:00 GMT</pubDate>
      <description>&lt;p&gt;
Recently, I have had two article published on MSDN and had the opportunity to help
do a technical review for a book.&amp;nbsp; Here are the overviews and links to the full
articles in case you missed them.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/jj159345.aspx" target="_blank"&gt;Testing
for Continuous Delivery with Visual Studio 2012&lt;/a&gt;
&lt;br&gt;
This is an excellent guide for transforming traditional and manual testing practices
to support modern iterative development with continuous delivery.&amp;nbsp; This book
is available as a free PDF.&amp;nbsp; Here are some highlights:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Create and use effective unit tests, load, and performance tests. 
&lt;li&gt;
Record and play back manual tests to reproduce bugs and verify the fixes. 
&lt;li&gt;
Transform manual tests into code to speed up re-testing. 
&lt;li&gt;
Understand how the lab environment works and how it supports a project. 
&lt;li&gt;
Monitor your project in terms of tests passed. 
&lt;li&gt;
Run build-deploy-test workflows on virtual lab environments. 
&lt;li&gt;
Evolve your testing process to satisfy the demands of agile and continuous delivery.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/jj159345.aspx" target="_blank"&gt;Read
More&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/b/mvpawardprogram/archive/2012/09/12/continuous-feedback-using-storyboarding-code-reviews-and-the-feedback-tool-in-visual-studio-2012-alm.aspx" target="_blank"&gt;Continuous
Feedback using Storyboarding, Code Reviews, and the Feedback Tool in Visual Studio
2012 ALM&lt;/a&gt;
&lt;br&gt;
One of the key advantages of Agile or any other kind of iterative development process
is to receive feedback early and often throughout the development process instead
of waiting until the end. Traditionally this has been accomplished by teams working
closely together where the decision makers can simply turn around to tell developers
what they like and don't like. This type of collaboration becomes much more difficult
with distributed development teams. Visual Studio 2012 has introduced several tools
to help distributed teams collaborate better by being able to request, provide, and
receive feedback throughout the development process.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-15-70-metablogapi/0743.image_5F00_1DF6CF90.png" width="332" height="187"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/b/mvpawardprogram/archive/2012/09/12/continuous-feedback-using-storyboarding-code-reviews-and-the-feedback-tool-in-visual-studio-2012-alm.aspx" target="_blank"&gt;Read
More&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/28/code-coverage-in-microsoft-test-manager-in-visual-studio-update-1.aspx" target="_blank"&gt;Code
Coverage in Microsoft Test Manager in Visual Studio Update 1&lt;/a&gt;
&lt;br&gt;
If you are QA professional, have you ever wondered how much of the application code
is covered by your tests? Or if you are developer, have you ever wished you knew if
there is any code that is no longer being called? Code Coverage for MTM makes it possible
for QA professionals to know how much of the application code is being covered by
Test Cases executed within MTM. Developers will know if all of code is being accessed
by the application and a valid test case. Furthermore, developers can help the QA
team identify scenarios in order to access the uncovered code blocks.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-45-92-metablogapi/0638.clip_5F00_image002_5F00_629305B4.jpg" width="378" height="295"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/28/code-coverage-in-microsoft-test-manager-in-visual-studio-update-1.aspx" target="_blank"&gt;Read
More&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=f85cd572-012d-47f9-b921-7cf544d0832a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,f85cd572-012d-47f9-b921-7cf544d0832a.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=ee343d78-c422-4a13-9ccf-1e7182d9a7f1</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,ee343d78-c422-4a13-9ccf-1e7182d9a7f1.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,ee343d78-c422-4a13-9ccf-1e7182d9a7f1.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ee343d78-c422-4a13-9ccf-1e7182d9a7f1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
TFS 2010 includes the ability to display the state diagrams of the work items. 
These diagrams map the workflow states and reasons of the work item.  This is
very helpful to visualize and understand the the work item’s state workflow. 
The process template guidance includes similar diagrams however, if you have made
any changes to the state workflow of the work item, the diagrams will reflect those
changes and provide some guidance on the state workflow.
</p>
        <p>
To view this in TFS 2010, you have to use Web Access to open a Work Item.  In
the main toolbar of the work item there is the option like in figure 1.  This
is not available from Team Explorer or Visual Studio.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_2.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb.png" width="404" height="182" />
          </a>
          <br />
          <strong>Figure 1 – State Diagram button in TFS 2010 Web Access</strong>
        </p>
        <p>
In TFS 2012, this option has been removed from the Web Access work items.  However,
you can still get to this if you are using SharePoint.  Within SharePoint, you
can create Work Items and still access the State Diagram button.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_4.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_1.png" width="404" height="177" />
          </a>
          <br />
          <strong>Figure 2 – State Diagram button in SharePoint 2010 with TFS 2012</strong>
        </p>
        <p>
When you view the state diagram it should look similar to this.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_6.png">
            <img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_2.png" width="604" height="519" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=ee343d78-c422-4a13-9ccf-1e7182d9a7f1" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Where are Work Item State Diagrams in TFS 2012?</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,ee343d78-c422-4a13-9ccf-1e7182d9a7f1.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/09/22/WhereAreWorkItemStateDiagramsInTFS2012.aspx</link>
      <pubDate>Sat, 22 Sep 2012 02:10:00 GMT</pubDate>
      <description>&lt;p&gt;
TFS 2010 includes the ability to display the state diagrams of the work items.&amp;nbsp;
These diagrams map the workflow states and reasons of the work item.&amp;nbsp; This is
very helpful to visualize and understand the the work item’s state workflow.&amp;nbsp;
The process template guidance includes similar diagrams however, if you have made
any changes to the state workflow of the work item, the diagrams will reflect those
changes and provide some guidance on the state workflow.
&lt;/p&gt;
&lt;p&gt;
To view this in TFS 2010, you have to use Web Access to open a Work Item.&amp;nbsp; In
the main toolbar of the work item there is the option like in figure 1.&amp;nbsp; This
is not available from Team Explorer or Visual Studio.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; margin-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb.png" width="404" height="182"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;strong&gt;Figure 1 – State Diagram button in TFS 2010 Web Access&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In TFS 2012, this option has been removed from the Web Access work items.&amp;nbsp; However,
you can still get to this if you are using SharePoint.&amp;nbsp; Within SharePoint, you
can create Work Items and still access the State Diagram button.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_1.png" width="404" height="177"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;strong&gt;Figure 2 – State Diagram button in SharePoint 2010 with TFS 2012&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When you view the state diagram it should look similar to this.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_6.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_2.png" width="604" height="519"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=ee343d78-c422-4a13-9ccf-1e7182d9a7f1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,ee343d78-c422-4a13-9ccf-1e7182d9a7f1.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=adbd38bb-f40e-4715-8afb-12689a545137</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,adbd38bb-f40e-4715-8afb-12689a545137.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,adbd38bb-f40e-4715-8afb-12689a545137.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=adbd38bb-f40e-4715-8afb-12689a545137</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In TFS 2010 there is a lessor know feature to display work item state diagrams. 
These diagrams map the workflow states and reasons of the work item.  This is
very helpful to visualize and understand the the Work Item’s state workflow. 
To view this in TFS 2010, you have to use Web Access to open a Work Item.  In
the main toolbar there is the option like in figure 1.  This is not available
from Team Explorer or Visual Studio.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_2.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; border-left: 0px; display: inline; padding-right: 0px; margin-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb.png" width="404" height="182" />
          </a>
          <br />
          <strong>Figure 1 – State Diagram button in TFS 2010 Web Access</strong>
        </p>
        <p>
In TFS 2012, this option has been removed from the Web Access work items.  However,
you can still get to this if you are using SharePoint.  Within SharePoint, you
can create Work Items and still access the State Diagram button.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_4.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_1.png" width="404" height="177" />
          </a>
          <br />
          <strong>Figure 2 – State Diagram button in SharePoint 2010 with TFS 2012</strong>
        </p>
        <p>
When you view the state diagram it should look similar to this.  Any customizations
to the work items will be reflected in the diagrams.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_6.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_2.png" width="604" height="519" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=adbd38bb-f40e-4715-8afb-12689a545137" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Where are Work Item State Diagrams in TFS 2012?</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,adbd38bb-f40e-4715-8afb-12689a545137.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/09/22/WhereAreWorkItemStateDiagramsInTFS2012.aspx</link>
      <pubDate>Sat, 22 Sep 2012 02:10:00 GMT</pubDate>
      <description>&lt;p&gt;
In TFS 2010 there is a lessor know feature to display work item state diagrams.&amp;nbsp;
These diagrams map the workflow states and reasons of the work item.&amp;nbsp; This is
very helpful to visualize and understand the the Work Item’s state workflow.&amp;nbsp;
To view this in TFS 2010, you have to use Web Access to open a Work Item.&amp;nbsp; In
the main toolbar there is the option like in figure 1.&amp;nbsp; This is not available
from Team Explorer or Visual Studio.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; border-left: 0px; display: inline; padding-right: 0px; margin-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb.png" width="404" height="182"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 1 – State Diagram button in TFS 2010 Web Access&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In TFS 2012, this option has been removed from the Web Access work items.&amp;nbsp; However,
you can still get to this if you are using SharePoint.&amp;nbsp; Within SharePoint, you
can create Work Items and still access the State Diagram button.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_1.png" width="404" height="177"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;strong&gt;Figure 2 – State Diagram button in SharePoint 2010 with TFS 2012&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When you view the state diagram it should look similar to this.&amp;nbsp; Any customizations
to the work items will be reflected in the diagrams.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_6.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Where-are-Work-Item-State-Diagrams-in-TF_D098/image_thumb_2.png" width="604" height="519"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=adbd38bb-f40e-4715-8afb-12689a545137" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,adbd38bb-f40e-4715-8afb-12689a545137.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=d61cdd82-ec55-4574-bda3-39b14d1cdc07</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,d61cdd82-ec55-4574-bda3-39b14d1cdc07.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,d61cdd82-ec55-4574-bda3-39b14d1cdc07.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d61cdd82-ec55-4574-bda3-39b14d1cdc07</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It is an exciting time to be doing development using Microsoft Tools.  Visual
Studio 2012 has just been released to the web.  I have compiled a list of the
most common questions I have received.  Keep the questions coming.  I plan
on doing additional posts as I receive more questions.
</p>
        <h5>Where and when can I download Visual Studio 2012 and Team Foundation Server 2012?
</h5>
        <p>
If you are a MSDN subscriber, you can download it right now.  Both of these have
been available since 8/15.  If you are not a subscriber, you can download the
Visual Studio Express or trial editions of the MSDN editions.<br /><a href="http://msdn.microsoft.com/en-us/subscriptions/downloads/" target="_blank">MSDN
Subscribers</a><br /><a href="http://www.microsoft.com/visualstudio/11/en-us/downloads" target="_blank">Express
Editions, Stand-Alone installers, and Trial Downloads</a></p>
        <h5>Can I connect Visual Studio 2012 to TFS 2010?
</h5>
        <p>
Yes, you can use Visual Studio 2012 to connect to TFS 2010 and you can use Visual
Studio 2010 to connect to TFS 2012.  Connecting previous versions of Visual Studio
to TFS 2012 require a GDR Update.  The update and full compatibility matrix can
be found here.<br /><a href="http://msdn.microsoft.com/en-us/library/dd997788(v=vs.110).aspx" target="_blank">Compatibility
between Team Foundation Clients and Team Foundation Server</a></p>
        <h5>Where is the Alerts Explorer in Visual Studio 2012?
</h5>
        <p>
Alerts in TFS 2012 are managed through Team Web Access.  Also, TFS 2012 now includes
creating and managing Team Alerts. See the link below how to create Personal and Team
Alerts.   If you are using TFS 2010, the Alerts Explorer has been a part
of the TFS Power Tools through Visual Studio.  The TFS 2012 Power Tools have
not been released yet but the beta tools did not include the Alerts Explorer. 
If you need to manage alerts in TFS 2010, I would recommend still using VS 2010 with
the TFS Power Tools.<br /><a href="http://msdn.microsoft.com/en-us/library/ms181334.aspx" target="_blank">Set
Personal or Team Alerts in TFS 2012</a></p>
        <h5>Can I upgrade my TFS 2010 Team Projects to include the TFS 2012 Features such
as Review, Feedback, and Planning tools?
</h5>
        <p>
Yes.  If you haven’t made any customizations or limited customizations to your
TFS 2010 Team Projects, there is a built in tool for upgrading your team project. 
Even if you have made some customizations, there are some more involved options for
upgrading.  Here is a good post describing the options.<br /><a href="http://blogs.msdn.com/b/buckh/archive/2012/06/01/use-the-wizard-to-upgrade-team-projects-in-tfs-2012.aspx" target="_blank">Use
the wizard to upgrade team projects in TFS 2012</a></p>
        <h5>Why are not all of the new features in my TFS 2012 Team Project available?
</h5>
        <p>
Some of the new features in TFS 2012 require some additional configuration. 
You won’t see the Request Feedback link until you configure email and not all of the
features on Team Web Access are available until set the appropriate permissions. 
The following link explains how to enable these features.<br /><a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/04/enabling-feedback-requests-the-backlog-and-sprint-planning-in-team-foundation-server-2012.aspx" target="_blank">Enabling
Feedback Requests, the Backlog and Sprint Planning Features in Team Foundation Server
2012</a></p>
        <h5>What licenses do my users need for PowerPoint Storyboards and the Feedback Client
Tool?
</h5>
        <p>
For Storyboards, users with VS Ultimate, VS Premium, and VS Test Professional can
use the PowerPoint add-in to create the storyboards.  Others with PowerPoint,
can view and edit the Storyboards.  The Feedback Client Tool can be downloaded
and used by any user.  This does not require a TFS CAL or MSDN Subscription. 
All of the licensing details can be found in the <a href="http://www.microsoft.com/en-us/download/details.aspx?id=13350" target="_blank">Visual
Studio 2012 and MSDN Licensing White Paper</a>.   If you have questions,
I recommend contacting your Microsoft representative for the most accurate answer.<br /><a href="http://www.microsoft.com/en-us/download/details.aspx?id=30660" target="_blank">Download
Feedback Client for Microsoft Visual Studio Team Foundation Server 2012</a></p>
        <h5>What if I have more questions?
</h5>
        <p>
These are just a few questions. If you have other questions post them on the <a href="http://social.msdn.microsoft.com/Forums/en-US/categories" target="_blank">MSDN
Forums</a>.  There are of community experts that monitor these forums and provide
answers.  Also you can email us at <a href="mailto:tfs@deliveron.com">tfs@deliveron.com</a> if
you also have questions.   
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=d61cdd82-ec55-4574-bda3-39b14d1cdc07" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Visual Studio 2012 and Team Foundation Server 2012 FAQ and Links</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,d61cdd82-ec55-4574-bda3-39b14d1cdc07.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/08/19/VisualStudio2012AndTeamFoundationServer2012FAQAndLinks.aspx</link>
      <pubDate>Sun, 19 Aug 2012 20:31:00 GMT</pubDate>
      <description>&lt;p&gt;
It is an exciting time to be doing development using Microsoft Tools.&amp;nbsp; Visual
Studio 2012 has just been released to the web.&amp;nbsp; I have compiled a list of the
most common questions I have received.&amp;nbsp; Keep the questions coming.&amp;nbsp; I plan
on doing additional posts as I receive more questions.
&lt;/p&gt;
&lt;h5&gt;Where and when can I download Visual Studio 2012 and Team Foundation Server 2012?
&lt;/h5&gt;
&lt;p&gt;
If you are a MSDN subscriber, you can download it right now.&amp;nbsp; Both of these have
been available since 8/15.&amp;nbsp; If you are not a subscriber, you can download the
Visual Studio Express or trial editions of the MSDN editions.&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/en-us/subscriptions/downloads/" target="_blank"&gt;MSDN
Subscribers&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com/visualstudio/11/en-us/downloads" target="_blank"&gt;Express
Editions, Stand-Alone installers, and Trial Downloads&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;Can I connect Visual Studio 2012 to TFS 2010?
&lt;/h5&gt;
&lt;p&gt;
Yes, you can use Visual Studio 2012 to connect to TFS 2010 and you can use Visual
Studio 2010 to connect to TFS 2012.&amp;nbsp; Connecting previous versions of Visual Studio
to TFS 2012 require a GDR Update.&amp;nbsp; The update and full compatibility matrix can
be found here.&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/dd997788(v=vs.110).aspx" target="_blank"&gt;Compatibility
between Team Foundation Clients and Team Foundation Server&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;Where is the Alerts Explorer in Visual Studio 2012?
&lt;/h5&gt;
&lt;p&gt;
Alerts in TFS 2012 are managed through Team Web Access.&amp;nbsp; Also, TFS 2012 now includes
creating and managing Team Alerts. See the link below how to create Personal and Team
Alerts.&amp;nbsp;&amp;nbsp; If you are using TFS 2010, the Alerts Explorer has been a part
of the TFS Power Tools through Visual Studio.&amp;nbsp; The TFS 2012 Power Tools have
not been released yet but the beta tools did not include the Alerts Explorer.&amp;nbsp;
If you need to manage alerts in TFS 2010, I would recommend still using VS 2010 with
the TFS Power Tools.&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/ms181334.aspx" target="_blank"&gt;Set
Personal or Team Alerts in TFS 2012&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;Can I upgrade my TFS 2010 Team Projects to include the TFS 2012 Features such
as Review, Feedback, and Planning tools?
&lt;/h5&gt;
&lt;p&gt;
Yes.&amp;nbsp; If you haven’t made any customizations or limited customizations to your
TFS 2010 Team Projects, there is a built in tool for upgrading your team project.&amp;nbsp;
Even if you have made some customizations, there are some more involved options for
upgrading.&amp;nbsp; Here is a good post describing the options.&lt;br&gt;
&lt;a href="http://blogs.msdn.com/b/buckh/archive/2012/06/01/use-the-wizard-to-upgrade-team-projects-in-tfs-2012.aspx" target="_blank"&gt;Use
the wizard to upgrade team projects in TFS 2012&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;Why are not all of the new features in my TFS 2012 Team Project available?
&lt;/h5&gt;
&lt;p&gt;
Some of the new features in TFS 2012 require some additional configuration.&amp;nbsp;
You won’t see the Request Feedback link until you configure email and not all of the
features on Team Web Access are available until set the appropriate permissions.&amp;nbsp;
The following link explains how to enable these features.&lt;br&gt;
&lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/04/enabling-feedback-requests-the-backlog-and-sprint-planning-in-team-foundation-server-2012.aspx" target="_blank"&gt;Enabling
Feedback Requests, the Backlog and Sprint Planning Features in Team Foundation Server
2012&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;What licenses do my users need for PowerPoint Storyboards and the Feedback Client
Tool?
&lt;/h5&gt;
&lt;p&gt;
For Storyboards, users with VS Ultimate, VS Premium, and VS Test Professional can
use the PowerPoint add-in to create the storyboards.&amp;nbsp; Others with PowerPoint,
can view and edit the Storyboards.&amp;nbsp; The Feedback Client Tool can be downloaded
and used by any user.&amp;nbsp; This does not require a TFS CAL or MSDN Subscription.&amp;nbsp;
All of the licensing details can be found in the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=13350" target="_blank"&gt;Visual
Studio 2012 and MSDN Licensing White Paper&lt;/a&gt;.&amp;nbsp;&amp;nbsp; If you have questions,
I recommend contacting your Microsoft representative for the most accurate answer.&lt;br&gt;
&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=30660" target="_blank"&gt;Download
Feedback Client for Microsoft Visual Studio Team Foundation Server 2012&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;What if I have more questions?
&lt;/h5&gt;
&lt;p&gt;
These are just a few questions. If you have other questions post them on the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/categories" target="_blank"&gt;MSDN
Forums&lt;/a&gt;.&amp;nbsp; There are of community experts that monitor these forums and provide
answers.&amp;nbsp; Also you can email us at &lt;a href="mailto:tfs@deliveron.com"&gt;tfs@deliveron.com&lt;/a&gt; if
you also have questions.&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=d61cdd82-ec55-4574-bda3-39b14d1cdc07" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,d61cdd82-ec55-4574-bda3-39b14d1cdc07.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=3072c5b2-08af-4f53-8902-5cb7ad8d4a91</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,3072c5b2-08af-4f53-8902-5cb7ad8d4a91.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,3072c5b2-08af-4f53-8902-5cb7ad8d4a91.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3072c5b2-08af-4f53-8902-5cb7ad8d4a91</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Team Foundation Server 2012 includes a number of enhancements to Web Access for Agile
Project Management and ALM process.  One of the new features allows you to update
your Team Project’s landing page to include live tiles of important information called
Team Favorites.  This provides a lightweight dashboard that is consistent in
Team Foundation Service and on premise TFS 2012.  These Team Favorites can include
the following:
</p>
        <ul>
          <li>
            <strong>Work Item Queries</strong>
          </li>
          <li>
            <strong>Build Definitions</strong>
          </li>
          <li>
            <strong>Recent Changes</strong>
          </li>
        </ul>
        <p>
When you first display the Team Project Web Access site, you may see the message “Some
features of Team Web Access are not visible to you” that states that some areas are
not available because you either don’t have permission or the access has not be configured
yet.  Web Access now has three permission levels: 
</p>
        <ul>
          <li>
            <strong>Limited</strong> – Provides the “View My Work Items” feature that replaces
the Work Item Web Access (WIWA) interface in TFS 2010. This access does not require
any kind of TFS license. 
</li>
          <li>
            <strong>Standard</strong> – Provides additional features including Agile Boards and
Standard Features.  This access requires users to have a TFS CAL. 
</li>
          <li>
            <strong>Full</strong> – Provides additional features including Backlog and Sprint
Planning Tools and Request and Manage Feedback.  This access requires users have
Visual Studio Premium or Ultimate or Test Professional.</li>
        </ul>
        <p>
If all of your users are at least Standard or Full access, you can set this as the
default permission or assign users or groups to these permissions.  See the following
post on enabling the features and setting the permissions Web Access. <a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/04/enabling-feedback-requests-the-backlog-and-sprint-planning-in-team-foundation-server-2012.aspx" target="_blank">Enabling
Feedback Requests, the Backlog and Sprint Planning Features in Team Foundation Server
2012</a></p>
        <p>
Let’s assume you have a license to use the Full Permission.  Once you have this
enabled, you will see the burndown chart and Iteration information (I’ll show you
this at the end of the article). Below this is the Team Favorites section.  As
you can see in the yellow message, there is where the live tiles will be added.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_1.png" width="454" height="282" />
          </a>
        </p>
        <p>
I think it is going to be important for my team to know if there are any active bugs
so they can be addressed appropriately.  Let’s add the<em> Active Bugs</em> Work
Item Query to the Team Favorites.  To do this choose View work items link under
Activities.  Then select the drop down triangle on the left of the Shared Queries
&gt; Current Iteration &gt; Active Bugs query.  This will display the following
dialog.  Chose <strong>Add to team favorites</strong>.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_2.png" width="454" height="291" />
          </a>
        </p>
        <p>
We encourage the developers on the team to check in often and it is important to have
the visibility across the team.  To show this we will add Source Code activity
for a particular branch.  In this example, I am adding the Main branch as the
Team Favorite. Click on the SOURCE tab and then the drop down triangle next to the
particular branch and choose<strong> Add to team favorites</strong> like above.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_3.png" width="454" height="248" />
          </a>
        </p>
        <p>
The last item I want to add to the Team Favorites is the build status of our Continuous
Integration build definition.  This runs every time someone checks in the code
so it is critical that this is always passing.  Providing this visibility helps
ensure the quality of the application at any given time.  To do this, select
the BUILD tab and then again follow the similar steps as above to add it as a Team
Favorite.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_4.png" width="454" height="287" />
          </a>
        </p>
        <p>
Once all of the Team Favorites are selected, the team project landing page will display
the live information.  Now our team has a single place to go to see the up to
date health and status of our project.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb.png" width="454" height="304" />
          </a>
        </p>
        <p>
Mike
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=3072c5b2-08af-4f53-8902-5cb7ad8d4a91" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Adding Team Favorites to Team Foundation Server 2012 Web Access</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,3072c5b2-08af-4f53-8902-5cb7ad8d4a91.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/08/15/AddingTeamFavoritesToTeamFoundationServer2012WebAccess.aspx</link>
      <pubDate>Wed, 15 Aug 2012 18:30:00 GMT</pubDate>
      <description>&lt;p&gt;
Team Foundation Server 2012 includes a number of enhancements to Web Access for Agile
Project Management and ALM process.&amp;nbsp; One of the new features allows you to update
your Team Project’s landing page to include live tiles of important information called
Team Favorites.&amp;nbsp; This provides a lightweight dashboard that is consistent in
Team Foundation Service and on premise TFS 2012.&amp;nbsp; These Team Favorites can include
the following:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Work Item Queries&lt;/strong&gt; 
&lt;li&gt;
&lt;strong&gt;Build Definitions&lt;/strong&gt; 
&lt;li&gt;
&lt;strong&gt;Recent Changes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
When you first display the Team Project Web Access site, you may see the message “Some
features of Team Web Access are not visible to you” that states that some areas are
not available because you either don’t have permission or the access has not be configured
yet.&amp;nbsp; Web Access now has three permission levels: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Limited&lt;/strong&gt; – Provides the “View My Work Items” feature that replaces
the Work Item Web Access (WIWA) interface in TFS 2010. This access does not require
any kind of TFS license. 
&lt;li&gt;
&lt;strong&gt;Standard&lt;/strong&gt; – Provides additional features including Agile Boards and
Standard Features.&amp;nbsp; This access requires users to have a TFS CAL. 
&lt;li&gt;
&lt;strong&gt;Full&lt;/strong&gt; – Provides additional features including Backlog and Sprint
Planning Tools and Request and Manage Feedback.&amp;nbsp; This access requires users have
Visual Studio Premium or Ultimate or Test Professional.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If all of your users are at least Standard or Full access, you can set this as the
default permission or assign users or groups to these permissions.&amp;nbsp; See the following
post on enabling the features and setting the permissions Web Access. &lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/04/enabling-feedback-requests-the-backlog-and-sprint-planning-in-team-foundation-server-2012.aspx" target="_blank"&gt;Enabling
Feedback Requests, the Backlog and Sprint Planning Features in Team Foundation Server
2012&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Let’s assume you have a license to use the Full Permission.&amp;nbsp; Once you have this
enabled, you will see the burndown chart and Iteration information (I’ll show you
this at the end of the article). Below this is the Team Favorites section.&amp;nbsp; As
you can see in the yellow message, there is where the live tiles will be added.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_1.png" width="454" height="282"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I think it is going to be important for my team to know if there are any active bugs
so they can be addressed appropriately.&amp;nbsp; Let’s add the&lt;em&gt; Active Bugs&lt;/em&gt; Work
Item Query to the Team Favorites.&amp;nbsp; To do this choose View work items link under
Activities.&amp;nbsp; Then select the drop down triangle on the left of the Shared Queries
&amp;gt; Current Iteration &amp;gt; Active Bugs query.&amp;nbsp; This will display the following
dialog.&amp;nbsp; Chose &lt;strong&gt;Add to team favorites&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_2.png" width="454" height="291"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We encourage the developers on the team to check in often and it is important to have
the visibility across the team.&amp;nbsp; To show this we will add Source Code activity
for a particular branch.&amp;nbsp; In this example, I am adding the Main branch as the
Team Favorite. Click on the SOURCE tab and then the drop down triangle next to the
particular branch and choose&lt;strong&gt; Add to team favorites&lt;/strong&gt; like above.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_3.png" width="454" height="248"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The last item I want to add to the Team Favorites is the build status of our Continuous
Integration build definition.&amp;nbsp; This runs every time someone checks in the code
so it is critical that this is always passing.&amp;nbsp; Providing this visibility helps
ensure the quality of the application at any given time.&amp;nbsp; To do this, select
the BUILD tab and then again follow the similar steps as above to add it as a Team
Favorite.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb_4.png" width="454" height="287"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Once all of the Team Favorites are selected, the team project landing page will display
the live information.&amp;nbsp; Now our team has a single place to go to see the up to
date health and status of our project.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/c40f4328e416_1473A/image_thumb.png" width="454" height="304"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Mike
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=3072c5b2-08af-4f53-8902-5cb7ad8d4a91" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,3072c5b2-08af-4f53-8902-5cb7ad8d4a91.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=a5c10ae4-6452-474b-9d89-13d255e1536c</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,a5c10ae4-6452-474b-9d89-13d255e1536c.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,a5c10ae4-6452-474b-9d89-13d255e1536c.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a5c10ae4-6452-474b-9d89-13d255e1536c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
TFS 2012 has been released to manufactures (RTM) and as of today (8/15/2012) it is
available to download for MSDN subscribers.  TFS 2012 includes a number of enhancements
that I will be writing about over the next few days and weeks.  Today, I’m going
to focus on what is new in the installation experience.  The experience has improved
enormously over the years and the latest version continues to polish an already intuitive
and straightforward process.  I’ll walk through the experience and highlight
the areas with key improvements or other noteworthy items.
</p>
        <p>
I am using a Virtual Machine with Windows Server 2008 R2 to perform a single server
installation of TFS 2012.  I have installed the following pre-requisites on the
machine before beginning the installation process.
</p>
        <ul>
          <li>
SQL Server 2012 
</li>
          <li>
SharePoint 2010 Foundation 
</li>
          <li>
IIS Web Role 
</li>
          <li>
MS Office 2010</li>
        </ul>
        <p>
See the TFSInstall.chm file on the DVD (see below) for pre-requisite requirements
and installation steps.
</p>
        <h3>Installation
</h3>
        <p>
First, let’s look at the installation DVD root folder.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb.png" width="504" height="270" />
          </a>
        </p>
        <p>
There are a couple things to note.  
</p>
        <ul>
          <li>
SharePoint Extensions are now called Remote SharePoint Extensions.  This should
be helpful because it wasn’t clear in previous versions whether or not the SharePoint
extensions needed to be installed on the same server with TFS.  The answer for
TFS 2010 is the same for TFS 2012 and that you only need to install the extensions
when SharePoint is on a remote server other than the same server as TFS.  
</li>
          <li>
Also the Project Server extensions that provide server to server integration/synchronization
between Project Server and TFS is not included on the installation DVD.  This
extensions was originally released after TFS 2010 and packaged as a Feature Pack. 
Now there is nothing else to download. 
</li>
          <li>
One other benefit of the new folder structure, is that you can simply run tfs_server.exe
from the root to begin the installation process.  There are no more subfolders
to search.</li>
        </ul>
        <p>
In TFS 2010, Microsoft separated the installation from the configuration.  This
simplified many of the complexities and scenarios for setting up TFS.  With no
surprise, Microsoft has kept that separation in TFS 2012.  The installation process
begins with the typical installation start dialog.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_1.png" width="244" height="233" />
          </a>
        </p>
        <p>
This does require UAC administrative permissions to install.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_2.png" width="244" height="127" />
          </a>
        </p>
        <p>
While it was copying the files and running the installation, I noticed the TFS installation
Windows 8 application style glyph (since we are not supposed to use the M word anymore…)
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_3.png" width="51" height="41" />
          </a>
        </p>
        <p>
 
</p>
        <p>
This completed the Installation step.  Next up is the configuration step.
</p>
        <h3>Configuration
</h3>
        <p>
The TFS configuration tool gives you a number of options and settings for the various
types of TFS configurations.  For this, I have chosen the Advanced option. 
I personally prefer to choose the Advanced option in order to give me the most control. 
The configuration tool also continues to provide options for configuring TFS Proxy,
the Build Service, and the SharePoint extensions as it did with TFS 2010.  Two
new options are the Visual SourceSafe Update tool and the PreEmptive Analytics Community
Edition. I’ll cover the reasons for using each of the configuration options in one
of my next posts.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_5.png" width="454" height="342" />
          </a>
        </p>
        <p>
The first step in the Advanced Configuration Wizard is specifying the database. 
This step is very similar to TFS 2010 however, there is one new option to support
the <a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/mission-critical-operations/SQL-Server-2012-high-availability.aspx" target="_blank">SQL
AlwaysOn</a> feature in SQL Server 2012
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_6.png" width="404" height="304" />
          </a> 
</p>
        <p>
Here is some additional information available when you hover over the information
icon.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_16.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_7.png" width="404" height="92" />
          </a>
        </p>
        <p>
Next is the Account settings. This is the same as TFS 2010.  Nothing interesting
to show here.  Even though it isn’t necessary, I still recommend using domain
accounts if installing on a domain.
</p>
        <p>
In the Application Tier settings, you can change the default port and IIS Virtual
Directory but nothing has changed from TFS 2010.
</p>
        <p>
The next few screens are for Reporting.  These are all the same as TFS 2010 so
I skip adding the screenshots and settings.
</p>
        <p>
The SharePoint settings are next.  You can choose to install and configure SharePoint
on the same machine from here or specify that it is already installed.  I already
installed SharePoint, so I chose the later.  With that setting the next screen
the asks for the Site URL and and Administrative URL for SharePoint.
</p>
        <p>
The Project Collection settings are the last option. Choose I name for your default
collection.  I kept the creative name, DefaultCollection.
</p>
        <p>
Once all of the settings screens are completed, the configuration tool will run through
the Readiness Checks and verify that TFS is ready to be configured.  My VM was
a little short on RAM so I received a warning but everything else checked out.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_18.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_8.png" width="454" height="342" />
          </a>
        </p>
        <p>
Click Configure to run the configuration process and when it is completed, you should
get a screen similar to this one.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_20.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_9.png" width="454" height="342" />
          </a>
        </p>
        <p>
As you can see the experience is similar to TFS 2010 which is great.  Most users
should feel comfortable with this interface.  It also includes some nice improvements
in areas to continue to make it more polished. Feel free to contact me if you have
any questions about installing/configuring TFS 2012 or learning more about implementing
it in your environment.
</p>
        <p>
Mike
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=a5c10ae4-6452-474b-9d89-13d255e1536c" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>What’s New in Installing and Configuring Team Foundation Server 2012</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,a5c10ae4-6452-474b-9d89-13d255e1536c.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/08/15/WhatsNewInInstallingAndConfiguringTeamFoundationServer2012.aspx</link>
      <pubDate>Wed, 15 Aug 2012 18:19:00 GMT</pubDate>
      <description>&lt;p&gt;
TFS 2012 has been released to manufactures (RTM) and as of today (8/15/2012) it is
available to download for MSDN subscribers.&amp;nbsp; TFS 2012 includes a number of enhancements
that I will be writing about over the next few days and weeks.&amp;nbsp; Today, I’m going
to focus on what is new in the installation experience.&amp;nbsp; The experience has improved
enormously over the years and the latest version continues to polish an already intuitive
and straightforward process.&amp;nbsp; I’ll walk through the experience and highlight
the areas with key improvements or other noteworthy items.
&lt;/p&gt;
&lt;p&gt;
I am using a Virtual Machine with Windows Server 2008 R2 to perform a single server
installation of TFS 2012.&amp;nbsp; I have installed the following pre-requisites on the
machine before beginning the installation process.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SQL Server 2012 
&lt;li&gt;
SharePoint 2010 Foundation 
&lt;li&gt;
IIS Web Role 
&lt;li&gt;
MS Office 2010&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
See the TFSInstall.chm file on the DVD (see below) for pre-requisite requirements
and installation steps.
&lt;/p&gt;
&lt;h3&gt;Installation
&lt;/h3&gt;
&lt;p&gt;
First, let’s look at the installation DVD root folder.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb.png" width="504" height="270"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
There are a couple things to note.&amp;nbsp; 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SharePoint Extensions are now called Remote SharePoint Extensions.&amp;nbsp; This should
be helpful because it wasn’t clear in previous versions whether or not the SharePoint
extensions needed to be installed on the same server with TFS.&amp;nbsp; The answer for
TFS 2010 is the same for TFS 2012 and that you only need to install the extensions
when SharePoint is on a remote server other than the same server as TFS.&amp;nbsp; 
&lt;li&gt;
Also the Project Server extensions that provide server to server integration/synchronization
between Project Server and TFS is not included on the installation DVD.&amp;nbsp; This
extensions was originally released after TFS 2010 and packaged as a Feature Pack.&amp;nbsp;
Now there is nothing else to download. 
&lt;li&gt;
One other benefit of the new folder structure, is that you can simply run tfs_server.exe
from the root to begin the installation process.&amp;nbsp; There are no more subfolders
to search.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In TFS 2010, Microsoft separated the installation from the configuration.&amp;nbsp; This
simplified many of the complexities and scenarios for setting up TFS.&amp;nbsp; With no
surprise, Microsoft has kept that separation in TFS 2012.&amp;nbsp; The installation process
begins with the typical installation start dialog.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_1.png" width="244" height="233"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This does require UAC administrative permissions to install.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_2.png" width="244" height="127"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
While it was copying the files and running the installation, I noticed the TFS installation
Windows 8 application style glyph (since we are not supposed to use the M word anymore…)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_3.png" width="51" height="41"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
This completed the Installation step.&amp;nbsp; Next up is the configuration step.
&lt;/p&gt;
&lt;h3&gt;Configuration
&lt;/h3&gt;
&lt;p&gt;
The TFS configuration tool gives you a number of options and settings for the various
types of TFS configurations.&amp;nbsp; For this, I have chosen the Advanced option.&amp;nbsp;
I personally prefer to choose the Advanced option in order to give me the most control.&amp;nbsp;
The configuration tool also continues to provide options for configuring TFS Proxy,
the Build Service, and the SharePoint extensions as it did with TFS 2010.&amp;nbsp; Two
new options are the Visual SourceSafe Update tool and the PreEmptive Analytics Community
Edition. I’ll cover the reasons for using each of the configuration options in one
of my next posts.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_5.png" width="454" height="342"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The first step in the Advanced Configuration Wizard is specifying the database.&amp;nbsp;
This step is very similar to TFS 2010 however, there is one new option to support
the &lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/mission-critical-operations/SQL-Server-2012-high-availability.aspx" target="_blank"&gt;SQL
AlwaysOn&lt;/a&gt; feature in SQL Server 2012
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_6.png" width="404" height="304"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Here is some additional information available when you hover over the information
icon.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_7.png" width="404" height="92"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Next is the Account settings. This is the same as TFS 2010.&amp;nbsp; Nothing interesting
to show here.&amp;nbsp; Even though it isn’t necessary, I still recommend using domain
accounts if installing on a domain.
&lt;/p&gt;
&lt;p&gt;
In the Application Tier settings, you can change the default port and IIS Virtual
Directory but nothing has changed from TFS 2010.
&lt;/p&gt;
&lt;p&gt;
The next few screens are for Reporting.&amp;nbsp; These are all the same as TFS 2010 so
I skip adding the screenshots and settings.
&lt;/p&gt;
&lt;p&gt;
The SharePoint settings are next.&amp;nbsp; You can choose to install and configure SharePoint
on the same machine from here or specify that it is already installed.&amp;nbsp; I already
installed SharePoint, so I chose the later.&amp;nbsp; With that setting the next screen
the asks for the Site URL and and Administrative URL for SharePoint.
&lt;/p&gt;
&lt;p&gt;
The Project Collection settings are the last option. Choose I name for your default
collection.&amp;nbsp; I kept the creative name, DefaultCollection.
&lt;/p&gt;
&lt;p&gt;
Once all of the settings screens are completed, the configuration tool will run through
the Readiness Checks and verify that TFS is ready to be configured.&amp;nbsp; My VM was
a little short on RAM so I received a warning but everything else checked out.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_8.png" width="454" height="342"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Click Configure to run the configuration process and when it is completed, you should
get a screen similar to this one.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Installing-TFS-2012_143AD/image_thumb_9.png" width="454" height="342"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As you can see the experience is similar to TFS 2010 which is great.&amp;nbsp; Most users
should feel comfortable with this interface.&amp;nbsp; It also includes some nice improvements
in areas to continue to make it more polished. Feel free to contact me if you have
any questions about installing/configuring TFS 2012 or learning more about implementing
it in your environment.
&lt;/p&gt;
&lt;p&gt;
Mike
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=a5c10ae4-6452-474b-9d89-13d255e1536c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,a5c10ae4-6452-474b-9d89-13d255e1536c.aspx</comments>
      <category>ALM</category>
      <category>TFS 2012</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=346fa82d-4b95-464a-8537-cd2355e91156</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,346fa82d-4b95-464a-8537-cd2355e91156.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,346fa82d-4b95-464a-8537-cd2355e91156.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=346fa82d-4b95-464a-8537-cd2355e91156</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Have you downloaded the latest <a href="http://www.microsoft.com/visualstudio/11/en-us" target="_blank">Visual
Studio 2012 RC</a> and <a href="http://www.microsoft.com/visualstudio/11/en-us" target="_blank">Team
Foundation Server 2012 RC</a> and looking how to start taking advantage of all of
the ALM features?  Look no further then the <strong>SIM</strong>ultaneous <strong>SHIP</strong>ping
of the ALM Rangers Visual Studio 2012 RC Readiness wave of releases. This Readiness
wave includes a number of guidance and tools to help you get the most out of Visual
Studio 2012 RC today.  Download and start utilizing these releases! 
</p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230941" target="_blank">Practical
Kanban Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230942" target="_blank">Practical
Ruck Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230947" target="_blank">Team Foundation
Server Planning Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230946" target="_blank">Team Foundation
Server Process Template Customization Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230938" target="_blank">Team Foundation
Build Customization Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230948" target="_blank">Team Foundation
Server Upgrade Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230942" target="_blank">Team Foundation
Service Practical Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230949" target="_blank">Test Release
Management Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230942" target="_blank">Visual Studio
ALM Rangers Personas and Scenarios</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=237638" target="_blank">Visual Studio
Coded UI Microsoft Word Plug-In</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230939" target="_blank">Visual Studio
Test Tooling Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230951" target="_blank">Visual Studio
Lab Management Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230952" target="_blank">Visual Studio
Quick Reference Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230950" target="_blank">Visual Studio
Architecture Tooling Guide</a>
        </p>
        <p>
          <a href="http://go.microsoft.com/fwlink/?LinkID=230953" target="_blank">VM Factory
Guide</a>
        </p>
        <p>
and more coming soon!
</p>
        <p>
All of the information is detailed on the <a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/05/31/welcome-to-visual-studio-2012-alm-rangers-readiness-rc-wave.aspx" target="_blank">Visual
Studio ALM + Team Foundation Server blog</a>.
</p>
        <p>
We are trying to reach 500,000 downloads by the end of FY13.  Help yourself to
all of this useful and practical information and help the ALM Rangers reach our goal!  
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=346fa82d-4b95-464a-8537-cd2355e91156" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Download the Latest ALM Rangers Visual Studio 2012 Readiness RC Releases</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,346fa82d-4b95-464a-8537-cd2355e91156.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/07/03/DownloadTheLatestALMRangersVisualStudio2012ReadinessRCReleases.aspx</link>
      <pubDate>Tue, 03 Jul 2012 02:30:00 GMT</pubDate>
      <description>&lt;p&gt;
Have you downloaded the latest &lt;a href="http://www.microsoft.com/visualstudio/11/en-us" target="_blank"&gt;Visual
Studio 2012 RC&lt;/a&gt; and &lt;a href="http://www.microsoft.com/visualstudio/11/en-us" target="_blank"&gt;Team
Foundation Server 2012 RC&lt;/a&gt; and looking how to start taking advantage of all of
the ALM features?&amp;nbsp; Look no further then the &lt;strong&gt;SIM&lt;/strong&gt;ultaneous &lt;strong&gt;SHIP&lt;/strong&gt;ping
of the ALM Rangers Visual Studio 2012 RC Readiness wave of releases. This Readiness
wave includes a number of guidance and tools to help you get the most out of Visual
Studio 2012 RC today.&amp;nbsp; Download and start utilizing these releases! 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230941" target="_blank"&gt;Practical
Kanban Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230942" target="_blank"&gt;Practical
Ruck Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230947" target="_blank"&gt;Team Foundation
Server Planning Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230946" target="_blank"&gt;Team Foundation
Server Process Template Customization Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230938" target="_blank"&gt;Team Foundation
Build Customization Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230948" target="_blank"&gt;Team Foundation
Server Upgrade Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230942" target="_blank"&gt;Team Foundation
Service Practical Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230949" target="_blank"&gt;Test Release
Management Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230942" target="_blank"&gt;Visual Studio
ALM Rangers Personas and Scenarios&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=237638" target="_blank"&gt;Visual Studio
Coded UI Microsoft Word Plug-In&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230939" target="_blank"&gt;Visual Studio
Test Tooling Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230951" target="_blank"&gt;Visual Studio
Lab Management Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230952" target="_blank"&gt;Visual Studio
Quick Reference Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230950" target="_blank"&gt;Visual Studio
Architecture Tooling Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230953" target="_blank"&gt;VM Factory
Guide&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
and more coming soon!
&lt;/p&gt;
&lt;p&gt;
All of the information is detailed on the &lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/05/31/welcome-to-visual-studio-2012-alm-rangers-readiness-rc-wave.aspx" target="_blank"&gt;Visual
Studio ALM + Team Foundation Server blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We are trying to reach 500,000 downloads by the end of FY13.&amp;nbsp; Help yourself to
all of this useful and practical information and help the ALM Rangers reach our goal!&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=346fa82d-4b95-464a-8537-cd2355e91156" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,346fa82d-4b95-464a-8537-cd2355e91156.aspx</comments>
      <category>ALM</category>
      <category>Rangers</category>
      <category>Visual Studio 2012</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=bac325de-9070-4c65-ada5-28aa7dba3025</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,bac325de-9070-4c65-ada5-28aa7dba3025.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,bac325de-9070-4c65-ada5-28aa7dba3025.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bac325de-9070-4c65-ada5-28aa7dba3025</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
SQL Server 2012 was just launched and is packed a number of new features.  See
the <a href="http://www.microsoft.com/sql" target="_blank">Microsoft SQL Server 2012
landing page</a> for more information on SQL Server 2012.  SQL Server 2012 includes
everything you need (almost, as I’ll show you below) to being utilizing the ALM features
in Team Foundation Server 2010 without the developer edition of Visual Studio. 
I’m going to walk you though the options to install, the configuration, and the additional
downloads to begin using all of the features.
</p>
        <p>
If you opened SQL Server Management Studio 2012 then you have probably noticed how
it now powered by Visual Studio 2010.  In addition, the Business Intelligence
Development Studio (BIDS) has been renamed to SQL Server Data Tools (SSDT). 
Not only is SSDT powered by Visual Studio 2010, it now includes the Database Project
template.  By integrating “Data Dude” (Microsoft’s original code name for the
database development tools that keeps sticking) into the SQL Server installation,
I think Microsoft is sending the message that ALM features for database artifacts
are very important for database professionals and not just developers.  
</p>
        <h3>SQL Server Installation
</h3>
        <p>
This first step is choose the proper features when installing SQL Server.  If
you have already installed it without these features, you will need to rerun the installation
and add these features.  During the Feature Selection of the SQL Server 2012
installation wizard, choose the <strong>SQL Server Data Tools</strong> and <strong>Management
Tools</strong> to install the Visual Studio 2010 powered client tools as shown in
Figure 1.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_1.png" width="644" height="483" />
          </a>
        </p>
        <p>
          <strong>Figure 1 – Choosing the SQL Server Data Tools</strong>
        </p>
        <p>
Once this installation has completed, the two client tool programs will be available
from the Microsoft SQL Server 2012 program menu.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_2.png" width="240" height="195" />
          </a>
        </p>
        <p>
          <strong>Figure 2 – SQL Server Data Tools and Management Studio programs</strong>
        </p>
        <h3>Enabling Database Projects in SQL Server Data Tools
</h3>
        <p>
Open the SQL Server Data Tools and choose New Project. The Business Intelligence project
templates are listed below for Analysis Services, Integration Services, and Reporting
Services.  The SQL Server item has the option to install the additional functionality
including for Database Projects.  Choose this option to download and install
the additional functionality. 
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_3.png" width="644" height="446" />
          </a>
        </p>
        <p>
          <strong>Figure 3 – Microsoft SQL Server Data Tools (Web Install) option</strong>
        </p>
        <p>
The dialog appears and provides the option to Install the features.  Click Install
to take you to the link below.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_4.png" width="404" height="226" />
          </a>
        </p>
        <p>
          <strong>Figure 4 – Installing Microsoft SQL Server Data Tools</strong>
        </p>
        <p>
The <a href="http://msdn.microsoft.com/en-us/data/hh297027" target="_blank">Get Started
with Microsoft SQL Server Data Tools page</a> includes the instructions for installing
the tools for both Visual Studio 2010 Professional (or above) and SQL Server Data
Tools.  The second bullet covers our scenario of the Visual Studio 2010 Integrated
Shell and will download all of the required components from the link.  Click
on the <a href="http://www.microsoft.com/web/gallery/install.aspx?appid=SSDT" target="_blank">Download
SQL Server Data Tools link</a> to launch the Web Platform Installer 3.0 to install
the SSDT application.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_5.png" width="644" height="446" />
          </a>
        </p>
        <p>
          <strong>Figure 5 – Get Started with Microsoft SQL Server Data Tools</strong>
        </p>
        <p>
Click the<strong> Install Now</strong> link to run the Web Platform Installer powered
installation.  Then click the <strong>Install</strong> button below to begin
the installation process.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_6.png" width="404" height="281" />
          </a>
        </p>
        <p>
          <strong>Figure 6 – Install Microsoft SQL Server Data Tools</strong>
        </p>
        <p>
Once the installation completes, you will have the Database Projects template available
to use, however not all of the functionality that was included in previous versions
of the Database Project is available.  The SSDT team is planning on using the
SSDT Power Tools as a the delivery mechanism to continue to add functionality to SSDT
based on the users requests and needs.  The first release of the SSDT Power Tools
adds Schema View to the Database Projects.  Download and install the latest version
the <a href="http://visualstudiogallery.msdn.microsoft.com/9b0228c6-15d1-44de-9279-66dde12bf861?SRC=Featured" target="_blank">SSDT
Power Tools</a> to add this functionality. Continue to monitor this post and the <a href="http://blogs.msdn.com/b/ssdt/archive/2012/04/02/first-release-of-ssdt-power-tools.aspx" target="_blank">SSDT
Team blog</a> for further improvements.  
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_18.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_8.png" width="504" height="381" />
          </a>
        </p>
        <p>
          <strong>Figure 7 – SSDT Power Tools Download Page</strong>
        </p>
        <p>
Finally, when you reopen the SSDT, the SQL Server Data Project template is now available. 
You can now create Database Projects to manage your database artifacts with rich features
such as smart rename and schema compare.  Furthermore you can leverage these
projects to create automated builds and deployments to align with the application
source code builds and deployments.  See my previous post, <a href="http://www.codesmartnothard.com/2011/10/31/ImplementingContinuousIntegrationCIAndDeliveryForSQLServerDatabases.aspx" target="_blank">Implementing
Continuous Integration (CI) and Deliveron for SQL Server Databases</a> for some background
on Database Projects especially for automated deployments.
</p>
        <p>
There is one critical capability missing with this solution so far.  The Database
Projects are important for following Configuration Management (CM) practices but it
is not complete without the ability to use them with a Source Control Management (SCM)
system.  Fortunately, by being powered by Visual Studio, SSDT can be tightly
integrated with Team Foundation Server 2010 (TFS).   TFS 2010 provides a
number of integrated ALM features including SCM and is even free to install if you
have a MSDN license.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_16.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_7.png" width="644" height="446" />
          </a>
        </p>
        <p>
          <strong>Figure 8 – Create SQL Server 2012 Database Projects</strong>
        </p>
        <h3>Connecting to Team Foundation Server 2010
</h3>
        <p>
The Visual Studio integrated shell that powers SSDT does not include the Team Explorer
component that provides the full integration with TFS 2010.  Team Explorer is
a free download (but requires a TFS CAL, also included with your MSDN license) that
you can install to add this functionality.  Download and install <a href="http://www.microsoft.com/download/en/details.aspx?id=329" target="_blank">Team
Explorer 2010</a>.  When the installation completes, you should download and
re-install the <a href="http://www.microsoft.com/download/en/details.aspx?id=23691" target="_blank">Visual
Studio 2010 SP1</a> (this was automatically installed for you).  To connect to
TFS 2010, first make sure the Team Explorer view is visible.  If not go to the <strong>View</strong> menu
and select <strong>Team Explorer</strong>.  In the Team Explorer toolbar, select
the<strong> plus icon</strong> highlighted below to open the Connect to Team Project
dialog and then select Servers to show you the Add/Remove Team Foundation Server dialog.
Finally, click the <strong>Add</strong> button to create the connection to the appropriate
TFS 2010 Server.  In addition to the SCM features with TFS 2010, this includes
bug tracking, agile project management capabilities, build automation, test case management,
and more.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_20.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_9.png" width="644" height="271" />
          </a>
        </p>
        <p>
          <strong>Figure 9 – Connecting to Team Foundation Server 2010</strong>
        </p>
        <p>
I hope this provided the information you need get started using Database Projects
with SQL Server 2012.  In a future post, I’ll go into detail on how to use the
Database Projects.  If you are using the Visual Studio 2010 Professional or higher,
the same <a href="http://msdn.microsoft.com/en-us/data/hh297027" target="_blank">link</a> above
will install the capabilities for this.  Finally if you are using the Visual
Studio 11 beta or newer, the Database Project template for SQL Server 2012 is already
included.  You will also want to download the SSDT Power Tools.
</p>
        <p>
This was also cross posted on the <a href="http://www.deliveron.com/blog/post/Configure-SQL-Server-2012-Data-Tools-for-ALM-and-TFS-Features.aspx" target="_blank">Deliveron
blog</a></p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=bac325de-9070-4c65-ada5-28aa7dba3025" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Configure SQL Server 2012 Data Tools for ALM and TFS Features</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,bac325de-9070-4c65-ada5-28aa7dba3025.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/04/23/ConfigureSQLServer2012DataToolsForALMAndTFSFeatures.aspx</link>
      <pubDate>Mon, 23 Apr 2012 22:41:00 GMT</pubDate>
      <description>&lt;p&gt;
SQL Server 2012 was just launched and is packed a number of new features.&amp;nbsp; See
the &lt;a href="http://www.microsoft.com/sql" target="_blank"&gt;Microsoft SQL Server 2012
landing page&lt;/a&gt; for more information on SQL Server 2012.&amp;nbsp; SQL Server 2012 includes
everything you need (almost, as I’ll show you below) to being utilizing the ALM features
in Team Foundation Server 2010 without the developer edition of Visual Studio.&amp;nbsp;
I’m going to walk you though the options to install, the configuration, and the additional
downloads to begin using all of the features.
&lt;/p&gt;
&lt;p&gt;
If you opened SQL Server Management Studio 2012 then you have probably noticed how
it now powered by Visual Studio 2010.&amp;nbsp; In addition, the Business Intelligence
Development Studio (BIDS) has been renamed to SQL Server Data Tools (SSDT).&amp;nbsp;
Not only is SSDT powered by Visual Studio 2010, it now includes the Database Project
template.&amp;nbsp; By integrating “Data Dude” (Microsoft’s original code name for the
database development tools that keeps sticking) into the SQL Server installation,
I think Microsoft is sending the message that ALM features for database artifacts
are very important for database professionals and not just developers.&amp;nbsp; 
&lt;/p&gt;
&lt;h3&gt;SQL Server Installation
&lt;/h3&gt;
&lt;p&gt;
This first step is choose the proper features when installing SQL Server.&amp;nbsp; If
you have already installed it without these features, you will need to rerun the installation
and add these features.&amp;nbsp; During the Feature Selection of the SQL Server 2012
installation wizard, choose the &lt;strong&gt;SQL Server Data Tools&lt;/strong&gt; and &lt;strong&gt;Management
Tools&lt;/strong&gt; to install the Visual Studio 2010 powered client tools as shown in
Figure 1.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_1.png" width="644" height="483"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 1 – Choosing the SQL Server Data Tools&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Once this installation has completed, the two client tool programs will be available
from the Microsoft SQL Server 2012 program menu.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_2.png" width="240" height="195"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 2 – SQL Server Data Tools and Management Studio programs&lt;/strong&gt;
&lt;/p&gt;
&lt;h3&gt;Enabling Database Projects in SQL Server Data Tools
&lt;/h3&gt;
&lt;p&gt;
Open the SQL Server Data Tools and choose New Project. The Business Intelligence project
templates are listed below for Analysis Services, Integration Services, and Reporting
Services.&amp;nbsp; The SQL Server item has the option to install the additional functionality
including for Database Projects.&amp;nbsp; Choose this option to download and install
the additional functionality. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_3.png" width="644" height="446"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 3 – Microsoft SQL Server Data Tools (Web Install) option&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The dialog appears and provides the option to Install the features.&amp;nbsp; Click Install
to take you to the link below.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_4.png" width="404" height="226"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 4 – Installing Microsoft SQL Server Data Tools&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://msdn.microsoft.com/en-us/data/hh297027" target="_blank"&gt;Get Started
with Microsoft SQL Server Data Tools page&lt;/a&gt; includes the instructions for installing
the tools for both Visual Studio 2010 Professional (or above) and SQL Server Data
Tools.&amp;nbsp; The second bullet covers our scenario of the Visual Studio 2010 Integrated
Shell and will download all of the required components from the link.&amp;nbsp; Click
on the &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=SSDT" target="_blank"&gt;Download
SQL Server Data Tools link&lt;/a&gt; to launch the Web Platform Installer 3.0 to install
the SSDT application.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_5.png" width="644" height="446"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 5 – Get Started with Microsoft SQL Server Data Tools&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Click the&lt;strong&gt; Install Now&lt;/strong&gt; link to run the Web Platform Installer powered
installation.&amp;nbsp; Then click the &lt;strong&gt;Install&lt;/strong&gt; button below to begin
the installation process.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_6.png" width="404" height="281"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 6 – Install Microsoft SQL Server Data Tools&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Once the installation completes, you will have the Database Projects template available
to use, however not all of the functionality that was included in previous versions
of the Database Project is available.&amp;nbsp; The SSDT team is planning on using the
SSDT Power Tools as a the delivery mechanism to continue to add functionality to SSDT
based on the users requests and needs.&amp;nbsp; The first release of the SSDT Power Tools
adds Schema View to the Database Projects.&amp;nbsp; Download and install the latest version
the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/9b0228c6-15d1-44de-9279-66dde12bf861?SRC=Featured" target="_blank"&gt;SSDT
Power Tools&lt;/a&gt; to add this functionality. Continue to monitor this post and the &lt;a href="http://blogs.msdn.com/b/ssdt/archive/2012/04/02/first-release-of-ssdt-power-tools.aspx" target="_blank"&gt;SSDT
Team blog&lt;/a&gt; for further improvements.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_8.png" width="504" height="381"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 7 – SSDT Power Tools Download Page&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Finally, when you reopen the SSDT, the SQL Server Data Project template is now available.&amp;nbsp;
You can now create Database Projects to manage your database artifacts with rich features
such as smart rename and schema compare.&amp;nbsp; Furthermore you can leverage these
projects to create automated builds and deployments to align with the application
source code builds and deployments.&amp;nbsp; See my previous post, &lt;a href="http://www.codesmartnothard.com/2011/10/31/ImplementingContinuousIntegrationCIAndDeliveryForSQLServerDatabases.aspx" target="_blank"&gt;Implementing
Continuous Integration (CI) and Deliveron for SQL Server Databases&lt;/a&gt; for some background
on Database Projects especially for automated deployments.
&lt;/p&gt;
&lt;p&gt;
There is one critical capability missing with this solution so far.&amp;nbsp; The Database
Projects are important for following Configuration Management (CM) practices but it
is not complete without the ability to use them with a Source Control Management (SCM)
system.&amp;nbsp; Fortunately, by being powered by Visual Studio, SSDT can be tightly
integrated with Team Foundation Server 2010 (TFS).&amp;nbsp;&amp;nbsp; TFS 2010 provides a
number of integrated ALM features including SCM and is even free to install if you
have a MSDN license.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_7.png" width="644" height="446"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 8 – Create SQL Server 2012 Database Projects&lt;/strong&gt;
&lt;/p&gt;
&lt;h3&gt;Connecting to Team Foundation Server 2010
&lt;/h3&gt;
&lt;p&gt;
The Visual Studio integrated shell that powers SSDT does not include the Team Explorer
component that provides the full integration with TFS 2010.&amp;nbsp; Team Explorer is
a free download (but requires a TFS CAL, also included with your MSDN license) that
you can install to add this functionality.&amp;nbsp; Download and install &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=329" target="_blank"&gt;Team
Explorer 2010&lt;/a&gt;.&amp;nbsp; When the installation completes, you should download and
re-install the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23691" target="_blank"&gt;Visual
Studio 2010 SP1&lt;/a&gt; (this was automatically installed for you).&amp;nbsp; To connect to
TFS 2010, first make sure the Team Explorer view is visible.&amp;nbsp; If not go to the &lt;strong&gt;View&lt;/strong&gt; menu
and select &lt;strong&gt;Team Explorer&lt;/strong&gt;.&amp;nbsp; In the Team Explorer toolbar, select
the&lt;strong&gt; plus icon&lt;/strong&gt; highlighted below to open the Connect to Team Project
dialog and then select Servers to show you the Add/Remove Team Foundation Server dialog.
Finally, click the &lt;strong&gt;Add&lt;/strong&gt; button to create the connection to the appropriate
TFS 2010 Server.&amp;nbsp; In addition to the SCM features with TFS 2010, this includes
bug tracking, agile project management capabilities, build automation, test case management,
and more.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/6d46c5d8d5b1_12484/image_thumb_9.png" width="644" height="271"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Figure 9 – Connecting to Team Foundation Server 2010&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I hope this provided the information you need get started using Database Projects
with SQL Server 2012.&amp;nbsp; In a future post, I’ll go into detail on how to use the
Database Projects.&amp;nbsp; If you are using the Visual Studio 2010 Professional or higher,
the same &lt;a href="http://msdn.microsoft.com/en-us/data/hh297027" target="_blank"&gt;link&lt;/a&gt; above
will install the capabilities for this.&amp;nbsp; Finally if you are using the Visual
Studio 11 beta or newer, the Database Project template for SQL Server 2012 is already
included.&amp;nbsp; You will also want to download the SSDT Power Tools.
&lt;/p&gt;
&lt;p&gt;
This was also cross posted on the &lt;a href="http://www.deliveron.com/blog/post/Configure-SQL-Server-2012-Data-Tools-for-ALM-and-TFS-Features.aspx" target="_blank"&gt;Deliveron
blog&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=bac325de-9070-4c65-ada5-28aa7dba3025" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,bac325de-9070-4c65-ada5-28aa7dba3025.aspx</comments>
      <category>ALM</category>
      <category>SQL Server 2012</category>
      <category>Team Foundation Server</category>
      <category>TFS 2010</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=17d25be4-b83f-4618-a07a-bcb1626c04f4</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,17d25be4-b83f-4618-a07a-bcb1626c04f4.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,17d25be4-b83f-4618-a07a-bcb1626c04f4.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=17d25be4-b83f-4618-a07a-bcb1626c04f4</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In the weeks before the 2012 MVP Summit, I had been talking to colleagues and customers
about feature requests and pain points in Team Foundation Server 2010 and Visual Studio
2010.  One the first day of the MVP Summit, I was reminded of the Visual Studio
UserVoice web site.  This is a site where anyone can submit a feature idea and
vote for existing ones.  Sign up for free and use your 10 votes to vote for your
favorite ideas and/or create your ideas. Your votes do matter!
</p>
        <p>
          <a title="http://visualstudio.uservoice.com/forums/121579-visual-studio" href="http://visualstudio.uservoice.com/forums/121579-visual-studio">http://visualstudio.uservoice.com/forums/121579-visual-studio</a>
        </p>
        <p>
I would still like to hear what you think.  Leave your favorites in the comments
below.
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=17d25be4-b83f-4618-a07a-bcb1626c04f4" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Visual Studio Feature Requests: Be Heard with UserVoice</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,17d25be4-b83f-4618-a07a-bcb1626c04f4.aspx</guid>
      <link>http://www.codesmartnothard.com/2012/02/29/VisualStudioFeatureRequestsBeHeardWithUserVoice.aspx</link>
      <pubDate>Wed, 29 Feb 2012 00:37:00 GMT</pubDate>
      <description>&lt;p&gt;
In the weeks before the 2012 MVP Summit, I had been talking to colleagues and customers
about feature requests and pain points in Team Foundation Server 2010 and Visual Studio
2010.&amp;nbsp; One the first day of the MVP Summit, I was reminded of the Visual Studio
UserVoice web site.&amp;nbsp; This is a site where anyone can submit a feature idea and
vote for existing ones.&amp;nbsp; Sign up for free and use your 10 votes to vote for your
favorite ideas and/or create your ideas. Your votes do matter!
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://visualstudio.uservoice.com/forums/121579-visual-studio" href="http://visualstudio.uservoice.com/forums/121579-visual-studio"&gt;http://visualstudio.uservoice.com/forums/121579-visual-studio&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I would still like to hear what you think.&amp;nbsp; Leave your favorites in the comments
below.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=17d25be4-b83f-4618-a07a-bcb1626c04f4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,17d25be4-b83f-4618-a07a-bcb1626c04f4.aspx</comments>
      <category>ALM</category>
      <category>TFS 2010</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=ad951488-68b8-4077-a918-c0f456233e07</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,ad951488-68b8-4077-a918-c0f456233e07.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,ad951488-68b8-4077-a918-c0f456233e07.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ad951488-68b8-4077-a918-c0f456233e07</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Team Foundation Server 2010 provides functionality for testing applications with built
in support for test plan and test case management    In our Agile/Scrum
projects, we define all of the Test Cases in our planning meeting to define done for
each User Story.  When starting new projects, team members often ask is how to
format the Test Cases so they are clear.  One way we have found to be very useful
is to use the same format as found in <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank">Behavior
Driven Development</a>(BDD).  BDD uses a format for communicating Test Cases
called Gherkin.  The Gherkin format follows the pattern below:
</p>
        <p align="center">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_thumb.png" width="240" height="124" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 1 – Given, When, and Then definition</strong>
        </p>
        <p>
Just like the User Story format (As a [user], I want to be able to do [business process],
so that [business value]), we have found the Gherkin format is very useful for teams
learning Agile.  In fact, these Test Cases can be written for Acceptance/Functional
tests and for Unit Tests.  When we work with customers and our own projects we
install our customized Deliveron Agile Process Template as part of the Deliveron Agile
Delivery Process.  The Deliveron Agile Process Template is a slightly customized
version of the MSF for Agile 5.0 process template.  In the Test Case work item,
we have added fields for Given, When, and Then.  The “Then” should also match
the expected result in the test steps.
</p>
        <p align="center">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/SNAGHTML3f2b686e.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML3f2b686e" border="0" alt="SNAGHTML3f2b686e" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/SNAGHTML3f2b686e_thumb.png" width="640" height="158" />
          </a>
          <br />
          <strong>Figure 2 – BDD additions for TFS Test Case Work Item</strong>
        </p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_thumb_1.png" width="644" height="37" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 3 – Expected result matches the “Then”</strong>
        </p>
        <p align="left">
Customizing the TFS Test Case Work Item Templates (WIT)  to add these fields
is straight forward.  Follow the steps in this <a href="http://www.codesmartnothard.com/2009/11/27/StepsToModifyAWorkItemTemplateInTeamFoundationServer2008.aspx" target="_blank">post</a> I
did a couple years ago.  It was for TFS 2008 but the steps are the same in TFS
2010.
</p>
        <p align="left">
In summary, use Test Cases to define done of the User Story and use BDD and Gherkin
for the language of the Test Case.  Feel free to contact us if you have any questions
about these changes or about the Deliveron Agile Delivery Process.
</p>
        <p>
This has also be cross posted at <a title="http://www.deliveron.com/blog/post/Adding-BDD-to-the-TFS-2010-Test-Case.aspx" href="http://www.deliveron.com/blog/post/Adding-BDD-to-the-TFS-2010-Test-Case.aspx">http://www.deliveron.com/blog/post/Adding-BDD-to-the-TFS-2010-Test-Case.aspx</a></p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=ad951488-68b8-4077-a918-c0f456233e07" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Adding BDD to TFS 2010 Test Cases</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,ad951488-68b8-4077-a918-c0f456233e07.aspx</guid>
      <link>http://www.codesmartnothard.com/2011/12/13/AddingBDDToTFS2010TestCases.aspx</link>
      <pubDate>Tue, 13 Dec 2011 09:33:00 GMT</pubDate>
      <description>&lt;p&gt;
Team Foundation Server 2010 provides functionality for testing applications with built
in support for test plan and test case management&amp;nbsp;&amp;nbsp;&amp;nbsp; In our Agile/Scrum
projects, we define all of the Test Cases in our planning meeting to define done for
each User Story.&amp;nbsp; When starting new projects, team members often ask is how to
format the Test Cases so they are clear.&amp;nbsp; One way we have found to be very useful
is to use the same format as found in &lt;a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank"&gt;Behavior
Driven Development&lt;/a&gt;(BDD).&amp;nbsp; BDD uses a format for communicating Test Cases
called Gherkin.&amp;nbsp; The Gherkin format follows the pattern below:
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_thumb.png" width="240" height="124"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 1 – Given, When, and Then definition&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Just like the User Story format (As a [user], I want to be able to do [business process],
so that [business value]), we have found the Gherkin format is very useful for teams
learning Agile.&amp;nbsp; In fact, these Test Cases can be written for Acceptance/Functional
tests and for Unit Tests.&amp;nbsp; When we work with customers and our own projects we
install our customized Deliveron Agile Process Template as part of the Deliveron Agile
Delivery Process.&amp;nbsp; The Deliveron Agile Process Template is a slightly customized
version of the MSF for Agile 5.0 process template.&amp;nbsp; In the Test Case work item,
we have added fields for Given, When, and Then.&amp;nbsp; The “Then” should also match
the expected result in the test steps.
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/SNAGHTML3f2b686e.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML3f2b686e" border="0" alt="SNAGHTML3f2b686e" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/SNAGHTML3f2b686e_thumb.png" width="640" height="158"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;strong&gt;Figure 2 – BDD additions for TFS Test Case Work Item&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Adding-a-little-BDD-to-TFS-Test-Case_CFAB/image_thumb_1.png" width="644" height="37"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 3 – Expected result matches the “Then”&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
Customizing the TFS Test Case Work Item Templates (WIT)&amp;nbsp; to add these fields
is straight forward.&amp;nbsp; Follow the steps in this &lt;a href="http://www.codesmartnothard.com/2009/11/27/StepsToModifyAWorkItemTemplateInTeamFoundationServer2008.aspx" target="_blank"&gt;post&lt;/a&gt; I
did a couple years ago.&amp;nbsp; It was for TFS 2008 but the steps are the same in TFS
2010.
&lt;/p&gt;
&lt;p align="left"&gt;
In summary, use Test Cases to define done of the User Story and use BDD and Gherkin
for the language of the Test Case.&amp;nbsp; Feel free to contact us if you have any questions
about these changes or about the Deliveron Agile Delivery Process.
&lt;/p&gt;
&lt;p&gt;
This has also be cross posted at &lt;a title="http://www.deliveron.com/blog/post/Adding-BDD-to-the-TFS-2010-Test-Case.aspx" href="http://www.deliveron.com/blog/post/Adding-BDD-to-the-TFS-2010-Test-Case.aspx"&gt;http://www.deliveron.com/blog/post/Adding-BDD-to-the-TFS-2010-Test-Case.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=ad951488-68b8-4077-a918-c0f456233e07" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,ad951488-68b8-4077-a918-c0f456233e07.aspx</comments>
      <category>Agile</category>
      <category>ALM</category>
      <category>Test Case Management</category>
      <category>TFS 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=3448c757-600c-476a-9b69-2bf87b8d74aa</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,3448c757-600c-476a-9b69-2bf87b8d74aa.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,3448c757-600c-476a-9b69-2bf87b8d74aa.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3448c757-600c-476a-9b69-2bf87b8d74aa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">I recently worked with a client to create a fairly comprehensive solution
for implementing Continuous Integration and Delivery for SQL Server Databases using
Visual Studio 2010 Database Projects.  I had the opportunity to give a talk on
the project at SQL Saturday in Omaha.  The presentation is <a href="http://www.sqlsaturday.com/viewsession.aspx?sat=91&amp;sessionid=5537" target="_blank">here</a> if
you want the slides.  I think there is some context missing with the slides alone
so I wanted to do this post to further explain the solution.</font>
        </p>
        <p>
          <font size="2">Before talking about the solution, let me describe three different
continuous processes.  Continuous Integration (CI) is most familiar and is often
used to describe all three of these processes.  I think the differences between
these three processes is more clear by using these terms.</font>
        </p>
        <p>
 
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb.png" width="240" height="90" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 1 – Continuous Processes</strong>
        </p>
        <p>
          <font size="2">
            <strong>Continuous Integration</strong> – Verifying code quality by
compiling and running unit tests on the build server when a developer checks in changes. 
Often abbreviated as CI.</font>
        </p>
        <p>
          <font size="2">
            <strong>Continuous Delivery</strong> – Adds the deployment of the application
and database to an isolated test environment where additional integrated and UI automated
tests can be run.  </font>
        </p>
        <p>
          <font size="2">
            <strong>Continuous Deployment</strong> – Includes automated deployment
of the application through each environment through production.</font>
        </p>
        <p>
          <font size="2">In this post I will primary review our solution for CI and Continuous
Delivery.  This works lays the foundation for the deployment into Staging and
Production but I will discuss this in a future post.</font>
        </p>
        <h3>Database Projects
</h3>
        <p>
          <font size="2">Database tools in the past have been different than the tools used
application code development.  These database tools have been difficult to implement
change management practices and Application Lifecycle Management (ALM) practices. 
Today there is an increasingly amount of application developers managing database
changes.   These are some of the reasons that have led to need for a tool
like Visual Studio Database Projects (DBPro for short).  This tool is part of
Visual Studio 2010 (Premium and higher).  To create a Visual Studio Database
Project, select SQL Server from the process template menu and then choose SQL Server
2008 Wizard or SQL Server 2008 Database Project. </font>
        </p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_28.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_13.png" width="504" height="350" />
          </a>
        </p>
        <p align="center">
          <strong>
            <font size="1">Figure 2 – SQL Server Database Project Templates in Visual
Studio 2010</font>
          </strong>
        </p>
        <p>
          <font size="2">
          </font>
        </p>
        <p>
          <font size="2">The primary purpose of the Database Projects are to manage the the
version control of database objects in SQL Server databases. The solution we established
utilizes this and many of the features of DBPro including TFS Build Integration, Data
Generation, Database Unit Testing, Static Code Analysis, and Database and Data Deployments. 
In this post I’m not going to cover how to use all of these features but focus on
how to implement the features for Continuous Integration, Delivery and Deployment
processes.  For more information, please take a look at the Visual Studio ALM
Rangers </font>
          <a href="http://vsdatabaseguide.codeplex.com/" target="_blank">
            <font size="2">Visual
Studio Database Guide</font>
          </a>
          <font size="2">.  This solution is complimentary
to the guide and goes into more more specifics for CI.</font>
        </p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_1.png" width="450" height="306" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 3 – Visual Studio Database Guide</strong>
        </p>
        <h4 align="left">Challenges
</h4>
        <p align="left">
          <font size="2">Visual Studio Database Projects are a great tool and I highly recommend
teams utilize these for managing version control for the SQL Server Databases. 
However, successfully using Database Projects can be challenging.</font>
          <font size="2"> 
I believe the benefits greatly out weigh the challenges but it is important for the
team to be aware of these for a successful implementation.</font>
        </p>
        <p align="left">
          <font size="2">
            <strong>Visual Studio</strong> – Visual Studio probably seems like
an odd challenge considering this is the tool to use for the solution, however Visual
Studio is a beast.  Visual Studio has become everything development.  Developers
are used to Visual Studio and I have seen DBAs and other database professions get
frustrated using it when they first start.  Stay with it.  It will get easier
and is the future direction of Microsoft in SQL Server 2012.  From what I have
seen SQL Server Management Studio 2012 is based on Visual Studio.</font>
        </p>
        <p align="left">
          <font size="2">
            <strong>“Truth Center” Shift</strong> – Development teams have been
used to using a shared database server and making changes directly on server since
the stone age.  Managing source control of the database in DBPro essentially
changes the “truth center” of the database project to DBPro.  Changes to the
schema should be made in DBPro and then executed or deployed from DBPro to the shared
server.  Development can also be done in local sandbox called offline schema
development where the developer can make the changes locally and check them in. 
Changes made directly to the shared SQL Server database risk being overwritten by
the next deployment from DBPro.</font>
        </p>
        <p align="left">
          <font size="2">
            <strong>Permissions</strong> – I have found DBPro does a great job
managing almost all of the artifacts for databases.  The biggest challenge and
frustration has been permissions.  The problem is that the database project holds
the specific version of the database.  For permissions this doesn’t work in most
real world examples because permissions change in each environment.  For examples,
developers need different permissions in development versus what they need in production. 
In addition, many enterprises use a separate domain for each environment.  As
shown in <strong>Figure 4</strong> below, Database Roles for the most part are consistent
between environments and primarily the users and their role membership in those roles
will vary.  The best method I found for handling these permission differences
is to exclude them altogether.  Use the following steps to handle permissions
when importing the schema and adding new objects to the project.  One advantage
of removing the users is that that they are normally connected to a login and the
login lives outside of the database in the Master database.  Including the users
and logins in the project requires an additional project called SQL Server Server
Project that contains the Master database.  This solution does not require a
SQL Server Server Project.</font>
        </p>
        <p align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_6.png" width="404" height="209" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 4 – Managing Permissions Across Environments</strong>
        </p>
        <p align="left">
          <strong>
            <font size="2">Importing Databases </font>
          </strong>
        </p>
        <p align="left">
          <font size="2">When using the importing the schema and objects into your project,
make sure you perform the following steps to first import all of the permissions and
the remove those that will change in different events.</font>
        </p>
        <ul>
          <li>
            <div align="left">
              <font size="2">Enable Import permissions in the Import Wizard to
import all of the permissions including Roles, Users, and Role Membership.</font>
            </div>
          </li>
          <li>
            <div align="left">
              <font size="2">After Import has completed:</font>
            </div>
            <ul>
              <li>
                <div align="left">
                  <font size="2">Role permissions are to be kept in the .sqlpermissions
file. </font>
                </div>
              </li>
              <li>
                <div align="left">
                  <font size="2">Schema Users (without login) are to be kept. </font>
                </div>
              </li>
              <li>
                <div align="left">
                  <font size="2">The other users must be removed</font>
                </div>
                <ul>
                  <li>
                    <div align="left">
                      <font size="2">from sqlpermissions </font>
                    </div>
                  </li>
                  <li>
                    <div align="left">
                      <font size="2">From Security\Users </font>
                    </div>
                  </li>
                  <li>
                    <div align="left">
                      <font size="2">From RoleMemberships </font>
                    </div>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <p align="left">
          <font size="2">
            <strong>Adding New Objects</strong>
          </font>
        </p>
        <p align="left">
          <font size="2">When adding new objects in the Database Project </font>
        </p>
        <ul>
          <li>
            <div align="left">
              <font size="2">Use Schema View</font>
            </div>
          </li>
          <li>
            <div align="left">
              <font size="2">Manually modify the Properties\Database.sqlpermissions
and add the new permission</font>
            </div>
            <ul>
              <li>
                <div align="left">
                  <font size="2">EX: Grant Execute to Role for Stored Procedures 
<permissionstatement action="GRANT"><permission>
EXECUTE
</permission><grantee>
TestRole
</grantee></permissionstatement></font>
                </div>
              </li>
            </ul>
          </li>
        </ul>
        <blockquote>
          <pre class="csharpcode">
            <span class="kwrd">&lt;</span>
            <span class="html">PermissionStatement</span>
            <span class="attr">Action</span>
            <span class="kwrd">="GRANT"</span>
            <span class="kwrd">&gt;</span>
            <span class="kwrd">&lt;</span>
            <span class="html">Permission</span>
            <span class="kwrd">&gt;</span>EXECUTE<span class="kwrd">&lt;/</span><span class="html">Permission</span><span class="kwrd">&gt;</span><span class="kwrd">&lt;</span><span class="html">Grantee</span><span class="kwrd">&gt;</span>TestRole<span class="kwrd">&lt;/</span><span class="html">Grantee</span><span class="kwrd">&gt;</span><span class="kwrd">&lt;</span><span class="html">Object</span><span class="attr">Name</span><span class="kwrd">="spTestFromSSMS2"</span><span class="attr">Schema</span><span class="kwrd">="dbo"</span><span class="attr">Type</span><span class="kwrd">="OBJECT"</span><span class="kwrd">/&gt;</span><span class="kwrd">&lt;</span><span class="html">Grantor</span><span class="kwrd">&gt;</span>dbo<span class="kwrd">&lt;/</span><span class="html">Grantor</span><span class="kwrd">&gt;</span><span class="kwrd">&lt;/</span><span class="html">PermissionStatement</span><span class="kwrd">&gt;</span></pre>
        </blockquote>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <h4 align="left">
          <font size="2">Permission Scripts</font>
        </h4>
        <p align="left">
          <font size="2">By removing the permissions from the project, there needs to be a place
to account for these.  This solution accomplishes this by creating a script in
the Scripts folder for environment that essentially creates the logins, users, and
assigns the role membership for each user.  This allows the flexibility to store
any variations between the environments and still store these in the database project
and in source control.  Do not set the Build Action to PostDeploy because you
can only have one for each project and it will be combined with the Deployment script.  
Instead set the “Copy to Output Directory” property on the script to “Copy Always”. 
This will create an Scripts folder and the permission files in the build output directory
so it can be called by the deployment scripts.</font>
        </p>
        <h4 align="left">Source Control
</h4>
        <p align="left">
          <font size="2">The primary benefit for using the Database Projects is that all of
the database changes can be managed in source control.  There are a lot of ways
to organize your source control and with branching and merging this can become complex
to manage.  I like to take a pragmatic approach to source control and keep things
simple but allow for complexity if needed in the future.  The <a href="http://tfsbranchingguideiii.codeplex.com/" target="_blank">Visual
Studio TFS Branching Build 2010</a> is a great reference for adopting branching and
merging strategy.  For this post I want to simply show the relationships between
Production, Development, and Work Orders.  The main points is that the database
projects should be branched and merged along side the application source control with
some sort of release branch that has the current production version.  The Work
Order branch is for production support changes that will be made into production. 
Development teams should do downward merges often to always have any work order changes
incorporated early.  When the application and database changes are deployed to
production, the development branch should be merged up to the Production branch. 
The diagrams below show how this is organized from a logic view and physical view.</font>
        </p>
        <p align="left">
          <font size="2">
            <strong>Logical View</strong>
          </font>
        </p>
        <p align="center">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_30.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_14.png" width="400" height="238" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 5 – Logical View of the Database Project Source Control Branches</strong>
        </p>
        <p align="left">
 
</p>
        <p align="left">
          <strong>
            <font size="2">Physical view</font>
          </strong>
        </p>
        <p align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_32.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_15.png" width="400" height="248" />
          </a>
        </p>
        <h3 align="left">
        </h3>
        <p align="center">
          <strong>Figure 6 – Physical View of the Database Project Source Control Branches</strong>
        </p>
        <h4 align="left">Continuous Integration (CI)
</h4>
        <p align="left">
          <font size="2">To setup the most basic CI process for your Database projects, you
can simply add the Solutions containing the database projects to your CI build that
is building your application code.  The benefit of this is that it will build
your database projects and validate that there are no schema errors and can validate
any static code analysis rules.</font>
        </p>
        <h4 align="left">Continuous Delivery
</h4>
        <p align="left">
          <font size="2">For Continuous Delivery, we want to expand the process to include deploying
the database, insert any test data we need, and then run the database unit tests. 
This adds validation that the schema in source control can correctly build the database
and that stored procedures can pass any number of validations with the unit tests. 
These steps would look like the following:</font>
        </p>
        <p align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_2.png" width="200" height="262" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 7 – Simple Continuous Delivery Process</strong>
        </p>
        <p align="left">
          <font size="2">Visual Studio Database projects make implementing this process very
simple and only requires a couple simple settings.  The dialog below shows the
out of the box settings.  To open this dialog, select Test &gt; Test Configuration
from the menu.   The sections are slightly out of order.  To start
we want to set the Deployment database project to the project we want to deploy. 
Next choose the configuration.  The configuration settings in the database project
will specify the target connection string and other deployment properties.  Next,
the Database state setting will generate the test data for the unit tests by running
one of the data generation plans.</font>
        </p>
        <p align="left">
 
</p>
        <p align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_3.png" width="454" height="569" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 8 – Database Test Settings</strong>
        </p>
        <h4 align="left">Types of Continuous Delivery
</h4>
        <p align="left">
          <font size="2">The example above basically deploys the current version of the schema
to the target but doesn’t is not a good practice run into production.  
It basically deploys the changes from the last deployment.  My goal of the Continuous
Delivery process should be a practice run into production and essentially deploy the
application and database the way it will be done for the production deployment.  
There are two types of delivery based on whether or not the application is already
in production.  For new systems that haven’t been deployed to production, the
deployment will be to deploy all of the schema.  This is referred to as <strong>Greenfield</strong>. 
For existing systems, the schema will the difference of what is currently in production
with what has been developed.  This is referred to as <strong>Brownfield</strong> deployments.</font>
        </p>
        <p align="left">
          <font size="2">From a Visual Studio Database Project standpoint, Greenfield deployments
are a simple using the deploy option.  This will drop the database and execute
the full schema script to create the database.</font>
        </p>
        <p align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_4.png" width="404" height="82" />
          </a>
        </p>
        <p align="center">
          <strong>
            <font size="1">Figure 9 – Greenfield Process</font>
          </strong>
        </p>
        <p align="left">
          <font size="2">For Brownfield deployments in Visual Studio Database Projects, the
process is accomplished in two steps using Production and Development versions of
the database projects.  The first step is to use the Production version of the
Database Project to create the full CREATE script.  Next, use the compare feature
to compare the Production and Development versions to create the DELTA script. 
Again, the key is not to compare the development against the live production database
but to use the version of the Database Project that was created either from the production
database or from the Release branch in source control.  Once you have these two
database scripts, run the CREATE script to drop the database and create the database
to the production level.  Then execute DELTA script to bring it to the current
development level.  From there you can follow the similar steps to execute the
data generation plan and automated tests to complete.  See below to see how this
fits together </font>
        </p>
        <p align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_5.png" width="404" height="212" />
          </a>
        </p>
        <p align="center">
          <strong>
            <font size="1">Figure 10 – Brownfield Process</font>
          </strong>
        </p>
        <p align="left">
          <font size="2">Putting this all together, here are the steps in order for a good SQL
Server database Continuous Delivery process.  There is some customization that
has to be done for this.  The database testing options that were available for
the simple process, won’t work out of the box for this solution.  This is because
the Database Project doesn’t know about the production and delta scripts.  The
build by default would create the database and run the data generation plan before
unit tests including the database unit tests.  However, the unit tests are run
immediately after the application is built and we need to specify the a step to build
create the scripts and then execute them.  I customized the build definition
by moving the unit test execution activities to later in the process so I could execute
the SQL scripts before the Unit Tests are run.  Once this was moved, I could
use the built in features to run the data generation plan.  Below are the steps
for the full end to end Database Continuous Delivery process.</font>
        </p>
        <h3 align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_24.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_11.png" width="200" height="338" />
          </a>
        </h3>
        <p align="center">
          <font size="1">
            <strong>Figure 11 – End to End Database Continuous Delivery Process</strong>
          </font>
        </p>
        <p align="left">
          <font size="2">To combine this process into the application continuous delivery process,
the same tasks above can executed along with the application steps.  This process
is grouped into three groups: Build/Stage, Deploy, and Execute Automated Tests. 
The process is outlined below.</font>
        </p>
        <h3 align="left">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_26.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_12.png" width="500" height="312" />
          </a>
        </h3>
        <p align="center">
          <strong>Figure 12 – End to End Application and Database Continuous Delivery Process</strong>
        </p>
        <h3 align="left"> 
</h3>
        <h3 align="left"> 
</h3>
        <h3 align="left">VSDBCMD
</h3>
        <p>
          <font size="2">One of the great features of Visual Studio Database Projects is that
the deployment and compare functionality can be executed via a command line utility
called VSDBCMD.exe.  This allows us to perform the necessary steps in our Continuous
Delivery process.  I utilize a InvokeProcess Activity in the build definition
to call a PowerShell script to execute the VSDBCMD commands.  Below are examples
of how to create the Production CREATE script and the DELTA script.  The Production
Script creates the full CREATE script from the compiled Production version of the
Database Project.  The DELTA command shows how to compare two Database Projects
to generate the DELTA SQL Script.</font>
        </p>
        <p>
 
</p>
        <p>
          <strong>
            <font size="2">Create Production Script</font>
          </strong>
        </p>
        <blockquote>
          <pre class="csharpcode">&amp; <span class="str">"C:\program files (x86)\Microsoft
Visual Studio 10.0\VSTSDB\Deploy\vsdbcmd.exe"</span></pre>
          <pre class="csharpcode">/a:deploy /dsp:sql /model:Ecommerce.dbschema /DeploymentScriptFile:c:\temp\OutputFilename2.sql </pre>
          <pre class="csharpcode">/p:TargetDatabase=<span class="str">"NewEcommerce"</span></pre>
          <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        </blockquote>
        <p>
  
</p>
        <p>
          <strong>
            <font size="2">Create Production and Development Delta Script</font>
          </strong>
        </p>
        <blockquote>
          <pre class="csharpcode">&amp; <span class="str">"C:\program files (x86)\Microsoft
Visual Studio 10.0\VSTSDB\Deploy\vsdbcmd.exe"</span></pre>
          <pre class="csharpcode">/a:deploy /dsp:sql /model:Ecommerce.dbschema /DeploymentScriptFile:c:\temp\OutputFilename2.sql </pre>
          <pre class="csharpcode">/targetmodelfile:<span class="str">"C:\tfs\deliveron\Production\EcommerceSolution\Ecommerce\obj\Debug\ecommerce.dbschema"</span></pre>
          <pre class="csharpcode">/p:TargetDatabase=<span class="str">"NewEcommerce"</span></pre>
        </blockquote>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <h3 align="left"> 
</h3>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <h3 align="left">In Summary
</h3>
        <p align="left">
          <font size="2">This concludes the overview of the solution for Continuous Integration
and Delivery for SQL Server Databases.  I hope it gives you a complete overview
for creating your own Continuous Delivery process.  Feel free to contact me if
you have any questions or comments.</font>
        </p>
        <p align="left">
          <font size="2">
            <strong>Review of Key Concepts</strong>
          </font>
        </p>
        <ul>
          <li>
            <div align="left">
              <font size="2">There are three types of Continuous processes: Integration,
Delivery, and Deployment.</font>
            </div>
          </li>
          <li>
            <div align="left">
              <font size="2">Continuous Delivery should be set up to be a practice
run for Production.</font>
            </div>
          </li>
          <li>
            <div align="left">
              <font size="2">Create compare scripts between development and production
database projects and don’t compare against live databases.</font>
            </div>
          </li>
          <li>
            <div align="left">
              <font size="2">VSDBCMD is a command line utility that perform the
deployment and compare functionality in Visual Studio Database Projects.</font>
            </div>
          </li>
        </ul>
        <p>
This was also cross posted at <a title="http://www.deliveron.com/blog/post/Implementing-Continuous-Integration-(CI)-and-Delivery-for-SQL-Server-Databases.aspx" href="http://www.deliveron.com/blog/post/Implementing-Continuous-Integration-(CI)-and-Delivery-for-SQL-Server-Databases.aspx">http://www.deliveron.com/blog/post/Implementing-Continuous-Integration-(CI)-and-Delivery-for-SQL-Server-Databases.aspx</a></p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=3448c757-600c-476a-9b69-2bf87b8d74aa" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Implementing Continuous Integration (CI) and Delivery for SQL Server Databases</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,3448c757-600c-476a-9b69-2bf87b8d74aa.aspx</guid>
      <link>http://www.codesmartnothard.com/2011/10/31/ImplementingContinuousIntegrationCIAndDeliveryForSQLServerDatabases.aspx</link>
      <pubDate>Mon, 31 Oct 2011 07:52:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;I recently worked with a client to create a fairly comprehensive solution
for implementing Continuous Integration and Delivery for SQL Server Databases using
Visual Studio 2010 Database Projects.&amp;nbsp; I had the opportunity to give a talk on
the project at SQL Saturday in Omaha.&amp;nbsp; The presentation is &lt;a href="http://www.sqlsaturday.com/viewsession.aspx?sat=91&amp;amp;sessionid=5537" target="_blank"&gt;here&lt;/a&gt; if
you want the slides.&amp;nbsp; I think there is some context missing with the slides alone
so I wanted to do this post to further explain the solution.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;Before talking about the solution, let me describe three different
continuous processes.&amp;nbsp; Continuous Integration (CI) is most familiar and is often
used to describe all three of these processes.&amp;nbsp; I think the differences between
these three processes is more clear by using these terms.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb.png" width="240" height="90"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 1 – Continuous Processes&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;strong&gt;Continuous Integration&lt;/strong&gt; – Verifying code quality by
compiling and running unit tests on the build server when a developer checks in changes.&amp;nbsp;
Often abbreviated as CI.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;strong&gt;Continuous Delivery&lt;/strong&gt; – Adds the deployment of the application
and database to an isolated test environment where additional integrated and UI automated
tests can be run.&amp;nbsp; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;strong&gt;Continuous Deployment&lt;/strong&gt; – Includes automated deployment
of the application through each environment through production.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;In this post I will primary review our solution for CI and Continuous
Delivery.&amp;nbsp; This works lays the foundation for the deployment into Staging and
Production but I will discuss this in a future post.&lt;/font&gt;
&lt;/p&gt;
&lt;h3&gt;Database Projects
&lt;/h3&gt;
&lt;p&gt;
&lt;font size="2"&gt;Database tools in the past have been different than the tools used
application code development.&amp;nbsp; These database tools have been difficult to implement
change management practices and Application Lifecycle Management (ALM) practices.&amp;nbsp;
Today there is an increasingly amount of application developers managing database
changes.&amp;nbsp;&amp;nbsp; These are some of the reasons that have led to need for a tool
like Visual Studio Database Projects (DBPro for short).&amp;nbsp; This tool is part of
Visual Studio 2010 (Premium and higher).&amp;nbsp; To create a Visual Studio Database
Project, select SQL Server from the process template menu and then choose SQL Server
2008 Wizard or SQL Server 2008 Database Project. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_28.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_13.png" width="504" height="350"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;&lt;font size="1"&gt;Figure 2 – SQL Server Database Project Templates in Visual
Studio 2010&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;The primary purpose of the Database Projects are to manage the the
version control of database objects in SQL Server databases. The solution we established
utilizes this and many of the features of DBPro including TFS Build Integration, Data
Generation, Database Unit Testing, Static Code Analysis, and Database and Data Deployments.&amp;nbsp;
In this post I’m not going to cover how to use all of these features but focus on
how to implement the features for Continuous Integration, Delivery and Deployment
processes.&amp;nbsp; For more information, please take a look at the Visual Studio ALM
Rangers &lt;/font&gt;&lt;a href="http://vsdatabaseguide.codeplex.com/" target="_blank"&gt;&lt;font size="2"&gt;Visual
Studio Database Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;.&amp;nbsp; This solution is complimentary
to the guide and goes into more more specifics for CI.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_1.png" width="450" height="306"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 3 – Visual Studio Database Guide&lt;/strong&gt;
&lt;/p&gt;
&lt;h4 align="left"&gt;Challenges
&lt;/h4&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;Visual Studio Database Projects are a great tool and I highly recommend
teams utilize these for managing version control for the SQL Server Databases.&amp;nbsp;
However, successfully using Database Projects can be challenging.&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;
I believe the benefits greatly out weigh the challenges but it is important for the
team to be aware of these for a successful implementation.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;&lt;strong&gt;Visual Studio&lt;/strong&gt; – Visual Studio probably seems like
an odd challenge considering this is the tool to use for the solution, however Visual
Studio is a beast.&amp;nbsp; Visual Studio has become everything development.&amp;nbsp; Developers
are used to Visual Studio and I have seen DBAs and other database professions get
frustrated using it when they first start.&amp;nbsp; Stay with it.&amp;nbsp; It will get easier
and is the future direction of Microsoft in SQL Server 2012.&amp;nbsp; From what I have
seen SQL Server Management Studio 2012 is based on Visual Studio.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;&lt;strong&gt;“Truth Center” Shift&lt;/strong&gt; – Development teams have been
used to using a shared database server and making changes directly on server since
the stone age.&amp;nbsp; Managing source control of the database in DBPro essentially
changes the “truth center” of the database project to DBPro.&amp;nbsp; Changes to the
schema should be made in DBPro and then executed or deployed from DBPro to the shared
server.&amp;nbsp; Development can also be done in local sandbox called offline schema
development where the developer can make the changes locally and check them in.&amp;nbsp;
Changes made directly to the shared SQL Server database risk being overwritten by
the next deployment from DBPro.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;&lt;strong&gt;Permissions&lt;/strong&gt; – I have found DBPro does a great job
managing almost all of the artifacts for databases.&amp;nbsp; The biggest challenge and
frustration has been permissions.&amp;nbsp; The problem is that the database project holds
the specific version of the database.&amp;nbsp; For permissions this doesn’t work in most
real world examples because permissions change in each environment.&amp;nbsp; For examples,
developers need different permissions in development versus what they need in production.&amp;nbsp;
In addition, many enterprises use a separate domain for each environment.&amp;nbsp; As
shown in &lt;strong&gt;Figure 4&lt;/strong&gt; below, Database Roles for the most part are consistent
between environments and primarily the users and their role membership in those roles
will vary.&amp;nbsp; The best method I found for handling these permission differences
is to exclude them altogether.&amp;nbsp; Use the following steps to handle permissions
when importing the schema and adding new objects to the project.&amp;nbsp; One advantage
of removing the users is that that they are normally connected to a login and the
login lives outside of the database in the Master database.&amp;nbsp; Including the users
and logins in the project requires an additional project called SQL Server Server
Project that contains the Master database.&amp;nbsp; This solution does not require a
SQL Server Server Project.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_6.png" width="404" height="209"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 4 – Managing Permissions Across Environments&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;strong&gt;&lt;font size="2"&gt;Importing Databases &lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;When using the importing the schema and objects into your project,
make sure you perform the following steps to first import all of the permissions and
the remove those that will change in different events.&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Enable Import permissions in the Import Wizard to
import all of the permissions including Roles, Users, and Role Membership.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;After Import has completed:&lt;/font&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Role permissions are to be kept in the .sqlpermissions
file. &lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Schema Users (without login) are to be kept. &lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;The other users must be removed&lt;/font&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;from sqlpermissions &lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;From Security\Users &lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;From RoleMemberships &lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;&lt;strong&gt;Adding New Objects&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;When adding new objects in the Database Project &lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Use Schema View&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Manually modify the Properties\Database.sqlpermissions
and add the new permission&lt;/font&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;EX: Grant Execute to Role for Stored Procedures 
&lt;permissionstatement action="GRANT"&gt;
&lt;permission&gt;
EXECUTE
&lt;/permission&gt;
&lt;grantee&gt;
TestRole
&lt;/grantee&gt;
&lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PermissionStatement&lt;/span&gt; &lt;span class="attr"&gt;Action&lt;/span&gt;&lt;span class="kwrd"&gt;="GRANT"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Permission&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;EXECUTE&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Permission&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grantee&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;TestRole&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grantee&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Object&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="spTestFromSSMS2"&lt;/span&gt; &lt;span class="attr"&gt;Schema&lt;/span&gt;&lt;span class="kwrd"&gt;="dbo"&lt;/span&gt; &lt;span class="attr"&gt;Type&lt;/span&gt;&lt;span class="kwrd"&gt;="OBJECT"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grantor&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;dbo&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grantor&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PermissionStatement&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt; &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;h4 align="left"&gt;&lt;font size="2"&gt;Permission Scripts&lt;/font&gt;
&lt;/h4&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;By removing the permissions from the project, there needs to be a place
to account for these.&amp;nbsp; This solution accomplishes this by creating a script in
the Scripts folder for environment that essentially creates the logins, users, and
assigns the role membership for each user.&amp;nbsp; This allows the flexibility to store
any variations between the environments and still store these in the database project
and in source control.&amp;nbsp; Do not set the Build Action to PostDeploy because you
can only have one for each project and it will be combined with the Deployment script.&amp;nbsp;&amp;nbsp;
Instead set the “Copy to Output Directory” property on the script to “Copy Always”.&amp;nbsp;
This will create an Scripts folder and the permission files in the build output directory
so it can be called by the deployment scripts.&lt;/font&gt;
&lt;/p&gt;
&lt;h4 align="left"&gt;Source Control
&lt;/h4&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;The primary benefit for using the Database Projects is that all of
the database changes can be managed in source control.&amp;nbsp; There are a lot of ways
to organize your source control and with branching and merging this can become complex
to manage.&amp;nbsp; I like to take a pragmatic approach to source control and keep things
simple but allow for complexity if needed in the future.&amp;nbsp; The &lt;a href="http://tfsbranchingguideiii.codeplex.com/" target="_blank"&gt;Visual
Studio TFS Branching Build 2010&lt;/a&gt; is a great reference for adopting branching and
merging strategy.&amp;nbsp; For this post I want to simply show the relationships between
Production, Development, and Work Orders.&amp;nbsp; The main points is that the database
projects should be branched and merged along side the application source control with
some sort of release branch that has the current production version.&amp;nbsp; The Work
Order branch is for production support changes that will be made into production.&amp;nbsp;
Development teams should do downward merges often to always have any work order changes
incorporated early.&amp;nbsp; When the application and database changes are deployed to
production, the development branch should be merged up to the Production branch.&amp;nbsp;
The diagrams below show how this is organized from a logic view and physical view.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;&lt;strong&gt;Logical View&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_30.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_14.png" width="400" height="238"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 5 – Logical View of the Database Project Source Control Branches&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;strong&gt;&lt;font size="2"&gt;Physical view&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_32.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_15.png" width="400" height="248"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 align="left"&gt;
&lt;/h3&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 6 – Physical View of the Database Project Source Control Branches&lt;/strong&gt;
&lt;/p&gt;
&lt;h4 align="left"&gt;Continuous Integration (CI)
&lt;/h4&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;To setup the most basic CI process for your Database projects, you
can simply add the Solutions containing the database projects to your CI build that
is building your application code.&amp;nbsp; The benefit of this is that it will build
your database projects and validate that there are no schema errors and can validate
any static code analysis rules.&lt;/font&gt;
&lt;/p&gt;
&lt;h4 align="left"&gt;Continuous Delivery
&lt;/h4&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;For Continuous Delivery, we want to expand the process to include deploying
the database, insert any test data we need, and then run the database unit tests.&amp;nbsp;
This adds validation that the schema in source control can correctly build the database
and that stored procedures can pass any number of validations with the unit tests.&amp;nbsp;
These steps would look like the following:&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_2.png" width="200" height="262"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 7 – Simple Continuous Delivery Process&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;Visual Studio Database projects make implementing this process very
simple and only requires a couple simple settings.&amp;nbsp; The dialog below shows the
out of the box settings.&amp;nbsp; To open this dialog, select Test &amp;gt; Test Configuration
from the menu.&amp;nbsp;&amp;nbsp; The sections are slightly out of order.&amp;nbsp; To start
we want to set the Deployment database project to the project we want to deploy.&amp;nbsp;
Next choose the configuration.&amp;nbsp; The configuration settings in the database project
will specify the target connection string and other deployment properties.&amp;nbsp; Next,
the Database state setting will generate the test data for the unit tests by running
one of the data generation plans.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_3.png" width="454" height="569"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 8 – Database Test Settings&lt;/strong&gt;
&lt;/p&gt;
&lt;h4 align="left"&gt;Types of Continuous Delivery
&lt;/h4&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;The example above basically deploys the current version of the schema
to the target but doesn’t is not a good practice run into production.&amp;nbsp;&amp;nbsp;
It basically deploys the changes from the last deployment.&amp;nbsp; My goal of the Continuous
Delivery process should be a practice run into production and essentially deploy the
application and database the way it will be done for the production deployment.&amp;nbsp;&amp;nbsp;
There are two types of delivery based on whether or not the application is already
in production.&amp;nbsp; For new systems that haven’t been deployed to production, the
deployment will be to deploy all of the schema.&amp;nbsp; This is referred to as &lt;strong&gt;Greenfield&lt;/strong&gt;.&amp;nbsp;
For existing systems, the schema will the difference of what is currently in production
with what has been developed.&amp;nbsp; This is referred to as &lt;strong&gt;Brownfield&lt;/strong&gt; deployments.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;From a Visual Studio Database Project standpoint, Greenfield deployments
are a simple using the deploy option.&amp;nbsp; This will drop the database and execute
the full schema script to create the database.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_4.png" width="404" height="82"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;&lt;font size="1"&gt;Figure 9 – Greenfield Process&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;For Brownfield deployments in Visual Studio Database Projects, the
process is accomplished in two steps using Production and Development versions of
the database projects.&amp;nbsp; The first step is to use the Production version of the
Database Project to create the full CREATE script.&amp;nbsp; Next, use the compare feature
to compare the Production and Development versions to create the DELTA script.&amp;nbsp;
Again, the key is not to compare the development against the live production database
but to use the version of the Database Project that was created either from the production
database or from the Release branch in source control.&amp;nbsp; Once you have these two
database scripts, run the CREATE script to drop the database and create the database
to the production level.&amp;nbsp; Then execute DELTA script to bring it to the current
development level.&amp;nbsp; From there you can follow the similar steps to execute the
data generation plan and automated tests to complete.&amp;nbsp; See below to see how this
fits together &lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_5.png" width="404" height="212"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;&lt;font size="1"&gt;Figure 10 – Brownfield Process&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;Putting this all together, here are the steps in order for a good SQL
Server database Continuous Delivery process.&amp;nbsp; There is some customization that
has to be done for this.&amp;nbsp; The database testing options that were available for
the simple process, won’t work out of the box for this solution.&amp;nbsp; This is because
the Database Project doesn’t know about the production and delta scripts.&amp;nbsp; The
build by default would create the database and run the data generation plan before
unit tests including the database unit tests.&amp;nbsp; However, the unit tests are run
immediately after the application is built and we need to specify the a step to build
create the scripts and then execute them.&amp;nbsp; I customized the build definition
by moving the unit test execution activities to later in the process so I could execute
the SQL scripts before the Unit Tests are run.&amp;nbsp; Once this was moved, I could
use the built in features to run the data generation plan.&amp;nbsp; Below are the steps
for the full end to end Database Continuous Delivery process.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 align="left"&gt;&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_24.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_11.png" width="200" height="338"&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;p align="center"&gt;
&lt;font size="1"&gt;&lt;strong&gt;Figure 11 – End to End Database Continuous Delivery Process&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;To combine this process into the application continuous delivery process,
the same tasks above can executed along with the application steps.&amp;nbsp; This process
is grouped into three groups: Build/Stage, Deploy, and Execute Automated Tests.&amp;nbsp;
The process is outlined below.&lt;/font&gt;
&lt;/p&gt;
&lt;h3 align="left"&gt;&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_26.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Continuous-Integration-CI-with-SQL-Serve_CEF7/image_thumb_12.png" width="500" height="312"&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 12 – End to End Application and Database Continuous Delivery Process&lt;/strong&gt;
&lt;/p&gt;
&lt;h3 align="left"&gt;&amp;nbsp;
&lt;/h3&gt;
&lt;h3 align="left"&gt;&amp;nbsp;
&lt;/h3&gt;
&lt;h3 align="left"&gt;VSDBCMD
&lt;/h3&gt;
&lt;p&gt;
&lt;font size="2"&gt;One of the great features of Visual Studio Database Projects is that
the deployment and compare functionality can be executed via a command line utility
called VSDBCMD.exe.&amp;nbsp; This allows us to perform the necessary steps in our Continuous
Delivery process.&amp;nbsp; I utilize a InvokeProcess Activity in the build definition
to call a PowerShell script to execute the VSDBCMD commands.&amp;nbsp; Below are examples
of how to create the Production CREATE script and the DELTA script.&amp;nbsp; The Production
Script creates the full CREATE script from the compiled Production version of the
Database Project.&amp;nbsp; The DELTA command shows how to compare two Database Projects
to generate the DELTA SQL Script.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="2"&gt;Create Production Script&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&amp;amp; &lt;span class="str"&gt;"C:\program files (x86)\Microsoft
Visual Studio 10.0\VSTSDB\Deploy\vsdbcmd.exe"&lt;/span&gt; &lt;/pre&gt;&lt;pre class="csharpcode"&gt;/a:deploy /dsp:sql /model:Ecommerce.dbschema /DeploymentScriptFile:c:\temp\OutputFilename2.sql &lt;/pre&gt;&lt;pre class="csharpcode"&gt;/p:TargetDatabase=&lt;span class="str"&gt;"NewEcommerce"&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="2"&gt;Create Production and Development Delta Script&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&amp;amp; &lt;span class="str"&gt;"C:\program files (x86)\Microsoft
Visual Studio 10.0\VSTSDB\Deploy\vsdbcmd.exe"&lt;/span&gt; &lt;/pre&gt;&lt;pre class="csharpcode"&gt;/a:deploy /dsp:sql /model:Ecommerce.dbschema /DeploymentScriptFile:c:\temp\OutputFilename2.sql &lt;/pre&gt;&lt;pre class="csharpcode"&gt;/targetmodelfile:&lt;span class="str"&gt;"C:\tfs\deliveron\Production\EcommerceSolution\Ecommerce\obj\Debug\ecommerce.dbschema"&lt;/span&gt; &lt;/pre&gt;&lt;pre class="csharpcode"&gt;/p:TargetDatabase=&lt;span class="str"&gt;"NewEcommerce"&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt; &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;h3 align="left"&gt;&amp;nbsp;
&lt;/h3&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;h3 align="left"&gt;In Summary
&lt;/h3&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;This concludes the overview of the solution for Continuous Integration
and Delivery for SQL Server Databases.&amp;nbsp; I hope it gives you a complete overview
for creating your own Continuous Delivery process.&amp;nbsp; Feel free to contact me if
you have any questions or comments.&lt;/font&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;font size="2"&gt;&lt;strong&gt;Review of Key Concepts&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;There are three types of Continuous processes: Integration,
Delivery, and Deployment.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Continuous Delivery should be set up to be a practice
run for Production.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;Create compare scripts between development and production
database projects and don’t compare against live databases.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font size="2"&gt;VSDBCMD is a command line utility that perform the
deployment and compare functionality in Visual Studio Database Projects.&lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This was also cross posted at &lt;a title="http://www.deliveron.com/blog/post/Implementing-Continuous-Integration-(CI)-and-Delivery-for-SQL-Server-Databases.aspx" href="http://www.deliveron.com/blog/post/Implementing-Continuous-Integration-(CI)-and-Delivery-for-SQL-Server-Databases.aspx"&gt;http://www.deliveron.com/blog/post/Implementing-Continuous-Integration-(CI)-and-Delivery-for-SQL-Server-Databases.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=3448c757-600c-476a-9b69-2bf87b8d74aa" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,3448c757-600c-476a-9b69-2bf87b8d74aa.aspx</comments>
      <category>Agile</category>
      <category>ALM</category>
      <category>Continuous Integration</category>
      <category>SQL Server 2008</category>
      <category>Team Build 2010</category>
      <category>Team Foundation Server</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=45f2d145-fcee-46ef-820d-b637bf1d223a</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,45f2d145-fcee-46ef-820d-b637bf1d223a.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,45f2d145-fcee-46ef-820d-b637bf1d223a.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=45f2d145-fcee-46ef-820d-b637bf1d223a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you have ever tried scripting database schema and data from SQL Server, you have
probably been frustrated like me that there is not a simple process for doing this. 
SQL Server Management Studio includes two options highlighted below.  The <strong>Generate
Scripts…</strong> option works as expected and allows you to easily create a script
to recreate the database.  However, if you want to export the data to import
it at a later point, using the<strong> Export Data…</strong> option doesn’t quite
do what is needed to script the data.  It allows you to script to a CSV or Excel
file, however I have found importing an exported file, isn’t always easy.   
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb.png" width="354" height="387" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 1 - SQL Server Management Studio</strong>
        </p>
        <p>
Surprisingly there is a better option not in SQL Server Management Studio but in Visual
Studio 2010 (I believe this option is available in Visual Studio 2008, but I wasn’t
able to confirm this for the post.).  Visual Studio 2010 includes an view window
called Server Explorer.  This is typically used for data binding and tools like
LINQ and Entity Framework.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_1.png" width="384" height="157" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 2 – Visual Studio 2010 Server Explorer</strong>
        </p>
        <p>
The context menu for the particular data connection includes an option called <strong>Publish
to provider…</strong>  
</p>
        <p align="center">
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_2.png" width="354" height="339" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 3 – Publish to provider</strong>
        </p>
        <p>
This option launches the Database Publishing Wizard.  When this wizard displays
it gives you the option to export both schema and/or data to a SQL file.  Especially
for data, this is perfect for migrating data from one environment to the next including
preserving identity keys.
</p>
        <p>
The wizard opens with the option to choose a database and automatically script all
objects in the selected database.  I chose the AdventureWorks database and clicked
Next.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_3.png" width="354" height="318" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 4 – Select Database in the Database Publishing Wizard</strong>
        </p>
        <p>
The next step in the wizard is to choose what objects types to publish.  Here
I select Tables.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_4.png" width="354" height="318" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 5 – Choose Object Types in the Database Publishing Wizard</strong>
        </p>
        <p>
With the the Tables option selected in the previous step, the Choose Tables step appears. 
Here I selected a single table for this demo.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_5.png" width="354" height="318" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 6 – Choose Tables in the Database Publishing Wizard</strong>
        </p>
        <p>
Finally choose the output location.  This can either output to a file or to a
hosting provider.  Here I chose the <strong>Script to file</strong> option to
save the output to a file.  To use the <strong>Publish to shared hosting provider </strong>your
hosting provider or target system must support a SQL Publishing Web Service and the
database already exist on the target.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_6.png" width="354" height="318" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 7 – Select an Output Location in the Database Publishing Wizard</strong>
        </p>
        <p>
This screen includes the publishing options.  The options are straight forward. 
The<strong> Drop existing objects in script</strong> option will toggle a dropping
existing objects in the target database before the new objects are scripted. 
The<strong> Schema qualify</strong> option qualifies object names with the schema. 
The <strong>Script for target database</strong> drives the compatibility of the script. 
Finally the <strong>Types of data to publish</strong> allows for schema or data only
or both.  Here I want to script both so I chose <strong>Schema and data</strong>.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_17.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_7.png" width="354" height="318" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 8 – Select Publishing Options in the Database Publishing Wizard</strong>
        </p>
        <p>
The final screen is a confirmation of the options selected.  Click Finish to
run the wizard and create the script.  When the wizard completes, it will display
success.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_19.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_8.png" width="354" height="318" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 9 – Successful Database Publishing Wizard</strong>
        </p>
        <p>
Below is the output of the Database Publishing Wizard for the schema and data.
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML11af3a6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="SNAGHTML11af3a6" border="0" alt="SNAGHTML11af3a6" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML11af3a6_thumb.png" width="500" height="236" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 10 – Schema output of the Database Publishing Wizard</strong>
        </p>
        <p>
 
</p>
        <p>
          <a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML120ba20.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="SNAGHTML120ba20" border="0" alt="SNAGHTML120ba20" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML120ba20_thumb.png" width="500" height="235" />
          </a>
        </p>
        <p align="center">
          <strong>Figure 11 – Data output of the Database Publishing Wizard</strong>
        </p>
        <p>
For more information on the Database Publishing Wizard, read <a href="http://msdn.microsoft.com/en-us/library/bb907585.aspx" target="_blank">Deploying
a Database by using the Database Publishing Wizard</a> on MSDN.
</p>
        <p>
This was also cross posted at <a title="http://www.deliveron.com/blog/post/Script-Database-Schema-and-data-using-Visual-Studio-2010-and-Database-Publishing-Wizard.aspx" href="http://www.deliveron.com/blog/post/Script-Database-Schema-and-data-using-Visual-Studio-2010-and-Database-Publishing-Wizard.aspx">http://www.deliveron.com/blog/post/Script-Database-Schema-and-data-using-Visual-Studio-2010-and-Database-Publishing-Wizard.aspx</a></p>
        <p>
Enjoy!
</p>
        <p>
Mike Douglas
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=45f2d145-fcee-46ef-820d-b637bf1d223a" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Script Database Schema and Data using Visual Studio 2010 and the Database Publishing Wizard</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,45f2d145-fcee-46ef-820d-b637bf1d223a.aspx</guid>
      <link>http://www.codesmartnothard.com/2011/08/23/ScriptDatabaseSchemaAndDataUsingVisualStudio2010AndTheDatabasePublishingWizard.aspx</link>
      <pubDate>Tue, 23 Aug 2011 07:10:00 GMT</pubDate>
      <description>&lt;p&gt;
If you have ever tried scripting database schema and data from SQL Server, you have
probably been frustrated like me that there is not a simple process for doing this.&amp;nbsp;
SQL Server Management Studio includes two options highlighted below.&amp;nbsp; The &lt;strong&gt;Generate
Scripts…&lt;/strong&gt; option works as expected and allows you to easily create a script
to recreate the database.&amp;nbsp; However, if you want to export the data to import
it at a later point, using the&lt;strong&gt; Export Data…&lt;/strong&gt; option doesn’t quite
do what is needed to script the data.&amp;nbsp; It allows you to script to a CSV or Excel
file, however I have found importing an exported file, isn’t always easy.&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb.png" width="354" height="387"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 1 - SQL Server Management Studio&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Surprisingly there is a better option not in SQL Server Management Studio but in Visual
Studio 2010 (I believe this option is available in Visual Studio 2008, but I wasn’t
able to confirm this for the post.).&amp;nbsp; Visual Studio 2010 includes an view window
called Server Explorer.&amp;nbsp; This is typically used for data binding and tools like
LINQ and Entity Framework.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_1.png" width="384" height="157"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 2 – Visual Studio 2010 Server Explorer&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The context menu for the particular data connection includes an option called &lt;strong&gt;Publish
to provider…&lt;/strong&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_2.png" width="354" height="339"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 3 – Publish to provider&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This option launches the Database Publishing Wizard.&amp;nbsp; When this wizard displays
it gives you the option to export both schema and/or data to a SQL file.&amp;nbsp; Especially
for data, this is perfect for migrating data from one environment to the next including
preserving identity keys.
&lt;/p&gt;
&lt;p&gt;
The wizard opens with the option to choose a database and automatically script all
objects in the selected database.&amp;nbsp; I chose the AdventureWorks database and clicked
Next.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_3.png" width="354" height="318"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 4 – Select Database in the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The next step in the wizard is to choose what objects types to publish.&amp;nbsp; Here
I select Tables.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_4.png" width="354" height="318"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 5 – Choose Object Types in the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
With the the Tables option selected in the previous step, the Choose Tables step appears.&amp;nbsp;
Here I selected a single table for this demo.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_5.png" width="354" height="318"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 6 – Choose Tables in the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Finally choose the output location.&amp;nbsp; This can either output to a file or to a
hosting provider.&amp;nbsp; Here I chose the &lt;strong&gt;Script to file&lt;/strong&gt; option to
save the output to a file.&amp;nbsp; To use the &lt;strong&gt;Publish to shared hosting provider &lt;/strong&gt;your
hosting provider or target system must support a SQL Publishing Web Service and the
database already exist on the target.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_6.png" width="354" height="318"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 7 – Select an Output Location in the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This screen includes the publishing options.&amp;nbsp; The options are straight forward.&amp;nbsp;
The&lt;strong&gt; Drop existing objects in script&lt;/strong&gt; option will toggle a dropping
existing objects in the target database before the new objects are scripted.&amp;nbsp;
The&lt;strong&gt; Schema qualify&lt;/strong&gt; option qualifies object names with the schema.&amp;nbsp;
The &lt;strong&gt;Script for target database&lt;/strong&gt; drives the compatibility of the script.&amp;nbsp;
Finally the &lt;strong&gt;Types of data to publish&lt;/strong&gt; allows for schema or data only
or both.&amp;nbsp; Here I want to script both so I chose &lt;strong&gt;Schema and data&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_17.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_7.png" width="354" height="318"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 8 – Select Publishing Options in the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The final screen is a confirmation of the options selected.&amp;nbsp; Click Finish to
run the wizard and create the script.&amp;nbsp; When the wizard completes, it will display
success.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_19.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/image_thumb_8.png" width="354" height="318"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 9 – Successful Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Below is the output of the Database Publishing Wizard for the schema and data.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML11af3a6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="SNAGHTML11af3a6" border="0" alt="SNAGHTML11af3a6" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML11af3a6_thumb.png" width="500" height="236"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 10 – Schema output of the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML120ba20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="SNAGHTML120ba20" border="0" alt="SNAGHTML120ba20" src="http://www.codesmartnothard.com/content/binary/Windows-Live-Writer/Script_1378C/SNAGHTML120ba20_thumb.png" width="500" height="235"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;strong&gt;Figure 11 – Data output of the Database Publishing Wizard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
For more information on the Database Publishing Wizard, read &lt;a href="http://msdn.microsoft.com/en-us/library/bb907585.aspx" target="_blank"&gt;Deploying
a Database by using the Database Publishing Wizard&lt;/a&gt; on MSDN.
&lt;/p&gt;
&lt;p&gt;
This was also cross posted at &lt;a title="http://www.deliveron.com/blog/post/Script-Database-Schema-and-data-using-Visual-Studio-2010-and-Database-Publishing-Wizard.aspx" href="http://www.deliveron.com/blog/post/Script-Database-Schema-and-data-using-Visual-Studio-2010-and-Database-Publishing-Wizard.aspx"&gt;http://www.deliveron.com/blog/post/Script-Database-Schema-and-data-using-Visual-Studio-2010-and-Database-Publishing-Wizard.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;p&gt;
Mike Douglas
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=45f2d145-fcee-46ef-820d-b637bf1d223a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,45f2d145-fcee-46ef-820d-b637bf1d223a.aspx</comments>
      <category>ALM</category>
      <category>SQL Server 2008</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=835b4a5d-31ea-49c6-80b6-938c9bbe5e55</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,835b4a5d-31ea-49c6-80b6-938c9bbe5e55.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,835b4a5d-31ea-49c6-80b6-938c9bbe5e55.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=835b4a5d-31ea-49c6-80b6-938c9bbe5e55</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="2">The Visual Studio ALM Rangers just released two projects, the </font>
          <a href="http://rabcg.codeplex.com" target="_blank">
            <font size="2">Build
Customization Guide</font>
          </a>
          <font size="2"> and the </font>
          <a href="http://ralabman.codeplex.com/" target="_blank">
            <font size="2">Lab
Management Guide</font>
          </a>
          <font size="2">.  Both projects provide real world,
in-depth guidance and hands-on-labs (HOL) for planning and creating solutions for
utilizing the Team Build 2010 and Visual Studio 2010 Lab Management.  Every development
team should utilize the features covered in these guides for creating a build strategy
that includes Continuous Integration (CI), packaging and versioning of applications,
and automated deployments to at least the development and test environments. By utilizing
Visual Studio Lab Management, these environments can be quickly provisioned and managed
by those development teams.  They will be able to do things restore to a baseline
before building, deploying, and running tests in those environments, clone the environment
to provide multiple test environments for QA, and attaching a snapshot of the virtual
environment along with other rich information to bugs for the developers. </font>
        </p>
        <p>
          <font size="2">Visit the websites for all of the details and downloads for the guidance.</font>
        </p>
        <h3>Build Customization Guide
</h3>
        <p>
          <font size="2">I am especially excited about the Build Customization Guide being released
because this was first Visual Studio Ranger project I have had worked on.  I
had the opportunity to work with many talented and dedicated individuals.</font>
        </p>
        <p>
          <font size="2">The Epics included in this guidance are:</font>
        </p>
        <ul>
          <li>
            <font size="2">Practical guidance and tooling to simplify the customization of Team
Foundation Build</font>
          </li>
          <li>
            <font size="2">Practical guidance to use Team Foundation Build process templates to
automate build and non-build scenarios in Microsoft environments</font>
          </li>
          <li>
            <font size="2">Practical guidance to enable simple and flexible deployment of applications
and their data stores </font>
          </li>
          <li>
            <font size="2">Practical guidance for Activities to empower developers and build engineers </font>
          </li>
          <li>
            <font size="2">Quality hands-on labs that complement the guidance and effectively
guide the user through the features </font>
          </li>
          <li>
            <font size="2">Visualization of the guidance using quick reference posters </font>
          </li>
        </ul>
        <p>
          <a title="http://rabcg.codeplex.com/" href="http://rabcg.codeplex.com/">
            <font size="2">http://rabcg.codeplex.com/</font>
          </a>
        </p>
        <h3>Lab Management Guide
</h3>
        <p>
          <font size="2">I didn’t contribute to the Lab Management Guide, but I have read through
the guidance.  It includes a lot of great information that include planning Lab
Management, setting up the Virtual Lab environment, and creating Virtual Machines
using the VM Factory. </font>
        </p>
        <p>
          <font size="2">The Epics included in this guidance are:</font>
        </p>
        <ul>
          <li>
            <font size="2">Visualization of the guidance using quick reference posters </font>
          </li>
          <li>
            <font size="2">Advanced golden image management using the VM Factory for Lab Management </font>
          </li>
          <li>
            <font size="2">Provide guidance on setting up Test environments with respect to pre-defined
personas </font>
          </li>
          <li>
            <font size="2">Provide Guidance to enable large and small teams to setup and configure
both automated and manual tests </font>
          </li>
          <li>
            <font size="2">Provide practical guidance for managing and maintaining a Lab Management
environment </font>
          </li>
          <li>
            <font size="2">Provide practical guidance to enable teams to quickly setup and configure
their lab management environment </font>
          </li>
        </ul>
        <p>
          <a title="http://ralabman.codeplex.com/" href="http://ralabman.codeplex.com/">
            <font size="2">http://ralabman.codeplex.com/</font>
          </a>
        </p>
        <h3>Visual Studio ALM Rangers
</h3>
        <p>
          <font size="2">So who are the the Visual Studio ALM Rangers?  They are a group
of internal Microsoft employees and external communities leaders/MVPs who’s mission
is to accelerate the adoption of Visual Studio with out-of-band solutions for missing
features and guidance.  Willy-P. Schaub has posted some great information about
who we are, the past accomplishments, and future plan in the </font>
          <a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/06/09/visual-studio-alm-rangers-5-year-report-sharing-the-essentials.aspx" target="_blank">
            <font size="2">Visual
Studio ALM Rangers 5 year Report</font>
          </a>
          <font size="2">.</font>
        </p>
        <p>
          <font size="2">Please contact us at </font>
          <a href="mailto:tfs@deliveron.com">
            <font size="2">tfs@deliveron.com</font>
          </a>
          <font size="2"> for
information on these guides or implementing these solutions in your environment.</font>
        </p>
        <p>
          <font size="2">Mike</font>
        </p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=835b4a5d-31ea-49c6-80b6-938c9bbe5e55" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Visual Studio ALM Rangers release the Build Customization and Lab Management Guides</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,835b4a5d-31ea-49c6-80b6-938c9bbe5e55.aspx</guid>
      <link>http://www.codesmartnothard.com/2011/06/18/VisualStudioALMRangersReleaseTheBuildCustomizationAndLabManagementGuides.aspx</link>
      <pubDate>Sat, 18 Jun 2011 17:52:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font size="2"&gt;The Visual Studio ALM Rangers just released two projects, the &lt;/font&gt;&lt;a href="http://rabcg.codeplex.com" target="_blank"&gt;&lt;font size="2"&gt;Build
Customization Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; and the &lt;/font&gt;&lt;a href="http://ralabman.codeplex.com/" target="_blank"&gt;&lt;font size="2"&gt;Lab
Management Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;.&amp;#160; Both projects provide real world,
in-depth guidance and hands-on-labs (HOL) for planning and creating solutions for
utilizing the Team Build 2010 and Visual Studio 2010 Lab Management.&amp;#160; Every development
team should utilize the features covered in these guides for creating a build strategy
that includes Continuous Integration (CI), packaging and versioning of applications,
and automated deployments to at least the development and test environments. By utilizing
Visual Studio Lab Management, these environments can be quickly provisioned and managed
by those development teams.&amp;#160; They will be able to do things restore to a baseline
before building, deploying, and running tests in those environments, clone the environment
to provide multiple test environments for QA, and attaching a snapshot of the virtual
environment along with other rich information to bugs for the developers. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;Visit the websites for all of the details and downloads for the guidance.&lt;/font&gt;
&lt;/p&gt;
&lt;h3&gt;Build Customization Guide
&lt;/h3&gt;
&lt;p&gt;
&lt;font size="2"&gt;I am especially excited about the Build Customization Guide being released
because this was first Visual Studio Ranger project I have had worked on.&amp;#160; I
had the opportunity to work with many talented and dedicated individuals.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;The Epics included in this guidance are:&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font size="2"&gt;Practical guidance and tooling to simplify the customization of Team
Foundation Build&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Practical guidance to use Team Foundation Build process templates to
automate build and non-build scenarios in Microsoft environments&lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Practical guidance to enable simple and flexible deployment of applications
and their data stores &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Practical guidance for Activities to empower developers and build engineers &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Quality hands-on labs that complement the guidance and effectively
guide the user through the features &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Visualization of the guidance using quick reference posters &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a title="http://rabcg.codeplex.com/" href="http://rabcg.codeplex.com/"&gt;&lt;font size="2"&gt;http://rabcg.codeplex.com/&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Lab Management Guide
&lt;/h3&gt;
&lt;p&gt;
&lt;font size="2"&gt;I didn’t contribute to the Lab Management Guide, but I have read through
the guidance.&amp;#160; It includes a lot of great information that include planning Lab
Management, setting up the Virtual Lab environment, and creating Virtual Machines
using the VM Factory. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;The Epics included in this guidance are:&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font size="2"&gt;Visualization of the guidance using quick reference posters &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Advanced golden image management using the VM Factory for Lab Management &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Provide guidance on setting up Test environments with respect to pre-defined
personas &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Provide Guidance to enable large and small teams to setup and configure
both automated and manual tests &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Provide practical guidance for managing and maintaining a Lab Management
environment &lt;/font&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font size="2"&gt;Provide practical guidance to enable teams to quickly setup and configure
their lab management environment &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a title="http://ralabman.codeplex.com/" href="http://ralabman.codeplex.com/"&gt;&lt;font size="2"&gt;http://ralabman.codeplex.com/&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Visual Studio ALM Rangers
&lt;/h3&gt;
&lt;p&gt;
&lt;font size="2"&gt;So who are the the Visual Studio ALM Rangers?&amp;#160; They are a group
of internal Microsoft employees and external communities leaders/MVPs who’s mission
is to accelerate the adoption of Visual Studio with out-of-band solutions for missing
features and guidance.&amp;#160; Willy-P. Schaub has posted some great information about
who we are, the past accomplishments, and future plan in the &lt;/font&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/06/09/visual-studio-alm-rangers-5-year-report-sharing-the-essentials.aspx" target="_blank"&gt;&lt;font size="2"&gt;Visual
Studio ALM Rangers 5 year Report&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;Please contact us at &lt;/font&gt;&lt;a href="mailto:tfs@deliveron.com"&gt;&lt;font size="2"&gt;tfs@deliveron.com&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; for
information on these guides or implementing these solutions in your environment.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;Mike&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=835b4a5d-31ea-49c6-80b6-938c9bbe5e55" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,835b4a5d-31ea-49c6-80b6-938c9bbe5e55.aspx</comments>
      <category>ALM</category>
      <category>Lab Management</category>
      <category>Team Build 2010</category>
      <category>Team Foundation Server</category>
      <category>TFS 2010</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=746a9a62-2127-4b04-b52b-af9cf58c14df</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,746a9a62-2127-4b04-b52b-af9cf58c14df.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,746a9a62-2127-4b04-b52b-af9cf58c14df.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=746a9a62-2127-4b04-b52b-af9cf58c14df</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The Nebraska Code Camp is a free, community-driven conference.  Attend the Nebraska
Code Camp on April 9th, 2011 in Lincoln, NE.  Includes 25 sessions from local
and regional speakers on topics including Windows Phone 7, BDD, ALM, WCF, MEF, JQuery,
and Cloud Computing.  I am fortunate enough to giving two talks on Visual Studio
2010 ALM including <a href="http://www.nebraskacodecamp.com/Sessions/Details/5" target="_blank">Getting
Agile with Visual Studio 2010</a> and <a href="http://www.nebraskacodecamp.com/Sessions/Details/6" target="_blank">Coded
UI Tests Deep Dive</a>.
</p>
        <p>
Take a look at all of the <a href="http://www.nebraskacodecamp.com/Sessions" target="_blank">Sessions</a> and <a href="http://www.nebraskacodecamp.com/Speakers" target="_blank">Speakers</a> at
this great event.
</p>
        <p>
          <a href="http://www.nebraskacodecamp.com/Register" target="_blank">Register</a> today. 
Did I mention it is FREE??!!!  I hope to see you all there.
</p>
        <p>
          <a href="http://twitter.com/NebraskaCC" target="_blank">Follow Nebraska Code Camp</a> on
Twitter
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=746a9a62-2127-4b04-b52b-af9cf58c14df" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Attend Nebraska Code Camp on April 9th, 2011</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,746a9a62-2127-4b04-b52b-af9cf58c14df.aspx</guid>
      <link>http://www.codesmartnothard.com/2011/03/29/AttendNebraskaCodeCampOnApril9th2011.aspx</link>
      <pubDate>Tue, 29 Mar 2011 06:22:00 GMT</pubDate>
      <description>&lt;p&gt;
The Nebraska Code Camp is a free, community-driven conference.&amp;#160; Attend the Nebraska
Code Camp on April 9th, 2011 in Lincoln, NE.&amp;#160; Includes 25 sessions from local
and regional speakers on topics including Windows Phone 7, BDD, ALM, WCF, MEF, JQuery,
and Cloud Computing.&amp;#160; I am fortunate enough to giving two talks on Visual Studio
2010 ALM including &lt;a href="http://www.nebraskacodecamp.com/Sessions/Details/5" target="_blank"&gt;Getting
Agile with Visual Studio 2010&lt;/a&gt; and &lt;a href="http://www.nebraskacodecamp.com/Sessions/Details/6" target="_blank"&gt;Coded
UI Tests Deep Dive&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Take a look at all of the &lt;a href="http://www.nebraskacodecamp.com/Sessions" target="_blank"&gt;Sessions&lt;/a&gt; and &lt;a href="http://www.nebraskacodecamp.com/Speakers" target="_blank"&gt;Speakers&lt;/a&gt; at
this great event.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.nebraskacodecamp.com/Register" target="_blank"&gt;Register&lt;/a&gt; today.&amp;#160;
Did I mention it is FREE??!!!&amp;#160; I hope to see you all there.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://twitter.com/NebraskaCC" target="_blank"&gt;Follow Nebraska Code Camp&lt;/a&gt; on
Twitter
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=746a9a62-2127-4b04-b52b-af9cf58c14df" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,746a9a62-2127-4b04-b52b-af9cf58c14df.aspx</comments>
      <category>ALM</category>
      <category>Nebraska Code Camp</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=510464a0-fdd7-4635-8fe8-786bf726a84c</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,510464a0-fdd7-4635-8fe8-786bf726a84c.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,510464a0-fdd7-4635-8fe8-786bf726a84c.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=510464a0-fdd7-4635-8fe8-786bf726a84c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Team Deploy 2010 is a custom add-on for Team Foundation Server 2010 (TFS) to deploy
MSIs to servers and PCs.  The deploy activity uses an XML file to manage the
servers and steps for deployment including starting/stopping services and installing/uninstalling
the MSIs.  This is very effective for automated deployments in environments where
automated deployments are allowed.  This however does not provide a practice
run into downstream environments where automated deployments are not allowed such
as Staging/Integration and Production.
</p>
        <p>
An alternative to this that does offer some deployment consistencies beyond the MSI
is to have Team Deploy 2010 (or Team Deploy for TFS 2008 also supports this) execute
a PowerShell script to perform the deployment steps.  The advantage of this is
that the PowerShell scripts can also be used to perform the manual deployments to
these other environments.  This won’t work in every scenario but should in a
lot.  In this post, I am going to explain how to do this.
</p>
        <p>
The first thing to do is to install Team Deploy 2010.  This is free and can be
downloaded at <a href="http://TeamDeploy.CodePlex.com">http://TeamDeploy.CodePlex.com</a>. 
The installation instructions are detailed on the site.  For this, I will assume
Team Deploy 2010 is already installed.
</p>
        <p>
Next open Visual Studio 2010 and create a new build definition workflow.  Create
3 arguments called RemoteExecuteFilename, TargetMachine, and RemoteCommand.
</p>
        <p>
Instead of using the Deploy activity, add the RemoteExecute activity in an AgentScope
container.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_2.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_thumb.png" width="504" height="342" />
          </a>
        </p>
        <p>
Set the properties on the RemoteExecute activity to the arguments passed in.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_4.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_thumb_1.png" width="454" height="332" />
          </a>
        </p>
        <p>
Next, set the properties that were exposed as arguments of the build definition. 
For the RemoteCommand, here is where you want to specify calling PowerShell.exe and
the script file that will be executed on the target machine.  One thing I have
learned after taking this snapshot is that if you have a space in the path for the
script than use this syntax:
</p>
        <p>
PowerShell.exe –File “\\buildserver\deploy scripts\Update.ps1”
</p>
        <p>
Next specify the path where the PSTools were installed and finally specify the machine
that you want to run the remote script.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_6.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_thumb_2.png" width="504" height="296" />
          </a>
        </p>
        <p>
The final step is to create the deployment script.  Thanks to the power of PowerShell,
these deployment scripts can perform any action.  I have created steps for starting/stoping
services, applying SQL Server schema changes, search and replace strings in configuration
files, etc. Essentially anything you can do in a batch file and in .NET code, can
be done in PowerShell.
</p>
        <p>
Here is a small sample script that I created.  I have creates some much more
complicated scripts and ran them on remote machines without any issues.
</p>
        <pre class="csharpcode">
          <span class="str">"Performing removal steps..."</span> $servicename
= <span class="str">"PLA"</span> $service = Get-Service $servicename <span class="kwrd">if</span>($service.Status <span class="preproc">-eq</span><span class="str">"Running"</span>)
{ <span class="str">"Stopping "</span> + $servicename Stop-Service $servicename
} <span class="str">"status="</span> + $service.Status Remove-Item <span class="str">"c:\miketest2"</span> msiexec
/qn /x <span class="str">"{26260DBA-1519-4967-9118-D827793EF3B3}"</span><span class="str">"Removal
complete. Starting the installation steps..."</span> msiexec /qb! /i <span class="str">"\\buildserver\deploy\simple.msi"</span> New-Item <span class="str">"c:\miketest2"</span> -type
directory <span class="str">"Applying SQL Server Schema changes..."</span> sqlcmd
-S W2K8R2BOOT -E -i \\buildserver\deploy\dropaddcooltable.sql <span class="kwrd">if</span>($service.Status <span class="preproc">-eq</span><span class="str">"Stopped"</span>)
{ <span class="str">"Starting "</span> + $servicename Start-Service $servicename
}</pre>
        <p>
This is it. Here are also a couple things to consider. Copy MSIs, SQL Scripts, and
the deployment script to a versioned folder.  The folder is the snapshot in time
including the deployment file.  Keep the deployment scripts in source control. 
Lastly there is a new feature in PowerShell 2.0 called PowerShell Remoting. 
I have tried it, but it looks like this could also work.  It is on my list to
research and I will be sure to report back when I find out more information.
</p>
        <p>
Enjoy!
</p>
        <p>
Mike 
</p>
        <p>
This was cross posted at <a title="http://www.deliveron.com/blog/post/Executing-PowerShell-Scripts-on-Remote-Machines-with-TFS-2010-and-Team-Deploy-2010.aspx" href="http://www.deliveron.com/blog/post/Executing-PowerShell-Scripts-on-Remote-Machines-with-TFS-2010-and-Team-Deploy-2010.aspx">http://www.deliveron.com/blog/post/Executing-PowerShell-Scripts-on-Remote-Machines-with-TFS-2010-and-Team-Deploy-2010.aspx</a> on
the Deliveron’s blog at <a href="http://www.deliveron.com/blog">http://www.deliveron.com/blog</a>.
</p>
        <p>
        </p>
        <style type="text/css">

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=510464a0-fdd7-4635-8fe8-786bf726a84c" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Executing PowerShell Scripts on Remote Machines with TFS 2010 and Team Deploy 2010</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,510464a0-fdd7-4635-8fe8-786bf726a84c.aspx</guid>
      <link>http://www.codesmartnothard.com/2010/12/08/ExecutingPowerShellScriptsOnRemoteMachinesWithTFS2010AndTeamDeploy2010.aspx</link>
      <pubDate>Wed, 08 Dec 2010 05:45:00 GMT</pubDate>
      <description>&lt;p&gt;
Team Deploy 2010 is a custom add-on for Team Foundation Server 2010 (TFS) to deploy
MSIs to servers and PCs.&amp;#160; The deploy activity uses an XML file to manage the
servers and steps for deployment including starting/stopping services and installing/uninstalling
the MSIs.&amp;#160; This is very effective for automated deployments in environments where
automated deployments are allowed.&amp;#160; This however does not provide a practice
run into downstream environments where automated deployments are not allowed such
as Staging/Integration and Production.
&lt;/p&gt;
&lt;p&gt;
An alternative to this that does offer some deployment consistencies beyond the MSI
is to have Team Deploy 2010 (or Team Deploy for TFS 2008 also supports this) execute
a PowerShell script to perform the deployment steps.&amp;#160; The advantage of this is
that the PowerShell scripts can also be used to perform the manual deployments to
these other environments.&amp;#160; This won’t work in every scenario but should in a
lot.&amp;#160; In this post, I am going to explain how to do this.
&lt;/p&gt;
&lt;p&gt;
The first thing to do is to install Team Deploy 2010.&amp;#160; This is free and can be
downloaded at &lt;a href="http://TeamDeploy.CodePlex.com"&gt;http://TeamDeploy.CodePlex.com&lt;/a&gt;.&amp;#160;
The installation instructions are detailed on the site.&amp;#160; For this, I will assume
Team Deploy 2010 is already installed.
&lt;/p&gt;
&lt;p&gt;
Next open Visual Studio 2010 and create a new build definition workflow.&amp;#160; Create
3 arguments called RemoteExecuteFilename, TargetMachine, and RemoteCommand.
&lt;/p&gt;
&lt;p&gt;
Instead of using the Deploy activity, add the RemoteExecute activity in an AgentScope
container.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_thumb.png" width="504" height="342" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Set the properties on the RemoteExecute activity to the arguments passed in.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_thumb_1.png" width="454" height="332" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Next, set the properties that were exposed as arguments of the build definition.&amp;#160;
For the RemoteCommand, here is where you want to specify calling PowerShell.exe and
the script file that will be executed on the target machine.&amp;#160; One thing I have
learned after taking this snapshot is that if you have a space in the path for the
script than use this syntax:
&lt;/p&gt;
&lt;p&gt;
PowerShell.exe –File “\\buildserver\deploy scripts\Update.ps1”
&lt;/p&gt;
&lt;p&gt;
Next specify the path where the PSTools were installed and finally specify the machine
that you want to run the remote script.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ExecutingPowerShellScriptsonRemoteMachin_9B19/image_thumb_2.png" width="504" height="296" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The final step is to create the deployment script.&amp;#160; Thanks to the power of PowerShell,
these deployment scripts can perform any action.&amp;#160; I have created steps for starting/stoping
services, applying SQL Server schema changes, search and replace strings in configuration
files, etc. Essentially anything you can do in a batch file and in .NET code, can
be done in PowerShell.
&lt;/p&gt;
&lt;p&gt;
Here is a small sample script that I created.&amp;#160; I have creates some much more
complicated scripts and ran them on remote machines without any issues.
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;&amp;quot;Performing removal steps...&amp;quot;&lt;/span&gt; $servicename
= &lt;span class="str"&gt;&amp;quot;PLA&amp;quot;&lt;/span&gt; $service = Get-Service $servicename &lt;span class="kwrd"&gt;if&lt;/span&gt;($service.Status &lt;span class="preproc"&gt;-eq&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Running&amp;quot;&lt;/span&gt;)
{ &lt;span class="str"&gt;&amp;quot;Stopping &amp;quot;&lt;/span&gt; + $servicename Stop-Service $servicename
} &lt;span class="str"&gt;&amp;quot;status=&amp;quot;&lt;/span&gt; + $service.Status Remove-Item &lt;span class="str"&gt;&amp;quot;c:\miketest2&amp;quot;&lt;/span&gt; msiexec
/qn /x &lt;span class="str"&gt;&amp;quot;{26260DBA-1519-4967-9118-D827793EF3B3}&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Removal
complete. Starting the installation steps...&amp;quot;&lt;/span&gt; msiexec /qb! /i &lt;span class="str"&gt;&amp;quot;\\buildserver\deploy\simple.msi&amp;quot;&lt;/span&gt; New-Item &lt;span class="str"&gt;&amp;quot;c:\miketest2&amp;quot;&lt;/span&gt; -type
directory &lt;span class="str"&gt;&amp;quot;Applying SQL Server Schema changes...&amp;quot;&lt;/span&gt; sqlcmd
-S W2K8R2BOOT -E -i \\buildserver\deploy\dropaddcooltable.sql &lt;span class="kwrd"&gt;if&lt;/span&gt;($service.Status &lt;span class="preproc"&gt;-eq&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Stopped&amp;quot;&lt;/span&gt;)
{ &lt;span class="str"&gt;&amp;quot;Starting &amp;quot;&lt;/span&gt; + $servicename Start-Service $servicename
}&lt;/pre&gt;
&lt;p&gt;
This is it. Here are also a couple things to consider. Copy MSIs, SQL Scripts, and
the deployment script to a versioned folder.&amp;#160; The folder is the snapshot in time
including the deployment file.&amp;#160; Keep the deployment scripts in source control.&amp;#160;
Lastly there is a new feature in PowerShell 2.0 called PowerShell Remoting.&amp;#160;
I have tried it, but it looks like this could also work.&amp;#160; It is on my list to
research and I will be sure to report back when I find out more information.
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;p&gt;
Mike 
&lt;/p&gt;
&lt;p&gt;
This was cross posted at &lt;a title="http://www.deliveron.com/blog/post/Executing-PowerShell-Scripts-on-Remote-Machines-with-TFS-2010-and-Team-Deploy-2010.aspx" href="http://www.deliveron.com/blog/post/Executing-PowerShell-Scripts-on-Remote-Machines-with-TFS-2010-and-Team-Deploy-2010.aspx"&gt;http://www.deliveron.com/blog/post/Executing-PowerShell-Scripts-on-Remote-Machines-with-TFS-2010-and-Team-Deploy-2010.aspx&lt;/a&gt; on
the Deliveron’s blog at &lt;a href="http://www.deliveron.com/blog"&gt;http://www.deliveron.com/blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=510464a0-fdd7-4635-8fe8-786bf726a84c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,510464a0-fdd7-4635-8fe8-786bf726a84c.aspx</comments>
      <category>ALM</category>
      <category>PowerShell</category>
      <category>Team Build 2010</category>
      <category>Team Deploy</category>
      <category>TFS 2010</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=f28e6205-1ac5-41f3-be0d-f84d7db5c79b</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,f28e6205-1ac5-41f3-be0d-f84d7db5c79b.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,f28e6205-1ac5-41f3-be0d-f84d7db5c79b.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f28e6205-1ac5-41f3-be0d-f84d7db5c79b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Coded UI Tests do a great job of capturing the action recordings of the steps performed
in a test case. The action recordings are used to create the automated code to test
the actions. Unfortunately sometimes these steps are too literal and become excessive
especially when running the tests using multiple rows of parameters (that are essentially
data driven tests) 
</p>
        <p>
In my example, I created a test case that lists some steps that include opening the
application, adding a new customer record, and closing the application. The application
allows for creating multiple customer records without closing and reopening the application.
Closing and reopening the application for each row in the automated test is unnecessary.
Shared steps at the beginning or ending of the tests including logging in/out could
be good candidates to make more efficient.
</p>
        <p>
Below is the example of the test that was generated from the action recordings of
the test case. 
</p>
        <pre class="csharpcode">        [DataSource(<span class="str">"Microsoft.VisualStudio.TestTools.DataSource.TestCase"</span>, <span class="str">"http://localhost:8080/tfs/defaultcollection;Tailspin
Toys"</span>, <span class="str">"53"</span>, 
<br />
DataAccessMethod.Sequential), TestMethod] <span class="kwrd">public</span><span class="kwrd">void</span> AddCustomer_ShouldSaveAndClose()
{ <span class="rem">// To generate code for this test, select "Generate Code for Coded
UI Test" 
<br />
// from the shortcut menu and select one of the menu items.</span><span class="rem">//
For more information on generated code, 
<br />
// </span><span class="rem">see http://go.microsoft.com/fwlink/?LinkId=179463</span><span class="kwrd">this</span>.UIMap.OpenCustomerKeeper(); <span class="kwrd">this</span>.UIMap.OpenNewRecord(); <span class="kwrd">this</span>.UIMap.FillParams.UIText1EditText
= TestContext.DataRow[<span class="str">"Name"</span>].ToString(); <span class="kwrd">this</span>.UIMap.FillParams.UIText2EditText
= TestContext.DataRow[<span class="str">"City"</span>].ToString(); <span class="kwrd">this</span>.UIMap.FillParams.UIText3EditText
= TestContext.DataRow[<span class="str">"Phone"</span>].ToString(); <span class="kwrd">this</span>.UIMap.FilloutNameCityandPhone(); <span class="kwrd">this</span>.UIMap.SaveandClose(); <span class="kwrd">this</span>.UIMap.VerifyCustomerSaved(); <span class="kwrd">this</span>.UIMap.CloseApplication();
}</pre>
        <style type="text/css">




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <p>
As you can see it generated the OpenCustomerKeeper() and CloseApplication() methods.
For each parameters row for the test case it will open and close the application.
These are the two methods I only want to execute at the start of the test run and
the end of the test run. Also if I had other tests that could be run without restarting
the application this change would benefit those tests also.
</p>
        <p>
Our options are to move these steps to the TestInitialize/TestCleanup or ClassInitialize/ClassCleanup.
The TestInitialize/TestCleanup however is called before each test that also includes
before each row of the data driven test. Therefore, this would be the same result
and open/close the application before each row. This leaves the ClassInitialize/ClassCleanup.
Unfortunately it is not quite as easy as moving the method. First these two methods
need to be static so this.UIMap won’t exist. Secondly, the Playback engine is not
initialized in these methods. We will need to explicitly perform the Initialize and
Cleanup of the Playback engine. Lastly the ClassInitialize attribute has to be applied
to a method with passes in the TestContext as a parameter.
</p>
        <p>
Here is the ClassInitialize method
</p>
        <pre class="csharpcode">
          <span class="kwrd">static</span>
          <span class="kwrd">private</span> UIMap
sharedTest = <span class="kwrd">new</span> UIMap(); [ClassInitialize] <span class="kwrd">static</span><span class="kwrd">public</span><span class="kwrd">void</span> ClassInit(TestContext
context) { Playback.Initialize(); <span class="kwrd">try</span> { sharedTest.OpenCustomerKeeper();
} <span class="kwrd">finally</span> { Playback.Cleanup(); } }</pre>
        <p>
        </p>
        <p>
Lastly, we will move the CloseApplication() method to the ClassCleanup method.
</p>
        <blockquote>
          <pre class="csharpcode">[ClassCleanup] 
<span class="kwrd">static</span><span class="kwrd">public</span><span class="kwrd">void</span> ClassCleanup()
{ Playback.Initialize(); <span class="kwrd">try</span> { sharedTest.CloseApplication();
} <span class="kwrd">finally</span> { Playback.Cleanup(); } }</pre>
        </blockquote>
        <p>
        </p>
        <p>
I hope you find this useful.
</p>
        <p>
Mike
</p>
        <p>
Contact us at <a href="mailto:tfs@deliveron.com">tfs@deliveron.com</a> to work with
your development teams for all of your Visual Studio ALM needs.
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=f28e6205-1ac5-41f3-be0d-f84d7db5c79b" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>More Efficient Coded UI Tests with ClassInitialize</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,f28e6205-1ac5-41f3-be0d-f84d7db5c79b.aspx</guid>
      <link>http://www.codesmartnothard.com/2010/11/26/MoreEfficientCodedUITestsWithClassInitialize.aspx</link>
      <pubDate>Fri, 26 Nov 2010 11:01:00 GMT</pubDate>
      <description>&lt;p&gt;
Coded UI Tests do a great job of capturing the action recordings of the steps performed
in a test case. The action recordings are used to create the automated code to test
the actions. Unfortunately sometimes these steps are too literal and become excessive
especially when running the tests using multiple rows of parameters (that are essentially
data driven tests) 
&lt;/p&gt;
&lt;p&gt;
In my example, I created a test case that lists some steps that include opening the
application, adding a new customer record, and closing the application. The application
allows for creating multiple customer records without closing and reopening the application.
Closing and reopening the application for each row in the automated test is unnecessary.
Shared steps at the beginning or ending of the tests including logging in/out could
be good candidates to make more efficient.
&lt;/p&gt;
&lt;p&gt;
Below is the example of the test that was generated from the action recordings of
the test case. 
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;        [DataSource(&lt;span class="str"&gt;"Microsoft.VisualStudio.TestTools.DataSource.TestCase"&lt;/span&gt;, &lt;span class="str"&gt;"http://localhost:8080/tfs/defaultcollection;Tailspin
Toys"&lt;/span&gt;, &lt;span class="str"&gt;"53"&lt;/span&gt;, 
&lt;br /&gt;
DataAccessMethod.Sequential), TestMethod] &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddCustomer_ShouldSaveAndClose()
{ &lt;span class="rem"&gt;// To generate code for this test, select "Generate Code for Coded
UI Test" 
&lt;br /&gt;
// from the shortcut menu and select one of the menu items.&lt;/span&gt; &lt;span class="rem"&gt;//
For more information on generated code, 
&lt;br /&gt;
// &lt;/span&gt;&lt;span class="rem"&gt;see http://go.microsoft.com/fwlink/?LinkId=179463&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.OpenCustomerKeeper(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.OpenNewRecord(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.FillParams.UIText1EditText
= TestContext.DataRow[&lt;span class="str"&gt;"Name"&lt;/span&gt;].ToString(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.FillParams.UIText2EditText
= TestContext.DataRow[&lt;span class="str"&gt;"City"&lt;/span&gt;].ToString(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.FillParams.UIText3EditText
= TestContext.DataRow[&lt;span class="str"&gt;"Phone"&lt;/span&gt;].ToString(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.FilloutNameCityandPhone(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.SaveandClose(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.VerifyCustomerSaved(); &lt;span class="kwrd"&gt;this&lt;/span&gt;.UIMap.CloseApplication();
}&lt;/pre&gt;
&lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;p&gt;
As you can see it generated the OpenCustomerKeeper() and CloseApplication() methods.
For each parameters row for the test case it will open and close the application.
These are the two methods I only want to execute at the start of the test run and
the end of the test run. Also if I had other tests that could be run without restarting
the application this change would benefit those tests also.
&lt;/p&gt;
&lt;p&gt;
Our options are to move these steps to the TestInitialize/TestCleanup or ClassInitialize/ClassCleanup.
The TestInitialize/TestCleanup however is called before each test that also includes
before each row of the data driven test. Therefore, this would be the same result
and open/close the application before each row. This leaves the ClassInitialize/ClassCleanup.
Unfortunately it is not quite as easy as moving the method. First these two methods
need to be static so this.UIMap won’t exist. Secondly, the Playback engine is not
initialized in these methods. We will need to explicitly perform the Initialize and
Cleanup of the Playback engine. Lastly the ClassInitialize attribute has to be applied
to a method with passes in the TestContext as a parameter.
&lt;/p&gt;
&lt;p&gt;
Here is the ClassInitialize method
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; UIMap
sharedTest = &lt;span class="kwrd"&gt;new&lt;/span&gt; UIMap(); [ClassInitialize] &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ClassInit(TestContext
context) { Playback.Initialize(); &lt;span class="kwrd"&gt;try&lt;/span&gt; { sharedTest.OpenCustomerKeeper();
} &lt;span class="kwrd"&gt;finally&lt;/span&gt; { Playback.Cleanup(); } }&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Lastly, we will move the CloseApplication() method to the ClassCleanup method.
&lt;/p&gt;
&lt;blockquote&gt; &lt;pre class="csharpcode"&gt;[ClassCleanup] 
&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ClassCleanup()
{ Playback.Initialize(); &lt;span class="kwrd"&gt;try&lt;/span&gt; { sharedTest.CloseApplication();
} &lt;span class="kwrd"&gt;finally&lt;/span&gt; { Playback.Cleanup(); } }&lt;/pre&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I hope you find this useful.
&lt;/p&gt;
&lt;p&gt;
Mike
&lt;/p&gt;
&lt;p&gt;
Contact us at &lt;a href="mailto:tfs@deliveron.com"&gt;tfs@deliveron.com&lt;/a&gt; to work with
your development teams for all of your Visual Studio ALM needs.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=f28e6205-1ac5-41f3-be0d-f84d7db5c79b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,f28e6205-1ac5-41f3-be0d-f84d7db5c79b.aspx</comments>
      <category>ALM</category>
      <category>Coded UI Tests</category>
      <category>TFS 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=8eb9d235-0f57-48c9-9ec0-7a5c144c8942</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,8eb9d235-0f57-48c9-9ec0-7a5c144c8942.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,8eb9d235-0f57-48c9-9ec0-7a5c144c8942.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8eb9d235-0f57-48c9-9ec0-7a5c144c8942</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In one of my previous posts, I talked about <a href="http://codesmartnothard.com/ConfiguringATFS2010TeamBuildServerToRunCodedUITests.aspx" target="_blank">Setting
up a Build Server to run Coded UI Tests</a>.  In this post I am going to talk
about creating a Coded UI Test and running it from Microsoft Test Manager.  
This completes the full testing story.  The build server can run the regression
tests and the tests can run any automated test from Microsoft Test Manager on demand.
</p>
        <h3>Create Test Case
</h3>
        <p>
First, create the Test Case in Microsoft Test Manager.  This is a simple test
that opens the application and customer form.  Then it enters some information
to the form, saves, and closes the form.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_2.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb.png" width="404" height="242" />
          </a> ‘
</p>
        <p>
Next, in MTM, go to the Test Tab and Run the test.  Microsoft Test Runner should
open.  Check the Create/Overwrite action recording checkbox and click Start Test.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_4.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_1.png" width="404" height="214" />
          </a>
        </p>
        <p>
Finish going through the test. Be sure to be on the appropriate step of the test case
when you perform the step in the application. It is capturing all of clicks to the
particular step that is selected. Save and Close the test. Make sure to save the action
recording.
</p>
        <p>
Switch your hat to the Developer cap. Open Visual Studio 2010 Premium or Ultimate.
Create a new test project. To create a new Coded UI Test, right click on the project
and choose Add &gt; Coded UI Test. A dialog appears to choose either Record actions
or Use an existing action recording.
</p>
        <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_6.png">
          <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_2.png" width="304" height="174" />
        </a>
        <p>
        </p>
        <p>
Since we already have the action recording, choose the “Use an existing action recording.”
Search for the Test Case of the test that you just ran. When you click Ok, it will
generate the code for the test. Run the test in Visual Studio and make sure the test
passes. You will need to make sure the application you are testing is installed on
your development machine.
</p>
        <p>
Once you verify the test is passing in Visual Studio, you can associate the automated
test back to the test case. To do this, display the Test View window by going to Test
&gt; Windows &gt; Test View. Right click on the test and choose “Associate Test to
Test Case”
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_8.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_3.png" width="404" height="232" />
          </a> 
</p>
        <p>
Find the Test Case and choose Ok. This will open the test case work item. Notice that
the test is now associated with the test case.
</p>
        <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_10.png">
          <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_4.png" width="404" height="221" />
        </a>
        <p>
        </p>
        <p>
Also the Automation Status has been changed to Automated. Another thing is that the
Automated test type shows “CodedUITest.” In addition to Coded UI Tests, Unit tests
can be linked to a Test Case. This is very useful when you are using the unit test
framework to do system level or end to end tests that would be at the same level as
the Test Case.
</p>
        <h3>Creating the Test Environment
</h3>
        <p>
Now that we have the test case automated, we need to configure the test environment
before we can run it.
</p>
        <h4>Test Server
</h4>
        <p>
First choose a machine that where the tests will run.  This can be a physical/virtual
server or PC depending on the requirements of the application you are testing. 
On this machine, I installed the Visual Studio 2010 Test Controller and Visual Studio
2010 Test Agent.  These could also be installed on separate machines.  A
test controller can support multiple test agent machines.
</p>
        <p>
To install the Test Controller and Test Agent, download the <a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=a3216d2a-0530-4f6c-a7c9-0df37c54a902" target="_blank">Visual
Studio 2010 Agents ISO</a>. This contains the Test Controller, Test Agent, and Lab
Agent.
</p>
        <p>
First install the Test Controller.  I always recommend using a domain account
instead of the Network Service account.  Register the Test Controller with the
Team Project Collection.  As it states, you must do this to create enable the
test environment.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_12.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_5.png" width="324" height="344" />
          </a>
        </p>
        <p>
Once the Test Controller is configured, install the Test Agent.   I also
recommend using a domain account for the Test Agent.  Configure the Test Agent
to interact with the desktop.  For the Coded UI Tests to run, they must be able
to have full access to the desktop.  This also means that the computer must be
logged in and can’t be locked.  Make sure to check the option to disable the
screen saver and to log in automatically.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_14.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_6.png" width="324" height="290" />
          </a>
        </p>
        <p>
Also, one thing that I have learned is you can’t use Remote Desktop (RDP) to access
the test machines.  Logging out of RDP automatically locks the machine. 
If the machines are virtual then you need to use access them through the virtual machine
host or another remote technology.
</p>
        <p>
One optional item you can configure is to configure the test machine to record video.
To do this follow these steps:
</p>
        <p>
1.  Install the <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;displaylang=en" target="_blank">RTM
update for Lab Management</a>on the server
</p>
        <p>
2.  <a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79" target="_blank">Install
Encoder 4</a></p>
        <p>
3. If the machine is a server, install the Desktop Experience feature.
</p>
        <h4>Configure the Environment
</h4>
        <p>
The test machine is now configured.  Now we need to configure the test environment
so that the automated test knows where to run.
</p>
        <p>
Switch back to Microsoft Test Manager.  Change Testing Center to Lab Center by
selecting it from the drop down.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_16.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_7.png" width="244" height="148" />
          </a>
        </p>
        <p>
First we need to create the environment.  If Lab Management was installed and
configured, we could configure a virtual environment.  But since we have already
configured a machine outside of Lab Management it will be considered a physical environment.
</p>
        <p>
Select the Lab tab and choose New &gt; New Physical Environment.
</p>
        <p>
Fill in the Name and Description.  Choose the Test Controller to where the environment
is going to be created.  Optionally, you can tag the environment.  This
could be helpful if you have multiple environments with different configurations.
</p>
        <p>
Next select the machine from the available machines and assign it a role.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_18.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_8.png" width="454" height="246" />
          </a>
        </p>
        <p>
In a physical environment there isn’t anything to set in the machine properties. 
If it was virtual environment, you could specify the memory, product key, and other
settings to configure the machine.  Click on Finish to create the environment.
</p>
        <p>
Next is to create the Test Settings that can be used to specify what kind of testing
diagnostics to capture for each machine in the environment.  In our example,
we only have the one machine.  Select the Test Settings tab and click on New.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_20.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_9.png" width="404" height="202" />
          </a>
        </p>
        <p>
Give it a name.  Usually name this in relation to how much diagnostic data you
want to capture.  Consider having a “Full” setting that has all or most of the
diagnostics enabled and then another setting called “Light” or “Minimum”.
</p>
        <p>
Select the Roles Tab.  Make sure the machine is set to the appropriate role and
is matched to the environment.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_22.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_10.png" width="404" height="311" />
          </a>
        </p>
        <p>
In the Data and Diagnostics, select any of the data you want to capture while you
are testing.   If your application write to the event log, be sure to check
that.  If you enabled the video recording, you can enable that option too. 
We don’t need to choose any of the advanced options.  Once you have selected
the diagnostic settings, click finish to create it.
</p>
        <p>
Before we configure our Test Plan with these settings, we need a build to test against. 
We will need to create a new build definition, so reopen the test project solution
in Visual Studio 2010 if it isn’t still open.  In the Team Explorer window, right
click on Builds and choose New Build Definition.  The build definition will be
pre-populated with the information from the solution.  Choose a drop folder (you
may have to create a share for this if one isn’t already created).  Lastly, we
are not going to run these tests from the build.  Refer to my previous post if
you want to also configure this.   By default it will try to run the tests. 
Go to the Advanced settings and disable the Automated Tests.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
Save the build.  Right click on the build and choose Queue new build.
</p>
        <p>
Now that we have the build, test settings, and environment our last step is to assign
these to the Test Plan.  Switch back Test Manager and make sure you are in Testing
Center.  Choose the Organize tab and Open Test Plan.  First under Automated
runs settings, choose the testing settings that you created.  If it isn’t in
the list, make sure you selected Automated for the settings.  Next choose the
environment.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_24.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_11.png" width="404" height="112" />
          </a>
        </p>
        <p>
Next choose the build definition that you created and click Set build filter.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_26.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_12.png" width="404" height="179" />
          </a>
        </p>
        <p>
Assign the latest build of the build definition by click on the modify link. 
Then choose the appropriate build and click Assign to plan.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_28.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_13.png" width="404" height="131" />
          </a>
        </p>
        <p>
The settings for the automated test to run from Microsoft Test Manager are complete. 
Let’s go back to the test and run it as an automated test.
</p>
        <p>
Switch back to the Test tab.  Locate the test that you created.  Right click
on the test and choose Run.  This will open the Test Run screen.  Notice,
now this test is automated it no longer starts the test runner by default.  If
you want to run the test manually, choose Run with options to choose to run it manually.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_30.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_14.png" width="172" height="129" />
          </a>
        </p>
        <p>
Here you can see the test is running on the Test machine while the test run shows
that it is in progress.  The test run does not refresh very well.  Be sure
to manually click on the refresh or it may appear to jump to finished.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_32.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_15.png" width="504" height="237" />
          </a>
        </p>
        <p>
Here the test shows that has completed and the status is passed.  
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_34.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_16.png" width="404" height="251" />
          </a> 
</p>
        <p>
Lastly, you can look at the test results to view the status and see any of the diagnostic
data.   The ScreenCapture.xesc is video recording of the test.  This
is usual because normally you wouldn’t be logged into the machine running the test. 
Be sure that the machine that is viewing the screen capture also has the Microsoft
Encoder installed.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_36.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_17.png" width="404" height="232" />
          </a>
        </p>
        <p>
I know this ended up being a long post.  I hope you found it useful.  As
always if you have any questions or want to find out more information how Deliveron
helps clients with their ALM initiatives, please contact us at <a href="mailto:tfs@deliveron.com">tfs@deliveron.com</a>,  <a href="http://www.deliveron.com">http://www.deliveron.com</a>,
or the phone number at the top of the screen.
</p>
        <p>
This is also cross posted at <a title="http://www.deliveron.com/blog/post/Running-Automated-Tests-from-Microsoft-Test-Manager.aspx" href="http://www.deliveron.com/blog/post/Running-Automated-Tests-from-Microsoft-Test-Manager.aspx">http://www.deliveron.com/blog/post/Running-Automated-Tests-from-Microsoft-Test-Manager.aspx</a></p>
        <p>
Mike Douglas
</p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=8eb9d235-0f57-48c9-9ec0-7a5c144c8942" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Running Automated Tests from Microsoft Test Manager</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,8eb9d235-0f57-48c9-9ec0-7a5c144c8942.aspx</guid>
      <link>http://www.codesmartnothard.com/2010/11/23/RunningAutomatedTestsFromMicrosoftTestManager.aspx</link>
      <pubDate>Tue, 23 Nov 2010 06:53:00 GMT</pubDate>
      <description>&lt;p&gt;
In one of my previous posts, I talked about &lt;a href="http://codesmartnothard.com/ConfiguringATFS2010TeamBuildServerToRunCodedUITests.aspx" target="_blank"&gt;Setting
up a Build Server to run Coded UI Tests&lt;/a&gt;.&amp;#160; In this post I am going to talk
about creating a Coded UI Test and running it from Microsoft Test Manager.&amp;#160;&amp;#160;
This completes the full testing story.&amp;#160; The build server can run the regression
tests and the tests can run any automated test from Microsoft Test Manager on demand.
&lt;/p&gt;
&lt;h3&gt;Create Test Case
&lt;/h3&gt;
&lt;p&gt;
First, create the Test Case in Microsoft Test Manager.&amp;#160; This is a simple test
that opens the application and customer form.&amp;#160; Then it enters some information
to the form, saves, and closes the form.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb.png" width="404" height="242" /&gt;&lt;/a&gt; ‘
&lt;/p&gt;
&lt;p&gt;
Next, in MTM, go to the Test Tab and Run the test.&amp;#160; Microsoft Test Runner should
open.&amp;#160; Check the Create/Overwrite action recording checkbox and click Start Test.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_1.png" width="404" height="214" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Finish going through the test. Be sure to be on the appropriate step of the test case
when you perform the step in the application. It is capturing all of clicks to the
particular step that is selected. Save and Close the test. Make sure to save the action
recording.
&lt;/p&gt;
&lt;p&gt;
Switch your hat to the Developer cap. Open Visual Studio 2010 Premium or Ultimate.
Create a new test project. To create a new Coded UI Test, right click on the project
and choose Add &amp;gt; Coded UI Test. A dialog appears to choose either Record actions
or Use an existing action recording.
&lt;/p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_2.png" width="304" height="174" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Since we already have the action recording, choose the “Use an existing action recording.”
Search for the Test Case of the test that you just ran. When you click Ok, it will
generate the code for the test. Run the test in Visual Studio and make sure the test
passes. You will need to make sure the application you are testing is installed on
your development machine.
&lt;/p&gt;
&lt;p&gt;
Once you verify the test is passing in Visual Studio, you can associate the automated
test back to the test case. To do this, display the Test View window by going to Test
&amp;gt; Windows &amp;gt; Test View. Right click on the test and choose “Associate Test to
Test Case”
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_3.png" width="404" height="232" /&gt;&lt;/a&gt;&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Find the Test Case and choose Ok. This will open the test case work item. Notice that
the test is now associated with the test case.
&lt;/p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_4.png" width="404" height="221" /&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Also the Automation Status has been changed to Automated. Another thing is that the
Automated test type shows “CodedUITest.” In addition to Coded UI Tests, Unit tests
can be linked to a Test Case. This is very useful when you are using the unit test
framework to do system level or end to end tests that would be at the same level as
the Test Case.
&lt;/p&gt;
&lt;h3&gt;Creating the Test Environment
&lt;/h3&gt;
&lt;p&gt;
Now that we have the test case automated, we need to configure the test environment
before we can run it.
&lt;/p&gt;
&lt;h4&gt;Test Server
&lt;/h4&gt;
&lt;p&gt;
First choose a machine that where the tests will run.&amp;#160; This can be a physical/virtual
server or PC depending on the requirements of the application you are testing.&amp;#160;
On this machine, I installed the Visual Studio 2010 Test Controller and Visual Studio
2010 Test Agent.&amp;#160; These could also be installed on separate machines.&amp;#160; A
test controller can support multiple test agent machines.
&lt;/p&gt;
&lt;p&gt;
To install the Test Controller and Test Agent, download the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=a3216d2a-0530-4f6c-a7c9-0df37c54a902" target="_blank"&gt;Visual
Studio 2010 Agents ISO&lt;/a&gt;. This contains the Test Controller, Test Agent, and Lab
Agent.
&lt;/p&gt;
&lt;p&gt;
First install the Test Controller.&amp;#160; I always recommend using a domain account
instead of the Network Service account.&amp;#160; Register the Test Controller with the
Team Project Collection.&amp;#160; As it states, you must do this to create enable the
test environment.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_5.png" width="324" height="344" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Once the Test Controller is configured, install the Test Agent.&amp;#160;&amp;#160; I also
recommend using a domain account for the Test Agent.&amp;#160; Configure the Test Agent
to interact with the desktop.&amp;#160; For the Coded UI Tests to run, they must be able
to have full access to the desktop.&amp;#160; This also means that the computer must be
logged in and can’t be locked.&amp;#160; Make sure to check the option to disable the
screen saver and to log in automatically.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_6.png" width="324" height="290" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Also, one thing that I have learned is you can’t use Remote Desktop (RDP) to access
the test machines.&amp;#160; Logging out of RDP automatically locks the machine.&amp;#160;
If the machines are virtual then you need to use access them through the virtual machine
host or another remote technology.
&lt;/p&gt;
&lt;p&gt;
One optional item you can configure is to configure the test machine to record video.
To do this follow these steps:
&lt;/p&gt;
&lt;p&gt;
1.&amp;#160; Install the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;amp;displaylang=en" target="_blank"&gt;RTM
update for Lab Management&lt;/a&gt;on the server
&lt;/p&gt;
&lt;p&gt;
2.&amp;#160; &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79" target="_blank"&gt;Install
Encoder 4&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
3. If the machine is a server, install the Desktop Experience feature.
&lt;/p&gt;
&lt;h4&gt;Configure the Environment
&lt;/h4&gt;
&lt;p&gt;
The test machine is now configured.&amp;#160; Now we need to configure the test environment
so that the automated test knows where to run.
&lt;/p&gt;
&lt;p&gt;
Switch back to Microsoft Test Manager.&amp;#160; Change Testing Center to Lab Center by
selecting it from the drop down.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_7.png" width="244" height="148" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
First we need to create the environment.&amp;#160; If Lab Management was installed and
configured, we could configure a virtual environment.&amp;#160; But since we have already
configured a machine outside of Lab Management it will be considered a physical environment.
&lt;/p&gt;
&lt;p&gt;
Select the Lab tab and choose New &amp;gt; New Physical Environment.
&lt;/p&gt;
&lt;p&gt;
Fill in the Name and Description.&amp;#160; Choose the Test Controller to where the environment
is going to be created.&amp;#160; Optionally, you can tag the environment.&amp;#160; This
could be helpful if you have multiple environments with different configurations.
&lt;/p&gt;
&lt;p&gt;
Next select the machine from the available machines and assign it a role.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_8.png" width="454" height="246" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In a physical environment there isn’t anything to set in the machine properties.&amp;#160;
If it was virtual environment, you could specify the memory, product key, and other
settings to configure the machine.&amp;#160; Click on Finish to create the environment.
&lt;/p&gt;
&lt;p&gt;
Next is to create the Test Settings that can be used to specify what kind of testing
diagnostics to capture for each machine in the environment.&amp;#160; In our example,
we only have the one machine.&amp;#160; Select the Test Settings tab and click on New.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_20.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_9.png" width="404" height="202" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Give it a name.&amp;#160; Usually name this in relation to how much diagnostic data you
want to capture.&amp;#160; Consider having a “Full” setting that has all or most of the
diagnostics enabled and then another setting called “Light” or “Minimum”.
&lt;/p&gt;
&lt;p&gt;
Select the Roles Tab.&amp;#160; Make sure the machine is set to the appropriate role and
is matched to the environment.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_22.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_10.png" width="404" height="311" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In the Data and Diagnostics, select any of the data you want to capture while you
are testing.&amp;#160;&amp;#160; If your application write to the event log, be sure to check
that.&amp;#160; If you enabled the video recording, you can enable that option too.&amp;#160;
We don’t need to choose any of the advanced options.&amp;#160; Once you have selected
the diagnostic settings, click finish to create it.
&lt;/p&gt;
&lt;p&gt;
Before we configure our Test Plan with these settings, we need a build to test against.&amp;#160;
We will need to create a new build definition, so reopen the test project solution
in Visual Studio 2010 if it isn’t still open.&amp;#160; In the Team Explorer window, right
click on Builds and choose New Build Definition.&amp;#160; The build definition will be
pre-populated with the information from the solution.&amp;#160; Choose a drop folder (you
may have to create a share for this if one isn’t already created).&amp;#160; Lastly, we
are not going to run these tests from the build.&amp;#160; Refer to my previous post if
you want to also configure this.&amp;#160;&amp;#160; By default it will try to run the tests.&amp;#160;
Go to the Advanced settings and disable the Automated Tests.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Save the build.&amp;#160; Right click on the build and choose Queue new build.
&lt;/p&gt;
&lt;p&gt;
Now that we have the build, test settings, and environment our last step is to assign
these to the Test Plan.&amp;#160; Switch back Test Manager and make sure you are in Testing
Center.&amp;#160; Choose the Organize tab and Open Test Plan.&amp;#160; First under Automated
runs settings, choose the testing settings that you created.&amp;#160; If it isn’t in
the list, make sure you selected Automated for the settings.&amp;#160; Next choose the
environment.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_24.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_11.png" width="404" height="112" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Next choose the build definition that you created and click Set build filter.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_26.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_12.png" width="404" height="179" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Assign the latest build of the build definition by click on the modify link.&amp;#160;
Then choose the appropriate build and click Assign to plan.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_28.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_13.png" width="404" height="131" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The settings for the automated test to run from Microsoft Test Manager are complete.&amp;#160;
Let’s go back to the test and run it as an automated test.
&lt;/p&gt;
&lt;p&gt;
Switch back to the Test tab.&amp;#160; Locate the test that you created.&amp;#160; Right click
on the test and choose Run.&amp;#160; This will open the Test Run screen.&amp;#160; Notice,
now this test is automated it no longer starts the test runner by default.&amp;#160; If
you want to run the test manually, choose Run with options to choose to run it manually.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_30.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_14.png" width="172" height="129" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here you can see the test is running on the Test machine while the test run shows
that it is in progress.&amp;#160; The test run does not refresh very well.&amp;#160; Be sure
to manually click on the refresh or it may appear to jump to finished.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_32.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_15.png" width="504" height="237" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here the test shows that has completed and the status is passed.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_34.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_16.png" width="404" height="251" /&gt;&lt;/a&gt;&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Lastly, you can look at the test results to view the status and see any of the diagnostic
data.&amp;#160;&amp;#160; The ScreenCapture.xesc is video recording of the test.&amp;#160; This
is usual because normally you wouldn’t be logged into the machine running the test.&amp;#160;
Be sure that the machine that is viewing the screen capture also has the Microsoft
Encoder installed.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_36.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/RunningAutomatedTestsfromMicrosoftTestMa_67FC/image_thumb_17.png" width="404" height="232" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I know this ended up being a long post.&amp;#160; I hope you found it useful.&amp;#160; As
always if you have any questions or want to find out more information how Deliveron
helps clients with their ALM initiatives, please contact us at &lt;a href="mailto:tfs@deliveron.com"&gt;tfs@deliveron.com&lt;/a&gt;,&amp;#160; &lt;a href="http://www.deliveron.com"&gt;http://www.deliveron.com&lt;/a&gt;,
or the phone number at the top of the screen.
&lt;/p&gt;
&lt;p&gt;
This is also cross posted at &lt;a title="http://www.deliveron.com/blog/post/Running-Automated-Tests-from-Microsoft-Test-Manager.aspx" href="http://www.deliveron.com/blog/post/Running-Automated-Tests-from-Microsoft-Test-Manager.aspx"&gt;http://www.deliveron.com/blog/post/Running-Automated-Tests-from-Microsoft-Test-Manager.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Mike Douglas
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=8eb9d235-0f57-48c9-9ec0-7a5c144c8942" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,8eb9d235-0f57-48c9-9ec0-7a5c144c8942.aspx</comments>
      <category>ALM</category>
      <category>Coded UI Tests</category>
      <category>TFS 2010</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=af4ef975-39a1-4d3e-9745-959a8303e978</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,af4ef975-39a1-4d3e-9745-959a8303e978.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,af4ef975-39a1-4d3e-9745-959a8303e978.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=af4ef975-39a1-4d3e-9745-959a8303e978</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Development teams utilizing Coded UI Tests have several options where to run Coded
UI Tests.  When a developer creates an automated test either from an existing
action recording or using the Coded UI Test Builder, the test can be run within Visual
Studio 2010 just like a unit test.  Once the Coded UI test is passing, it can
be associated with a Test Case and/or run as part of the build along with the unit
tests.  I will cover associating a Coded UI Test to a Test Case and running the
automated test within Microsoft Test Manager in a future post.  In this post
I will cover configuring the build server to run Coded UI Tests.  While this
post describes configuring the build server to run the Coded UI Tests, any machine
configured as a test agent can be utilized by the build server and build to run the
Coded UI Tests.
</p>
        <p>
The primary difference between running the Coded UI Test on the build server than
a unit test is that the test requires full access to the UI.  Having the build
server require full access to the UI introduces a couple challenges including a couple
additional requirements.  First, the build server requires the application to
be installed on the build server the same way it was installed when the test was recorded. 
The build server also requires a Visual Studio 2010 Test Agent running on it. 
It also needs to be configured to record video if required.  Finally the build
has to be configured to run the Coded UI Tests.  The following steps walk through
configuring these items.
</p>
        <h4>Configuring the Test Agent to Run Coded UI Tests
</h4>
        <p>
1. Run the Microsoft Visual Studio 2010 Test Agent Configuration Tool (Start &gt;
Program Files &gt; Visual Studio 2010 &gt; Visual Studio 2010 Test Agent Configuration
Tool)
</p>
        <p>
2. Configure the Test Agent to Run Interactive 
<br /><a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb.png" width="404" height="362" /></a></p>
        <p>
3. Ensure that Log on automatically and Ensure screen saver is disabled are checked. 
This will enable the server to be ready to run the tests even if the server is rebooted.  
Also, the screen saver has to be disabled so the machine doesn’t get locked. 
The Coded UI Tests can not run if the screen is locked. If you use Remote Desktop
(RDP) to connect to the server, when you log out the machine it will automatically
lock it.  To prevent this from happening, you must log into it from the machine
or VM console.  If this is not an option, an alternative is to log on to another
server such as the TFS server, then RDP into the build server from the TFS server
and close the RDP session to the TFS server to lock this server but the build server
remains unlocked and the Coded UI Tests will be able to run.
</p>
        <p>
4. Register the Test Agent to a Test Controller that is not configured for Test Manager. 
Unfortunately, the Coded UI tests run from the Build Server can not share the same
test controller.  
</p>
        <h4>Enabling Video Recording for the Automated Tests
</h4>
        <p>
One of the options in the test settings is to enabling video recording as part of
the data collection.  By default the server doesn’t have the required components
and configuration to enable this.  Follow these steps to enable the video recording.
</p>
        <p>
1. Install the RTM Update for Lab Management on the Build Server 
<br /><a title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;displaylang=en" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;displaylang=en">http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;displaylang=en</a></p>
        <p>
2. Install Microsoft Expression Encoder 
<br /><a title="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79" href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79">http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79</a></p>
        <p>
3. If the Build Server is Windows Server then enable the Desktop Experience Feature.
</p>
        <h4>Configuring the Build to run the Coded UI Tests
</h4>
        <p>
The final part to configure is to configure the build to run the Coded UI Tests.
</p>
        <p>
1. Open the Test Settings file in Visual Studio by clicking Test &gt; Edit Test Settings
&gt; Local.
</p>
        <p>
2. Create a copy by clicking “Save As” and call it something like “BuildServer”.  
</p>
        <p>
3. Change the name to “BuildServer”.
</p>
        <p>
4. Choose the Roles item.  Change the local execution to “Remote Execution”.
</p>
        <p>
5.  Enter the name of the Test Controller that the Test Agent on the build server
is using. 
<br /><br />
If you get the error “The following test controller is not available : YourServer. 
You must remove the association using the Lab Center within Microsoft Test Manager”,
then you must remove this association.
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb_1.png" width="504" height="89" />
          </a>
        </p>
        <p>
a. To remove the association, remove the registration in the Visual Studio 2010 Test
Controller Configuration Tool.  Uncheck the “Register with Team Project Collection”
option. 
<br /><a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb_2.png" width="504" height="135" /></a> 
</p>
        <p>
6. The Roles item in the BuildServer Test Settings should look like the following 
<br /><a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb_3.png" width="504" height="213" /></a></p>
        <p>
7. Close the Test Settings and Check in the new build definition file.
</p>
        <p>
8. Open the Build Definition.  Click on the Process tab.  Expand the Automated
Tests &gt; Test Assembly.  Click on the TestSettings File ellipse.  Chose
the BuildServer  test settings file. 
</p>
        <p>
9. Save the build definition and queue the new build.  The Coded UI Test should
run on the build and your test should pass. If the test fails, open the test results
and view the details the same way you would do for a broken unit test.
</p>
        <p>
This is a cross post from the Deliveron blog. <a title="http://www.deliveron.com/blog/post/Configuring-a-TFS-2010-Team-Build-Server-to-Run-Coded-UI-Tests.aspx" href="http://www.deliveron.com/blog/post/Configuring-a-TFS-2010-Team-Build-Server-to-Run-Coded-UI-Tests.aspx">http://www.deliveron.com/blog/post/Configuring-a-TFS-2010-Team-Build-Server-to-Run-Coded-UI-Tests.aspx</a></p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=af4ef975-39a1-4d3e-9745-959a8303e978" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Configuring a TFS 2010 Team Build Server to Run Coded UI Tests</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,af4ef975-39a1-4d3e-9745-959a8303e978.aspx</guid>
      <link>http://www.codesmartnothard.com/2010/10/04/ConfiguringATFS2010TeamBuildServerToRunCodedUITests.aspx</link>
      <pubDate>Mon, 04 Oct 2010 04:32:00 GMT</pubDate>
      <description>&lt;p&gt;
Development teams utilizing Coded UI Tests have several options where to run Coded
UI Tests.&amp;#160; When a developer creates an automated test either from an existing
action recording or using the Coded UI Test Builder, the test can be run within Visual
Studio 2010 just like a unit test.&amp;#160; Once the Coded UI test is passing, it can
be associated with a Test Case and/or run as part of the build along with the unit
tests.&amp;#160; I will cover associating a Coded UI Test to a Test Case and running the
automated test within Microsoft Test Manager in a future post.&amp;#160; In this post
I will cover configuring the build server to run Coded UI Tests.&amp;#160; While this
post describes configuring the build server to run the Coded UI Tests, any machine
configured as a test agent can be utilized by the build server and build to run the
Coded UI Tests.
&lt;/p&gt;
&lt;p&gt;
The primary difference between running the Coded UI Test on the build server than
a unit test is that the test requires full access to the UI.&amp;#160; Having the build
server require full access to the UI introduces a couple challenges including a couple
additional requirements.&amp;#160; First, the build server requires the application to
be installed on the build server the same way it was installed when the test was recorded.&amp;#160;
The build server also requires a Visual Studio 2010 Test Agent running on it.&amp;#160;
It also needs to be configured to record video if required.&amp;#160; Finally the build
has to be configured to run the Coded UI Tests.&amp;#160; The following steps walk through
configuring these items.
&lt;/p&gt;
&lt;h4&gt;Configuring the Test Agent to Run Coded UI Tests
&lt;/h4&gt;
&lt;p&gt;
1. Run the Microsoft Visual Studio 2010 Test Agent Configuration Tool (Start &amp;gt;
Program Files &amp;gt; Visual Studio 2010 &amp;gt; Visual Studio 2010 Test Agent Configuration
Tool)
&lt;/p&gt;
&lt;p&gt;
2. Configure the Test Agent to Run Interactive 
&lt;br /&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb.png" width="404" height="362" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
3. Ensure that Log on automatically and Ensure screen saver is disabled are checked.&amp;#160;
This will enable the server to be ready to run the tests even if the server is rebooted.&amp;#160;&amp;#160;
Also, the screen saver has to be disabled so the machine doesn’t get locked.&amp;#160;
The Coded UI Tests can not run if the screen is locked. If you use Remote Desktop
(RDP) to connect to the server, when you log out the machine it will automatically
lock it.&amp;#160; To prevent this from happening, you must log into it from the machine
or VM console.&amp;#160; If this is not an option, an alternative is to log on to another
server such as the TFS server, then RDP into the build server from the TFS server
and close the RDP session to the TFS server to lock this server but the build server
remains unlocked and the Coded UI Tests will be able to run.
&lt;/p&gt;
&lt;p&gt;
4. Register the Test Agent to a Test Controller that is not configured for Test Manager.&amp;#160;
Unfortunately, the Coded UI tests run from the Build Server can not share the same
test controller.&amp;#160; 
&lt;/p&gt;
&lt;h4&gt;Enabling Video Recording for the Automated Tests
&lt;/h4&gt;
&lt;p&gt;
One of the options in the test settings is to enabling video recording as part of
the data collection.&amp;#160; By default the server doesn’t have the required components
and configuration to enable this.&amp;#160; Follow these steps to enable the video recording.
&lt;/p&gt;
&lt;p&gt;
1. Install the RTM Update for Lab Management on the Build Server 
&lt;br /&gt;
&lt;a title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8406ef19-35a3-4c03-a145-08ba982f3cef&amp;amp;displaylang=en&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
2. Install Microsoft Expression Encoder 
&lt;br /&gt;
&lt;a title="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79" href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79"&gt;http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=75402be0-c603-4998-a79c-becdd197aa79&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
3. If the Build Server is Windows Server then enable the Desktop Experience Feature.
&lt;/p&gt;
&lt;h4&gt;Configuring the Build to run the Coded UI Tests
&lt;/h4&gt;
&lt;p&gt;
The final part to configure is to configure the build to run the Coded UI Tests.
&lt;/p&gt;
&lt;p&gt;
1. Open the Test Settings file in Visual Studio by clicking Test &amp;gt; Edit Test Settings
&amp;gt; Local.
&lt;/p&gt;
&lt;p&gt;
2. Create a copy by clicking “Save As” and call it something like “BuildServer”.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
3. Change the name to “BuildServer”.
&lt;/p&gt;
&lt;p&gt;
4. Choose the Roles item.&amp;#160; Change the local execution to “Remote Execution”.
&lt;/p&gt;
&lt;p&gt;
5.&amp;#160; Enter the name of the Test Controller that the Test Agent on the build server
is using. 
&lt;br /&gt;
&lt;br /&gt;
If you get the error “The following test controller is not available : YourServer.&amp;#160;
You must remove the association using the Lab Center within Microsoft Test Manager”,
then you must remove this association.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb_1.png" width="504" height="89" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
a. To remove the association, remove the registration in the Visual Studio 2010 Test
Controller Configuration Tool.&amp;#160; Uncheck the “Register with Team Project Collection”
option. 
&lt;br /&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb_2.png" width="504" height="135" /&gt;&lt;/a&gt;&amp;#160;
&lt;/p&gt;
&lt;p&gt;
6. The Roles item in the BuildServer Test Settings should look like the following 
&lt;br /&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/ConfiguringaTFS2010TeamBuildServertoRunC_1462D/image_thumb_3.png" width="504" height="213" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
7. Close the Test Settings and Check in the new build definition file.
&lt;/p&gt;
&lt;p&gt;
8. Open the Build Definition.&amp;#160; Click on the Process tab.&amp;#160; Expand the Automated
Tests &amp;gt; Test Assembly.&amp;#160; Click on the TestSettings File ellipse.&amp;#160; Chose
the BuildServer&amp;#160; test settings file. 
&lt;/p&gt;
&lt;p&gt;
9. Save the build definition and queue the new build.&amp;#160; The Coded UI Test should
run on the build and your test should pass. If the test fails, open the test results
and view the details the same way you would do for a broken unit test.
&lt;/p&gt;
&lt;p&gt;
This is a cross post from the Deliveron blog. &lt;a title="http://www.deliveron.com/blog/post/Configuring-a-TFS-2010-Team-Build-Server-to-Run-Coded-UI-Tests.aspx" href="http://www.deliveron.com/blog/post/Configuring-a-TFS-2010-Team-Build-Server-to-Run-Coded-UI-Tests.aspx"&gt;http://www.deliveron.com/blog/post/Configuring-a-TFS-2010-Team-Build-Server-to-Run-Coded-UI-Tests.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=af4ef975-39a1-4d3e-9745-959a8303e978" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,af4ef975-39a1-4d3e-9745-959a8303e978.aspx</comments>
      <category>ALM</category>
      <category>Team Build 2010</category>
      <category>Team Foundation Server</category>
      <category>Visual Studio 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.codesmartnothard.com/Trackback.aspx?guid=dee06f60-9d96-429f-86b5-7f194f100666</trackback:ping>
      <pingback:server>http://www.codesmartnothard.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.codesmartnothard.com/PermaLink,guid,dee06f60-9d96-429f-86b5-7f194f100666.aspx</pingback:target>
      <dc:creator>Mike Douglas</dc:creator>
      <wfw:comment>http://www.codesmartnothard.com/CommentView,guid,dee06f60-9d96-429f-86b5-7f194f100666.aspx</wfw:comment>
      <wfw:commentRss>http://www.codesmartnothard.com/SyndicationService.asmx/GetEntryCommentsRss?guid=dee06f60-9d96-429f-86b5-7f194f100666</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the most exciting things to me in Visual Studio 2010 ALM is the elimination
of silos around development, project management, and quality assurance.  In previous
version these roles and activities were isolated and disconnected with little traceability
between them.  
</p>
        <p>
In Visual Studio 2010 ALM these silos are removed and there is now traceability across
the developer, project management, and quality assurance roles because of the emphasis
around testing in Visual Studio 2010. The introduction of Microsoft Test Manager,
included with Visual Studio 2010 Ultimate and Visual Studio 2010 Test Professional,
to create and manage Test Plans and manually run Test Cases has filled a much needed
gap in the ALM space.
</p>
        <p>
To visualize the traceability, we have created the Visual Studio 2010 ALM Traceability
Matrix to show the relationships between the major work items/artifacts in Visual
Studio 2010 ALM. This could include additional links between these items, but we have
not included every possible combination for readability. What I found with this matrix
helps people relate this to their own environment and start seeing benefits of having
all of this information centralized utilizing Visual Studio 2010 ALM and Team Foundation
Server (TFS) 2010.  Below the matrix are some examples of questions that can
be answered by TFS related to traceability between these items.  The data warehouse
in TFS 2010 can be used to answer many more questions for every level of your organization. 
</p>
        <p>
          <a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/Visualstudio2010almTraceability_1458C/image_2.png">
            <img style="border-right-width: 0px; margin: 5px auto; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Visual Studio 2010 ALM Traceability Matrix" border="0" alt="Visual Studio 2010 ALM Traceability Matrix" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/Visualstudio2010almTraceability_1458C/image_thumb.png" width="500" height="573" />
          </a>
        </p>
        <p>
          <strong>User Stories (1) 
<br /></strong>How many hours of remaining work are left for this User Story? 
<br />
Who are the developers working on this User Story? 
<br />
Is the User Story covered by test cases? 
<br />
Are the tests passing for the User Story? 
<br />
Is the User Story done?
</p>
        <p>
          <strong>Tasks (2) 
<br /></strong>What bugs have been fixed for a User Story? 
<br />
Is the task complete so the test case be moved to ready?
</p>
        <p>
          <strong>Test Plan (3)</strong>
          <br />
What stories are in a Test Plan/Iteration? 
<br />
How many automated tests are in the the Test Plan? 
<br />
How many tests are passing in this Iteration/release/test plan from the previous one? 
<br />
How many bugs were fixed?
</p>
        <p>
          <strong>Test Suites (4) 
<br /></strong>What are the group of test cases for the User Story?
</p>
        <p>
          <strong>Test Cases (5) 
<br /></strong>Are all of the tests passing for a particular Iteration/Test Plan? 
<br />
How many iterations has this test been passing?
</p>
        <p>
          <strong>Automate Tests (6)</strong>
          <br />
How many tests are automated for a User Story or Iteration/Test Plan? 
<br />
Are there are any regression tests failing? 
<br />
What is the test coverage for User Stories?
</p>
        <p>
          <strong>Code/Changesets (7)</strong>
          <br />
What changesets are included in this build?  
<br />
What tests are impacted by this check-in? 
<br />
What is the User Story and Test Plan for this changeset? 
<br />
Has this changeset been released?
</p>
        <p>
          <strong>Builds (8) 
<br /></strong>What test cases are impacted by the code changes in this build? 
<br />
What build is being used to run the tests against? 
<br />
What User Stories and/or Test Cases have been tested by this build?
</p>
        <p>
What kind of questions come to mind for your organization around these items? 
Send me your thoughts or questions to <a href="mailto:tfs@deliveron.com" target="_blank">tfs@deliveron.com</a></p>
        <p>
        </p>
        <p>
Mike
</p>
        <p>
This is a cross post of <a title="http://www.deliveron.com/blog/post/Visual-Studio-2010-ALM-Traceability.aspx" href="http://www.deliveron.com/blog/post/Visual-Studio-2010-ALM-Traceability.aspx">http://www.deliveron.com/blog/post/Visual-Studio-2010-ALM-Traceability.aspx</a></p>
        <img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=dee06f60-9d96-429f-86b5-7f194f100666" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.deliveron.com">Deliveron Consulting
Services</a>. 
</body>
      <title>Visual Studio 2010 ALM Traceability</title>
      <guid isPermaLink="false">http://www.codesmartnothard.com/PermaLink,guid,dee06f60-9d96-429f-86b5-7f194f100666.aspx</guid>
      <link>http://www.codesmartnothard.com/2010/08/21/VisualStudio2010ALMTraceability.aspx</link>
      <pubDate>Sat, 21 Aug 2010 14:40:00 GMT</pubDate>
      <description>&lt;p&gt;
One of the most exciting things to me in Visual Studio 2010 ALM is the elimination
of silos around development, project management, and quality assurance.&amp;#160; In previous
version these roles and activities were isolated and disconnected with little traceability
between them.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
In Visual Studio 2010 ALM these silos are removed and there is now traceability across
the developer, project management, and quality assurance roles because of the emphasis
around testing in Visual Studio 2010. The introduction of Microsoft Test Manager,
included with Visual Studio 2010 Ultimate and Visual Studio 2010 Test Professional,
to create and manage Test Plans and manually run Test Cases has filled a much needed
gap in the ALM space.
&lt;/p&gt;
&lt;p&gt;
To visualize the traceability, we have created the Visual Studio 2010 ALM Traceability
Matrix to show the relationships between the major work items/artifacts in Visual
Studio 2010 ALM. This could include additional links between these items, but we have
not included every possible combination for readability. What I found with this matrix
helps people relate this to their own environment and start seeing benefits of having
all of this information centralized utilizing Visual Studio 2010 ALM and Team Foundation
Server (TFS) 2010.&amp;#160; Below the matrix are some examples of questions that can
be answered by TFS related to traceability between these items.&amp;#160; The data warehouse
in TFS 2010 can be used to answer many more questions for every level of your organization. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codesmartnothard.com/content/binary/WindowsLiveWriter/Visualstudio2010almTraceability_1458C/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 5px auto; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Visual Studio 2010 ALM Traceability Matrix" border="0" alt="Visual Studio 2010 ALM Traceability Matrix" src="http://codesmartnothard.com/content/binary/WindowsLiveWriter/Visualstudio2010almTraceability_1458C/image_thumb.png" width="500" height="573" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;User Stories (1) 
&lt;br /&gt;
&lt;/strong&gt;How many hours of remaining work are left for this User Story? 
&lt;br /&gt;
Who are the developers working on this User Story? 
&lt;br /&gt;
Is the User Story covered by test cases? 
&lt;br /&gt;
Are the tests passing for the User Story? 
&lt;br /&gt;
Is the User Story done?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Tasks (2) 
&lt;br /&gt;
&lt;/strong&gt;What bugs have been fixed for a User Story? 
&lt;br /&gt;
Is the task complete so the test case be moved to ready?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Plan (3)&lt;/strong&gt; 
&lt;br /&gt;
What stories are in a Test Plan/Iteration? 
&lt;br /&gt;
How many automated tests are in the the Test Plan? 
&lt;br /&gt;
How many tests are passing in this Iteration/release/test plan from the previous one? 
&lt;br /&gt;
How many bugs were fixed?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Suites (4) 
&lt;br /&gt;
&lt;/strong&gt;What are the group of test cases for the User Story?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Cases (5) 
&lt;br /&gt;
&lt;/strong&gt;Are all of the tests passing for a particular Iteration/Test Plan? 
&lt;br /&gt;
How many iterations has this test been passing?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Automate Tests (6)&lt;/strong&gt; 
&lt;br /&gt;
How many tests are automated for a User Story or Iteration/Test Plan? 
&lt;br /&gt;
Are there are any regression tests failing? 
&lt;br /&gt;
What is the test coverage for User Stories?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Code/Changesets (7)&lt;/strong&gt; 
&lt;br /&gt;
What changesets are included in this build?&amp;#160; 
&lt;br /&gt;
What tests are impacted by this check-in? 
&lt;br /&gt;
What is the User Story and Test Plan for this changeset? 
&lt;br /&gt;
Has this changeset been released?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Builds (8) 
&lt;br /&gt;
&lt;/strong&gt;What test cases are impacted by the code changes in this build? 
&lt;br /&gt;
What build is being used to run the tests against? 
&lt;br /&gt;
What User Stories and/or Test Cases have been tested by this build?
&lt;/p&gt;
&lt;p&gt;
What kind of questions come to mind for your organization around these items?&amp;#160;
Send me your thoughts or questions to &lt;a href="mailto:tfs@deliveron.com" target="_blank"&gt;tfs@deliveron.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Mike
&lt;/p&gt;
&lt;p&gt;
This is a cross post of &lt;a title="http://www.deliveron.com/blog/post/Visual-Studio-2010-ALM-Traceability.aspx" href="http://www.deliveron.com/blog/post/Visual-Studio-2010-ALM-Traceability.aspx"&gt;http://www.deliveron.com/blog/post/Visual-Studio-2010-ALM-Traceability.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.codesmartnothard.com/aggbug.ashx?id=dee06f60-9d96-429f-86b5-7f194f100666" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.deliveron.com"&gt;Deliveron Consulting
Services&lt;/a&gt;. </description>
      <comments>http://www.codesmartnothard.com/CommentView,guid,dee06f60-9d96-429f-86b5-7f194f100666.aspx</comments>
      <category>ALM</category>
      <category>TFS 2010</category>
      <category>Visual Studio 2010</category>
    </item>
  </channel>
</rss>