<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Breaman.net</title>
    <link>http://www.breaman.net/blog/</link>
    <description>Random Babblings from my Brain</description>
    <language>en-us</language>
    <copyright>Michael Stokesbary</copyright>
    <lastBuildDate>Fri, 08 Dec 2006 04:10:34 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.2</generator>
    <managingEditor>dasblog@example.com</managingEditor>
    <webMaster>dasblog@example.com</webMaster>
    <item>
      <trackback:ping>http://www.breaman.net/blog/Trackback.aspx?guid=de7841fe-8493-4561-b614-eda582dc0432</trackback:ping>
      <pingback:server>http://www.breaman.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.breaman.net/blog/PermaLink,guid,de7841fe-8493-4561-b614-eda582dc0432.aspx</pingback:target>
      <dc:creator>myemail@myemail.com (Your DisplayName here!)</dc:creator>
      <wfw:comment>http://www.breaman.net/blog/CommentView,guid,de7841fe-8493-4561-b614-eda582dc0432.aspx</wfw:comment>
      <wfw:commentRss>http://www.breaman.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=de7841fe-8493-4561-b614-eda582dc0432</wfw:commentRss>
      <slash:comments>210</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      A while back I posted about the algorithm used for creating a test ID within VSTS
      Test Lists. I also made mention that I was writing a utility that allowed for basic
      test list management and unfortunately more time has passed between that post and
      me actually putting something out there for the community. In all honesty, this tool
      is very basic and I haven't had much time to work on it, but I hope it is feature
      complete enough to at least be usable by people wanting to create test lists for their
      build process.
   </p>
        <p>
      When using this tool, the vsmdi file created must be at the solution root for the
      project (which is where VSTS puts it when they create it - this tool won't default
      to that location, but that is where it needs to be put). To create a test file, go
      to File-&gt;New and create the test list file (name it with a .vsmdi extension). When
      the file gets created, there are three nodes in the tree view (Lists of Tests, Tests
      Not in a List, All Loaded Tests). To add test lists to the file, right click on the
      Lists of Tests node and select "New Test List...". Within the new window, type the
      name of the test list and click OK. Test lists can be nested and you can create as
      many test lists as you like, but they must only be created under the "Lists of Tests"
      node. To load up tests, select File-&gt;Open and select .dll for the file filter.
      Navigate down to the location of your test assembly (test assemblies must be somewhere
      within the same directory tree as the vsmdi file) and load the dll into the application.
      Select the All Loaded Tests node to view all the tests within the test assembly. Expand
      the Lists of Tests node and drag tests from the grid to the correct test list (the
      Test List field in the grid will get populated with the fully qualified location of
      the test). Select File-&gt;Save to save off the vsmdi file and now this file should
      be usable by Team Build for your unit test execution during a build.
   </p>
        <p>
          <a href="http://www.breaman.net/blog/files/testmanagement.zip">Here</a> is the source
      for the management tool, hope you find it useful. If there are missing references,
      the location for the 2 files is C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
      and you will need Microsoft.VisualStudio.QualityTools.Common.dll and Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel.dll.
   </p>
        <p>
      Please let me know your experience with this utility (good, bad, or otherwise).
   </p>
        <img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=de7841fe-8493-4561-b614-eda582dc0432" />
      </body>
      <title>Test Management tool</title>
      <guid>http://www.breaman.net/blog/PermaLink,guid,de7841fe-8493-4561-b614-eda582dc0432.aspx</guid>
      <link>http://www.breaman.net/blog/PermaLink,guid,de7841fe-8493-4561-b614-eda582dc0432.aspx</link>
      <pubDate>Fri, 08 Dec 2006 04:10:34 GMT</pubDate>
      <description>&lt;p&gt;
   A while back I posted about the algorithm used for creating a test ID within VSTS
   Test Lists. I also made mention that I was writing a utility that allowed for basic
   test list management and unfortunately more time has passed between that post and
   me actually putting something out there for the community. In all honesty, this tool
   is very basic and I haven't had much time to work on it, but I hope it is feature
   complete enough to at least be usable by people wanting to create test lists for their
   build process.
&lt;/p&gt;
&lt;p&gt;
   When using this tool, the vsmdi file created must be at the solution root for the
   project (which is where VSTS puts it when they create it - this tool won't default
   to that location, but that is where it needs to be put). To create a test file, go
   to File-&amp;gt;New and create the test list file (name it with a .vsmdi extension). When
   the file gets created, there are three nodes in the tree view (Lists of Tests, Tests
   Not in a List, All Loaded Tests). To add test lists to the file, right click on the
   Lists of Tests node and select "New Test List...". Within the new window, type the
   name of the test list and click OK. Test lists can be nested and you can create as
   many test lists as you like, but they must only be created under the "Lists of Tests"
   node. To load up tests, select File-&amp;gt;Open and select .dll for the file filter.
   Navigate down to the location of your test assembly (test assemblies must be somewhere
   within the same directory tree as the vsmdi file)&amp;nbsp;and load the dll into the application.
   Select the All Loaded Tests node to view all the tests within the test assembly. Expand
   the Lists of Tests node and drag tests from the grid to the correct test list (the
   Test List field in the grid will get populated with the fully qualified location of
   the test). Select File-&amp;gt;Save to save off the vsmdi file and now this file should
   be usable by Team Build for your unit test execution during a build.
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://www.breaman.net/blog/files/testmanagement.zip"&gt;Here&lt;/a&gt; is the source
   for the management tool, hope you find it useful. If there are missing references,
   the location for the 2 files is C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
   and you will need Microsoft.VisualStudio.QualityTools.Common.dll and Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel.dll.
&lt;/p&gt;
&lt;p&gt;
   Please let me know your experience with this utility (good, bad, or otherwise).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=de7841fe-8493-4561-b614-eda582dc0432" /&gt;</description>
      <comments>http://www.breaman.net/blog/CommentView,guid,de7841fe-8493-4561-b614-eda582dc0432.aspx</comments>
      <category>.NET Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.breaman.net/blog/Trackback.aspx?guid=8072eed3-d77d-43f4-a1d1-912db30cb53c</trackback:ping>
      <pingback:server>http://www.breaman.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.breaman.net/blog/PermaLink,guid,8072eed3-d77d-43f4-a1d1-912db30cb53c.aspx</pingback:target>
      <dc:creator>myemail@myemail.com (Your DisplayName here!)</dc:creator>
      <wfw:comment>http://www.breaman.net/blog/CommentView,guid,8072eed3-d77d-43f4-a1d1-912db30cb53c.aspx</wfw:comment>
      <wfw:commentRss>http://www.breaman.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8072eed3-d77d-43f4-a1d1-912db30cb53c</wfw:commentRss>
      <slash:comments>35</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      A major problem facing people today is that their identity/information is not secure
      when dealing with the web. It is not that measures haven't been taken to protect the
      data as it is transferred from my web browser to the destination web server, in fact
      there are many encryption methods out there to make sure the data is safe as it goes
      across the wire, but the main problem seems to be between my brain and my keyboard.
      My data is safe as it is sent, but am I sending my data to the correct site? I know
      the data is secure since I see "https" in my address bar and the web page is
      "locked" but all that tells me is the site I am sending information to has a valid SSL
      certificate. I am still never blatantly told what site my data is going
      to (sure it is in the URL, but how many times have we seen valid URLs that are very
      cryptic). In fact, the people employing "phishing" tactics rely on me not knowing
      this piece of information. If I knew I wasn't actually sending my username and password
      to my actual bank site, I would never try to perform a log on.
   </p>
        <p>
      How do we get around this problem you ask. Well that is where <a href="http://www.identityblog.com" target="_blank">Kim
      Cameron's</a> work comes in to play with <a href="http://www.identityblog.com/?page_id=354" target="_blank">the
      Laws of Identity</a>. These are "laws" that were collaborately created which discuss
      what would generically be needed to ensure identity security.
   </p>
        <ol>
          <li>
         User Control and Consent - Technical identity systems must only reveal information
         identifying a user with the user's consent. 
      </li>
          <li>
         Minimal Disclosure for a Constrained Use - The solution which discloses the least
         amount of identifying information and best limits its use is the most stable long
         term solution. 
      </li>
          <li>
         Justifiable Parties - Digital identity systems must be designed so the disclosure
         of identifying information is limited to parties having a necessary and justifiable
         place in a given identity relationship. 
      </li>
          <li>
         Directed Identity - A universal identity system must support both "omni-directional"
         identifiers for use by public entities and "unidirectional" identifiers for use by
         private entities, thus facilitating discovery while preventing unnecessary release
         of correlation handles. 
      </li>
          <li>
         Pluralism of Operators and Technologies - A universal identity system must channel
         and enable the inter-working of multiple identity technologies run by multiple identity
         providers. 
      </li>
          <li>
         Human Integration - The universal identity metasystem must define the human user to
         be a component of the distributed system integrated through unambiguous human-machine
         communication mechanisms offing protection against identity attacks. 
      </li>
          <li>
         Consistent Experience Across Contexts - The unifying identity metasystem must guarantee
         its users a simple, consistent experience while enabling separation of contexts through
         multiple operators and technologies.</li>
        </ol>
        <p>
      So, how are these laws applied to the three major actors Relying Party, Identity Provider,
      and Identity Selector? Well, they always say a picture is worth a thousand words,
      so for brevity sake, here is a picture showing the communication flow between all
      3 parties.
   </p>
        <p>
          <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="537" src="http://www.breaman.net/blog/content/ExploringCardSpaceTheProblemSpace_A18A/HowCardSpaceWorks24.jpg" width="800" border="0" />
        </p>
        <p>
      Step 1 shows the client wanting to access a secure part on a website, requiring some
      sort of authentication. In the second step, the relying party (called a relying party
      since it relies on some information from the client) sends back to the client the
      information it is requesting (Law 2). The relying party must be a signed site (Law
      4) in order for this transaction to take place, so with the identity requirements,
      the site also sends back information about itself, notifying the user who is actually
      requesting this information (Law 3). Step 3 presents the user with identities that
      satisfy the requirements of the Relying Party and then in Step 4 the user actually
      selects an identity they would like to try and send (Law 1). Steps 5 and 6 create
      the security token to be presented to the Relying Party and then in Step 7 the
      user actually approves the final token created can be sent (Law 1 again). After being
      accepted by the user, in step 8 the token is finally sent to the Relying Party to
      finish off the security transaction. Law 6 is shown in both steps 4 and 7 where the
      user has control both before the identity token is created and then once again after
      it is created and before it is sent to the Relying Party. Laws 5 and 7 were never
      explicitly dealt with in this diagram, but Law 5 can kind of be shown if you take
      into consideration the fact that not every Relying Party, or Identity Provider, would
      want to use the exact same type of encryption and transport type.
   </p>
        <img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=8072eed3-d77d-43f4-a1d1-912db30cb53c" />
      </body>
      <title>Exploring CardSpace: The Problem Space</title>
      <guid>http://www.breaman.net/blog/PermaLink,guid,8072eed3-d77d-43f4-a1d1-912db30cb53c.aspx</guid>
      <link>http://www.breaman.net/blog/PermaLink,guid,8072eed3-d77d-43f4-a1d1-912db30cb53c.aspx</link>
      <pubDate>Thu, 09 Nov 2006 19:32:12 GMT</pubDate>
      <description>&lt;p&gt;
   A major problem facing people today is that their identity/information is not secure
   when dealing with the web. It is not that measures haven't been taken to protect the
   data as it is transferred from my web browser to the destination web server, in fact
   there are many encryption methods out there to make sure the data is safe as it goes
   across the wire, but the main problem seems to be between my brain and my keyboard.
   My data is safe as it is sent, but am I sending my data to the correct site? I know
   the data is secure since I see "https" in my address bar and&amp;nbsp;the web page is
   "locked" but all that tells me is the site I am sending information to has a valid&amp;nbsp;SSL
   certificate. I am still never blatantly&amp;nbsp;told&amp;nbsp;what site my data is going
   to (sure it is in the URL, but how many times have we seen valid URLs that are very
   cryptic). In fact, the people&amp;nbsp;employing "phishing" tactics rely on me not knowing
   this piece of information. If I knew I wasn't actually sending my username and password
   to my actual bank site, I would never try to perform a log on.
&lt;/p&gt;
&lt;p&gt;
   How do we get around this problem you ask. Well that is where &lt;a href="http://www.identityblog.com" target="_blank"&gt;Kim
   Cameron's&lt;/a&gt; work comes in to play with &lt;a href="http://www.identityblog.com/?page_id=354" target="_blank"&gt;the
   Laws of Identity&lt;/a&gt;. These are "laws" that were collaborately created which discuss
   what would generically&amp;nbsp;be needed&amp;nbsp;to ensure identity security.
&lt;/p&gt;
&lt;ol&gt;
   &lt;li&gt;
      User Control and Consent - Technical identity systems must only reveal information
      identifying a user with the user's consent. 
   &lt;li&gt;
      Minimal Disclosure for a Constrained Use - The solution which discloses the least
      amount of identifying information and best limits its use is the most stable long
      term solution. 
   &lt;li&gt;
      Justifiable Parties - Digital identity systems must be designed so the disclosure
      of identifying information is limited to parties having a necessary and justifiable
      place in a given identity relationship. 
   &lt;li&gt;
      Directed Identity - A universal identity system must support both "omni-directional"
      identifiers for use by public entities and "unidirectional" identifiers for use by
      private entities, thus facilitating discovery while preventing unnecessary release
      of correlation handles. 
   &lt;li&gt;
      Pluralism of Operators and Technologies - A universal identity system must channel
      and enable the inter-working of multiple identity technologies run by multiple identity
      providers. 
   &lt;li&gt;
      Human Integration - The universal identity metasystem must define the human user to
      be a component of the distributed system integrated through unambiguous human-machine
      communication mechanisms offing protection against identity attacks. 
   &lt;li&gt;
      Consistent Experience Across Contexts - The unifying identity metasystem must guarantee
      its users a simple, consistent experience while enabling separation of contexts through
      multiple operators and technologies.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
   So, how are these laws applied to the three major actors Relying Party, Identity Provider,
   and Identity Selector? Well, they always say a picture is worth a thousand words,
   so for brevity sake, here is a picture showing the communication flow between all
   3 parties.
&lt;/p&gt;
&lt;p&gt;
   &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="537" src="http://www.breaman.net/blog/content/ExploringCardSpaceTheProblemSpace_A18A/HowCardSpaceWorks24.jpg" width="800" border="0"&gt; 
&lt;/p&gt;
&lt;p&gt;
   Step 1 shows the client wanting to access a secure part on a website, requiring some
   sort of authentication. In the second step, the relying party (called a relying party
   since it relies on some information from the client) sends back to the client the
   information it is requesting (Law 2). The relying party must be a signed site (Law
   4)&amp;nbsp;in order for this transaction to take place, so with the identity requirements,
   the site also sends back information about itself, notifying the user who is actually
   requesting this information (Law 3). Step 3 presents the user with identities that
   satisfy the requirements of the Relying Party and then in Step 4 the user actually
   selects an identity they would like to try and send (Law 1). Steps 5 and 6 create
   the security token to be presented to the Relying Party&amp;nbsp;and then in Step 7 the
   user actually approves the final token created can be sent (Law 1 again). After being
   accepted by the user, in step 8 the token is finally sent to the Relying Party to
   finish off the security transaction. Law 6 is shown in both steps 4 and 7 where the
   user has control both before the identity token is created and then once again after
   it is created and before it is sent to the Relying Party. Laws 5 and 7 were never
   explicitly dealt with in this diagram, but Law 5 can kind of be shown if you&amp;nbsp;take
   into consideration the fact that not every Relying Party, or Identity Provider, would
   want to use the exact same type of encryption and transport type.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=8072eed3-d77d-43f4-a1d1-912db30cb53c" /&gt;</description>
      <comments>http://www.breaman.net/blog/CommentView,guid,8072eed3-d77d-43f4-a1d1-912db30cb53c.aspx</comments>
      <category>CardSpace</category>
    </item>
    <item>
      <trackback:ping>http://www.breaman.net/blog/Trackback.aspx?guid=8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17</trackback:ping>
      <pingback:server>http://www.breaman.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.breaman.net/blog/PermaLink,guid,8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17.aspx</pingback:target>
      <dc:creator>myemail@myemail.com (Your DisplayName here!)</dc:creator>
      <wfw:comment>http://www.breaman.net/blog/CommentView,guid,8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17.aspx</wfw:comment>
      <wfw:commentRss>http://www.breaman.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17</wfw:commentRss>
      <slash:comments>32</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      This is the first post of a series of posts in which I will be exploring the workings
      of CardSpace. When I use the term CardSpace here, I am meaning more than just
      the CardSpace client which ships with <a href="http://www.netfx3.com/" target="_blank">.NET
      3.0, </a>I am actually referring to the complete 3 party system (the Relying
      Party, the Identity Provider, and the Identity Selector - more on these three parts
      later). I had the privilege to speak on this topic at our local <a href="http://sug.dotnetprogramming.com/" target="_blank">user
      group</a> and instead of just posting my notes up to the site there (which would make
      it available only to members), I have decided to create some rolling blog articles
      instead.
   </p>
        <p>
      This is going to be a work in progress and a learning process for me at the same
      time, so if you read any sections along the way and have input or corrections, please
      feel free to leave comments and I will update the text (as well as leave the comment
      in place). My goal for this series is to not only create a decent place to look when
      trying to get up and running with CardSpace, but also a resource to look at when trying
      to dive deeper into each individual aspect as well.
   </p>
        <img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17" />
      </body>
      <title>Exploring CardSpace</title>
      <guid>http://www.breaman.net/blog/PermaLink,guid,8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17.aspx</guid>
      <link>http://www.breaman.net/blog/PermaLink,guid,8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17.aspx</link>
      <pubDate>Thu, 09 Nov 2006 15:47:04 GMT</pubDate>
      <description>&lt;p&gt;
   This is the first post of a series of posts in which I will be exploring the&amp;nbsp;workings
   of CardSpace.&amp;nbsp;When I use the term CardSpace here, I am meaning more than just
   the CardSpace client which ships with &lt;a href="http://www.netfx3.com/" target="_blank"&gt;.NET
   3.0,&amp;nbsp;&lt;/a&gt;I am actually&amp;nbsp;referring to the complete 3 party system (the Relying
   Party, the Identity Provider, and the Identity Selector - more on these three parts
   later). I had the privilege to speak on this topic at our local &lt;a href="http://sug.dotnetprogramming.com/" target="_blank"&gt;user
   group&lt;/a&gt; and instead of just posting my notes up to the site there (which would make
   it available only to members), I have decided to create some rolling blog articles
   instead.
&lt;/p&gt;
&lt;p&gt;
   This is going to be&amp;nbsp;a work in progress and a learning process for me at the same
   time, so if you read any sections along the way and have input or corrections, please
   feel free to leave comments and I will update the text (as well as leave the comment
   in place). My goal for this series is to not only create a decent place to look when
   trying to get up and running with CardSpace, but also a resource to look at when trying
   to dive deeper into each individual aspect as well.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17" /&gt;</description>
      <comments>http://www.breaman.net/blog/CommentView,guid,8b7f2563-5a98-4cba-b7d4-32bd1ba7bc17.aspx</comments>
      <category>CardSpace</category>
    </item>
    <item>
      <trackback:ping>http://www.breaman.net/blog/Trackback.aspx?guid=9d861cbf-849d-44d5-8639-a454e398fd8e</trackback:ping>
      <pingback:server>http://www.breaman.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.breaman.net/blog/PermaLink,guid,9d861cbf-849d-44d5-8639-a454e398fd8e.aspx</pingback:target>
      <dc:creator>myemail@myemail.com (Your DisplayName here!)</dc:creator>
      <wfw:comment>http://www.breaman.net/blog/CommentView,guid,9d861cbf-849d-44d5-8639-a454e398fd8e.aspx</wfw:comment>
      <wfw:commentRss>http://www.breaman.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9d861cbf-849d-44d5-8639-a454e398fd8e</wfw:commentRss>
      <slash:comments>41</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      After playing with Visual Studio Team System for a while, the biggest draw back I
      have seen so far in the Developer SKU is that I can't get my unit tests to run with
      a build. A team build requires a test list and the only way to create a test list
      is through Test Manager and that is only available in the Tester SKU. Fortunately,
      I have Team Suite so I was able to create a test list, but the downside is that where
      I work, I am one of the only people with Team Suite, so every time a developer creates
      a new unit test, I am the lucky one who gets to add it to the list. After doing this
      a couple of times, I found it got old very fast, so I started to look at the vsmdi
      file that contains the test information and found it was a pretty simple xml file.
      The simplicity ended very quickly, though, when I found the Guid created for each
      test in the list is not just generated with Guid.NewGuid(). I did some hunting on
      the web to figure out how this Guid is created, but came up empty, so I decided it
      was time to bring out my old friend ILDasm and see what happens under the covers.
      For anyone interested (and I can't guarantee it will stay like this since the code
      was not in a publicly exposed API), the below method will generate the correct Guid
      for a test (where FullName is the fully qualified name of the method &lt;Namespace&gt;.&lt;Class&gt;.&lt;Method&gt;
      - since test methods never take parameters, method overloading is not an issue).
   </p>
        <font color="#0000ff" size="2">
          <p>
      private
   </p>
        </font>
        <font color="#000000" size="2">
        </font>
        <font color="#008080" size="2">Guid</font>
        <font size="2">
          <font color="#000000"> GuidFromString()<br /></font>{<br />
      </font>
        <font color="#008080" size="2">SHA1CryptoServiceProvider</font>
        <font size="2"> provider
   = </font>
        <font color="#0000ff" size="2">new</font>
        <font size="2">
        </font>
        <font color="#008080" size="2">SHA1CryptoServiceProvider</font>
        <font size="2">();<br />
      </font>
        <font color="#0000ff" size="2">byte</font>
        <font size="2">[] buffer1
   = provider.ComputeHash(</font>
        <font color="#008080" size="2">Encoding</font>
        <font size="2">.Unicode.GetBytes(FullName));<br />
      </font>
        <font color="#0000ff" size="2">byte</font>
        <font size="2">[] buffer2
   = </font>
        <font color="#0000ff" size="2">new</font>
        <font size="2">
        </font>
        <font color="#0000ff" size="2">byte</font>
        <font size="2">[0x10];<br />
      </font>
        <font color="#008080" size="2">Array</font>
        <font size="2">.Copy(buffer1,
   buffer2, 0x10);<br /><br />
      </font>
        <font color="#0000ff" size="2">return</font>
        <font size="2">
        </font>
        <font color="#0000ff" size="2">new</font>
        <font size="2">
        </font>
        <font color="#008080" size="2">Guid</font>
        <font size="2">(buffer2);<br />
   }</font>
        <p>
      I am still in the process of creating an application that will create test lists like
      what is created with the Tester SKU, but I wanted to post this in case other people
      are struggling to find the same algorithm for their needs.
   </p>
        <img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=9d861cbf-849d-44d5-8639-a454e398fd8e" />
      </body>
      <title>VSTS Test List Management</title>
      <guid>http://www.breaman.net/blog/PermaLink,guid,9d861cbf-849d-44d5-8639-a454e398fd8e.aspx</guid>
      <link>http://www.breaman.net/blog/PermaLink,guid,9d861cbf-849d-44d5-8639-a454e398fd8e.aspx</link>
      <pubDate>Thu, 26 Oct 2006 17:12:04 GMT</pubDate>
      <description>&lt;p&gt;
   After playing with Visual Studio Team System for a while, the biggest draw back I
   have seen so far in the Developer SKU is that I can't get my unit tests to run with
   a build. A team build requires a test list and the only way to create a test list
   is through Test Manager and that is only available in the Tester SKU. Fortunately,
   I have Team Suite so I was able to create a test list, but the downside is that where
   I work, I am one of the only people with Team Suite, so every time a developer creates
   a new unit test, I am the lucky one who gets to add it to the list. After doing this
   a couple of times, I found it got old very fast, so I started to look at the vsmdi
   file that contains the test information and found it was a pretty simple xml file.
   The simplicity ended very quickly, though, when I found the Guid created for each
   test in the list is not just generated with Guid.NewGuid(). I did some hunting on
   the web to figure out how this Guid is created, but came up empty, so I decided it
   was time to bring out my old friend ILDasm and see what happens under the covers.
   For anyone interested (and I can't guarantee it will stay like this since the code
   was not in a publicly exposed API), the below method will generate the correct Guid
   for a test (where FullName is the fully qualified name of the method &amp;lt;Namespace&amp;gt;.&amp;lt;Class&amp;gt;.&amp;lt;Method&amp;gt;
   - since test methods never take parameters, method overloading is not an issue).
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
   private
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Guid&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; GuidFromString()&lt;br&gt;
&lt;/font&gt;{&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#008080 size=2&gt;SHA1CryptoServiceProvider&lt;/font&gt;&lt;font size=2&gt; provider
= &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;SHA1CryptoServiceProvider&lt;/font&gt;&lt;font size=2&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;[] buffer1
= provider.ComputeHash(&lt;/font&gt;&lt;font color=#008080 size=2&gt;Encoding&lt;/font&gt;&lt;font size=2&gt;.Unicode.GetBytes(FullName));&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;[] buffer2
= &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;byte&lt;/font&gt;&lt;font size=2&gt;[0x10];&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Array&lt;/font&gt;&lt;font size=2&gt;.Copy(buffer1,
buffer2, 0x10);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;return&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Guid&lt;/font&gt;&lt;font size=2&gt;(buffer2);&lt;br&gt;
}&lt;/font&gt;&gt;
&lt;p&gt;
   I am still in the process of creating an application that will create test lists like
   what is created with the Tester SKU, but I wanted to post this in case other people
   are struggling to find the same algorithm for their needs.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=9d861cbf-849d-44d5-8639-a454e398fd8e" /&gt;</description>
      <comments>http://www.breaman.net/blog/CommentView,guid,9d861cbf-849d-44d5-8639-a454e398fd8e.aspx</comments>
      <category>.NET Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.breaman.net/blog/Trackback.aspx?guid=27222b0a-8979-43b0-aa20-19557ac9d224</trackback:ping>
      <pingback:server>http://www.breaman.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.breaman.net/blog/PermaLink,guid,27222b0a-8979-43b0-aa20-19557ac9d224.aspx</pingback:target>
      <dc:creator>myemail@myemail.com (Your DisplayName here!)</dc:creator>
      <wfw:comment>http://www.breaman.net/blog/CommentView,guid,27222b0a-8979-43b0-aa20-19557ac9d224.aspx</wfw:comment>
      <wfw:commentRss>http://www.breaman.net/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=27222b0a-8979-43b0-aa20-19557ac9d224</wfw:commentRss>
      <slash:comments>28</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Recently I switched roles where I work and we have started to use BizTalk quite extensively
      for our current project. We have also made the move to Team Foundation Server and
      VSTS and I got the great responsibility of getting our build system up and running.
      Now out of the box, Team Foundation Server has a great build story, but we had the
      requirement of being able to deploy our BizTalk application to a remote server and
      start the application as well. BTSTask.exe took care of 80% of that functionality
      by being able to add and remove an application and the resources for the application,
      as well as import bindings that exist within an XML file, but one thing I couldn't
      seem to find was how to start and stop a BizTalk application from the command line.
      Luckily BTSTask itself was a .NET application and since I am not afraid of ILDASM,
      I decided to take a look and see how BTSTask worked under the covers. One thing to
      warn you about is that all the documentation for the classes that are used within
      BTSTask (and also in the source code below) have the claim at the top stating the
      classes should not be used externally and are purely for internal BizTalk use. Overall,
      the program was pretty simple. I know there is not really any error handling or anything
      like that and the command line parsing probably isn't the most robust, but the command
      line syntax is very similar to what already exists for BTSTask and since the code
      is pasted below, you are more than welcome to modify it any way you would like.
   </p>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">using</span> System;<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">using</span> System.Collections.Generic;<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">using</span> System.Text;<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">using</span> Microsoft.BizTalk.ExplorerOM;<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">namespace</span> BizTalkApplicationManagement<br />
      {<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">   class</span> Program<br />
         {<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">      private</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> DatabaseName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"BizTalkMgmtDb"</span>;<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">      private</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> DatabaseServer <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"."</span>;<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">      private</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> ApplicationName;<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">      private</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">bool</span> Start <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">false</span>;<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">      static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">void</span> Main(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>[]
      args)<br />
            {<br />
               ParseCommandLine(args);<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">         if</span> (ApplicationName
      == <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">null</span>)<br />
               {<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            throw</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> ApplicationException(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"ApplicationName
      must be passed in"</span>);<br />
               }<br /><br />
               Microsoft.BizTalk.ApplicationDeployment.Group
      myGroup <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> Microsoft.BizTalk.ApplicationDeployment.Group();<br />
               Application application;<br /><br />
               myGroup.DBName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> DatabaseName;<br />
               myGroup.DBServer <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> DatabaseServer;<br />
               BtsCatalogExplorer explorer <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> (BtsCatalogExplorer)myGroup.CreateInstance(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">typeof</span>(BtsCatalogExplorer));<br />
               ApplicationCollection applications <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> explorer.Applications;<br />
               application <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> applications[ApplicationName];<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">         if</span> (application
      !<span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">null</span>)<br />
               {<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            if</span> (Start)<br />
                  {<br />
                     application.Start(ApplicationStartOption.StartAll);<br />
                  }<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            else</span><br />
                  {<br />
                     application.Stop(Microsoft.BizTalk.ExplorerOM.ApplicationStopOption.StopAll);<br />
                  }<br />
                  explorer.SaveChanges();<br />
                  explorer.Refresh();<br />
               }<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">         else</span><br />
               {<br />
                  Console.WriteLine(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"{0}
      does not exist in database [{1}] on server [{2}]"</span>, ApplicationName, DatabaseName,
      DatabaseServer);<br />
               }<br />
            }<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">      static</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">void</span> ParseCommandLine(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span>[]
      args)<br />
            {<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">         foreach</span> (<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> currentParam <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">in</span> args)<br />
               {<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            if</span> (currentParam.ToLower()
      == <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"start"</span>)<br />
                  {<br />
                     Start <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">true</span>;<br />
                  }<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            else</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (currentParam.ToLower()
      == <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"stop"</span>)<br />
                  {<br />
                     Start <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">false</span>;<br />
                  }<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            else</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (currentParam.ToLower().Contains(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"applicationname"</span>))<br />
                  {<br />
                     ApplicationName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> currentParam.Split(':')[1];<br />
                  }<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            else</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (currentParam.ToLower().Contains(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"server"</span>))<br />
                  {<br />
                     DatabaseServer <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> currentParam.Split(':')[1];<br />
                  }<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">            else</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (currentParam.ToLower().Contains(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"database"</span>))<br />
                  {<br />
                     DatabaseName <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> currentParam.Split(':')[1];<br />
                  }<br />
               }<br />
            }<br />
         }<br />
      }<br /></span>
        </p>
        <p>
          <font size="2">You will need to add references to Microsoft.BizTalk.Admin.dll, Microsoft.BizTalk.ApplicationDeployment.Engine.dll,
      Microsoft.BizTalk.ExplorerOM.dll, and Microsoft.EnterpriseServices.dll.</font>
        </p>
        <p>
          <font size="2">From the command line, you would then start an application like so:<br />
      BizTalkApplicationManagement Start -ApplicationName:&lt;NameOfBizTalkApplication&gt;
      -Server:&lt;Server&gt; -Database:&lt;BizTalkMgmtDb&gt;</font>
          <font size="2">
          </font>
        </p>
        <img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=27222b0a-8979-43b0-aa20-19557ac9d224" />
      </body>
      <title>Start and Stop Biztalk 2006 Applications</title>
      <guid>http://www.breaman.net/blog/PermaLink,guid,27222b0a-8979-43b0-aa20-19557ac9d224.aspx</guid>
      <link>http://www.breaman.net/blog/PermaLink,guid,27222b0a-8979-43b0-aa20-19557ac9d224.aspx</link>
      <pubDate>Thu, 04 May 2006 18:47:15 GMT</pubDate>
      <description>&lt;p&gt;
   Recently I switched roles where I work and we have started to use BizTalk quite extensively
   for our current project. We have also made the move to Team Foundation Server and
   VSTS and I got the great responsibility of getting our build system up and running.
   Now out of the box, Team Foundation Server has a great build story, but we had the
   requirement of being able to deploy our BizTalk application to a remote server and
   start the application as well. BTSTask.exe took care of 80% of that functionality
   by being able to add and remove an application and the resources for the application,
   as well as import bindings that exist within an XML file, but one thing I couldn't
   seem to find was how to start and stop a BizTalk application from the command line.
   Luckily BTSTask itself was a .NET application and since I am not afraid of ILDASM,
   I decided to take a look and see how BTSTask worked under the covers. One thing to
   warn you about is that all the documentation for the classes that are used within
   BTSTask (and also in the source code below) have the claim at the top stating the
   classes should not be used externally and are purely for internal BizTalk use. Overall,
   the program was pretty simple. I know there is not really any error handling or anything
   like that and the command line parsing probably isn't the most robust, but the command
   line syntax is very similar to what already exists for BTSTask and since the code
   is pasted below, you are more than welcome to modify it any way you would like.
&lt;/p&gt;
&lt;p&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; System;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; System.Text;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;using&lt;/span&gt; Microsoft.BizTalk.ExplorerOM;&lt;br&gt;
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;namespace&lt;/span&gt; BizTalkApplicationManagement&lt;br&gt;
   {&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&lt;/span&gt; Program&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; DatabaseName &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"BizTalkMgmtDb"&lt;/span&gt;;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; DatabaseServer &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"."&lt;/span&gt;;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; ApplicationName;&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;bool&lt;/span&gt; Start &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;false&lt;/span&gt;;&lt;br&gt;
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;void&lt;/span&gt; Main(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;[]
   args)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ParseCommandLine(args);&lt;br&gt;
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/span&gt; (ApplicationName
   == &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;null&lt;/span&gt;)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; ApplicationException(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"ApplicationName
   must be passed in"&lt;/span&gt;);&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.BizTalk.ApplicationDeployment.Group
   myGroup &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; Microsoft.BizTalk.ApplicationDeployment.Group();&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application application;&lt;br&gt;
   &lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myGroup.DBName &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; DatabaseName;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myGroup.DBServer &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; DatabaseServer;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BtsCatalogExplorer explorer &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; (BtsCatalogExplorer)myGroup.CreateInstance(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;typeof&lt;/span&gt;(BtsCatalogExplorer));&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApplicationCollection applications &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; explorer.Applications;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;application &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; applications[ApplicationName];&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/span&gt; (application
   !&lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;null&lt;/span&gt;)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/span&gt; (Start)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;application.Start(ApplicationStartOption.StartAll);&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt;
   &lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;application.Stop(Microsoft.BizTalk.ExplorerOM.ApplicationStopOption.StopAll);&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;explorer.SaveChanges();&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;explorer.Refresh();&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt;
   &lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"{0}
   does not exist in database [{1}] on server [{2}]"&lt;/span&gt;, ApplicationName, DatabaseName,
   DatabaseServer);&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;void&lt;/span&gt; ParseCommandLine(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt;[]
   args)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&lt;/span&gt; (&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; currentParam &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;in&lt;/span&gt; args)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/span&gt; (currentParam.ToLower()
   == &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"start"&lt;/span&gt;)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Start &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;true&lt;/span&gt;;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (currentParam.ToLower()
   == &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"stop"&lt;/span&gt;)&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Start &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;false&lt;/span&gt;;&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (currentParam.ToLower().Contains(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"applicationname"&lt;/span&gt;))&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ApplicationName &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; currentParam.Split(':')[1];&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (currentParam.ToLower().Contains(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"server"&lt;/span&gt;))&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DatabaseServer &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; currentParam.Split(':')[1];&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (currentParam.ToLower().Contains(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"database"&lt;/span&gt;))&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DatabaseName &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; currentParam.Split(':')[1];&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
   }&lt;br&gt;
   &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font size=2&gt;You will need to add references to Microsoft.BizTalk.Admin.dll, Microsoft.BizTalk.ApplicationDeployment.Engine.dll,
   Microsoft.BizTalk.ExplorerOM.dll, and Microsoft.EnterpriseServices.dll.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
   &lt;font size=2&gt;From the command line, you would then start an application like so:&lt;br&gt;
   BizTalkApplicationManagement Start -ApplicationName:&amp;lt;NameOfBizTalkApplication&amp;gt;
   -Server:&amp;lt;Server&amp;gt; -Database:&amp;lt;BizTalkMgmtDb&amp;gt;&lt;/font&gt;&lt;font size=2&gt;
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.breaman.net/blog/aggbug.ashx?id=27222b0a-8979-43b0-aa20-19557ac9d224" /&gt;</description>
      <comments>http://www.breaman.net/blog/CommentView,guid,27222b0a-8979-43b0-aa20-19557ac9d224.aspx</comments>
      <category>.NET Programming;BizTalk 2006</category>
    </item>
  </channel>
</rss>