<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Infosys | Microsoft</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/" />
    <link rel="self" type="application/atom+xml" href="http://infosysblogs.com/microsoft/atom.xml" />
   <id>tag:infosysblogs.com,2009:/microsoft/1</id>
    <link rel="service.post" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1" title="Infosys | Microsoft" />
    <updated>2009-01-02T05:44:45Z</updated>
    <subtitle>Infosys Microsoft Alliance and Solutions blog</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2ysb5-20051201</generator>
 
<entry>
    <title>Creating Parent – Child Blueprints</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2009/01/creating_parent_child_blueprin.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=333" title="Creating Parent – Child Blueprints" />
    <id>tag:infosysblogs.com,2009:/microsoft//1.333</id>
    
    <published>2009-01-02T05:28:08Z</published>
    <updated>2009-01-02T05:44:45Z</updated>
    
    <summary>Today we will see how to relate one blueprint with another as parent-child. This is very useful feature which Blueprints provides as it makes sure user has unfolded parent blueprint first before using child blueprint. It also helps to relate blueprints according to their functionalities. We can even control unfolding of child blueprint either along with parent blueprint or separate.</summary>
    <author>
        <name>Archana Sachin Ghag</name>
        
    </author>
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Software Factory" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        Today we will see how to relate one blueprint with another as parent-child. This is very useful feature which Blueprints provides as it makes sure user has unfolded parent blueprint first before using child blueprint. It also helps to relate blueprints according to their functionalities. We can even control unfolding of child blueprint either along with parent blueprint or separate.
        <![CDATA[<p>Steps to add related blueprint are very easy and straight forward.</p><p>First of all create two blueprints which you want to relate with each other. Suppose we have two blueprints named ParentBlueprint and ChildBlueprint.</p><p><strong>Build both these blueprints</strong>. This step is important before defining relationship between two Blueprints as build process generates GUIDs which are required for parent-child blueprints relationship.</p><p>Now right click ParentBlueprint and open menu Blueprints -&gt;&ldquo;Edit Configuration&rdquo;. Go to tab &ldquo;Related Blueprints&rdquo; in this and &ldquo;Add&rdquo; related Blueprint information for ChildBlueprint.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img height="289" src="http://infosysblogs.com/microsoft/CreatingParentChildBlueprints/Image01.JPG" width="511" align="left" border="0" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p><br />&nbsp;</p><p><br />&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>The information which needs to be provided is as follows.</p><ul><li><strong>Description</strong>: As name suggests it is description for related blueprint. In example we have taken it is &ldquo;Child Blueprint&rdquo;.</li><li><strong>Workflow GUID</strong>: This is GUID which is used by Child Blueprint for showing WorkFlow command. You can get value of this command GUID from file &ldquo;Commands.xml&rdquo; in &ldquo;Properties&rdquo; folder of ChildBlueprint project.<br />Command which is used for WorkFlow looks like </li></ul><p><img height="94" src="http://infosysblogs.com/microsoft/CreatingParentChildBlueprints/Image02.JPG" width="562" align="left" border="0" /></p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;</p><p>Note that these entries are automatically added when you build blueprint. So building is necessay to get this GUID.</p><ul><li><strong>Unfold GUID</strong>: This is GUID which is used by Child Blueprint for unfolding project using Blueprint. You can get value of this command GUID from file &ldquo;Commands.xml&rdquo; in &ldquo;Properties&rdquo; folder of ChildBlueprint project.<br />Command which is used for Unfold looks like </li></ul><p>&nbsp;<img height="111" src="http://infosysblogs.com/microsoft/CreatingParentChildBlueprints/Image03.JPG" width="581" align="left" border="0" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><ul><li><strong>Unfold</strong>: If this is true Child blueprint will get unfolded automatically whenever Parent Blueprint is unfolded.</li><li><strong>Dependent</strong>: if this is true Child Blueprint is marked to be dependent on Parent Blueprint.</li></ul><p>Build ParentBlueprint now and you should see Parent-Child relation in Blueprint Manager as follows.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p><img height="256" src="http://infosysblogs.com/microsoft/CreatingParentChildBlueprints/Image04.JPG" width="510" align="left" border="0" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;</p>]]>
    </content>
</entry>
<entry>
    <title>Is Oslo going to make the role of developer obsolete?</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2009/01/is_oslo_going_to_make_the_role.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=332" title="Is Oslo going to make the role of developer obsolete?" />
    <id>tag:infosysblogs.com,2009:/microsoft//1.332</id>
    
    <published>2009-01-02T03:58:48Z</published>
    <updated>2009-01-02T04:08:31Z</updated>
    
    <summary><![CDATA[Check&nbsp;a lively discussion on&nbsp;stackoverflow at http://stackoverflow.com/questions/270401/is-oslo-going-to-make-the-role-of-developer-obsoleteOnce in every few years we come across vendors who make such bold predictions. In this case MS has not made any such predictions but hysteria is already being generated in the community. My opinion...]]></summary>
    <author>
        <name>Naveen Kumar</name>
        
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p>Check&nbsp;a lively discussion on&nbsp;stackoverflow at <a href="http://stackoverflow.com/questions/270401/is-oslo-going-to-make-the-role-of-developer-obsolete">http://stackoverflow.com/questions/270401/is-oslo-going-to-make-the-role-of-developer-obsolete</a></p><p>Once in every few years we come across vendors who make such bold predictions. In this case MS has not made any such predictions but hysteria is already being generated in the community. </p><p>My opinion is Oslo kind of technology and integrated tools are&nbsp;a way forward in the software engineering and would make developer job&nbsp;easier. These tools would help us focus on solving unsolved problems instead of solving the repetitive problems many a times.&nbsp;</p><p>What do you think?</p>]]>
        
    </content>
</entry>
<entry>
    <title>Unfolding Multiple Projects using Blueprints</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/12/unfolding_multiple_projects_us_1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=331" title="Unfolding Multiple Projects using Blueprints" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.331</id>
    
    <published>2008-12-31T10:21:08Z</published>
    <updated>2008-12-31T12:10:57Z</updated>
    
    <summary>In this blog we will see how to unfold multiple projects using Microsoft Blueprints. Unfolding default project or single project is quite easy. We will start with default and single project first and then see what extra needs to be done for multiple projects.</summary>
    <author>
        <name>Archana Sachin Ghag</name>
        
    </author>
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Software Factory" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<span><span><span><p><span>In this blog we will see how to unfold multiple projects using Microsoft Blueprints. Unfolding default project or single project is quite easy. We will start with default and single project first and then see what extra needs to be done for multiple projects.</span></p><span /><span><span><span><span><span><span><span><span><span><span><span><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p></span></span></span></span></span></span></span></span></span></span></span></span></span></span>]]>
        <![CDATA[<p><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span>When user selects blueprint which he/she needs to use and clicks unfold, .Net project gets unfolded in current solution. By default the structure of this unfolded project looks as follows&nbsp;</span>&nbsp;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><p><span><img height="102" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image01.JPG" width="189" align="left" border="0" /></span></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>How to specify this unfolded project according to our requirements? We will see this today where we will first unfold single project using blueprints and then extend it to unfold multiple projects.<br />To specify your own project template for blueprint, right click on Blueprint project and click &ldquo;Edit Configuration&rdquo; menu. You will see input &ldquo;Template&rdquo; here. By default value selected is &ldquo;Auto-generated&rdquo;.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><p><img height="404" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image02.JPG" width="595" align="left" border="0" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>You can choose option &ldquo;User supplied&rdquo; which allows you to specify which project template to be used for unfold action. Name of template file can be then entered in &ldquo;Template&rdquo; input textbox.<br />To create template file we will use utility provided by Visual Studio itself. Open the project for which template has to be created and select Menu File -&gt; Export Template. This will create corresponding template for project and put it in folder &ldquo;My Documents\Visual Studio 2008\My Exported Templates&rdquo;<br />Suppose we have created template for Windows Application project, and name of template file is &ldquo;WindowsApp.zip&rdquo;. Copy this file and put it Blueprint project&rsquo;s &ldquo;templates&rdquo; folder.</p><p><img height="170" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image03.JPG" width="200" align="left" border="0" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Also make sure you have given same file name for Template input using &ldquo;Edit Configuration&rdquo;.</p><p>&nbsp;<img height="44" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image04.JPG" width="563" align="left" border="0" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;Now Build Blueprint and see what it unfolds by opening another Visual Studio instance and using Blueprint manager. The unfolded project will be exactly same as what we have put in WindowsApp.zip template.</p><p><img height="208" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image05.JPG" width="283" align="left" border="0" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>All menus with visibility &ldquo;ThisProject&rdquo; will be enabled for this unfolded project.<br />So we have successfully unfolded single project using blueprint. Steps were very straight forward and easy. Now let&rsquo;s see how to unfold multiple project using blueprints. We will use already created project template &ldquo;WindowsApp.zip&rdquo; as first project template and will create new project template for class library say &ldquo;ClassLib.zip&rdquo;.<br />Now let&rsquo;s target to unfold both these projects together using blueprints. Steps are as follows</p><ul><li>Make new folder &ldquo;WinSols&rdquo; in templates directory of blueprint. </li><li>Unzip &ldquo;WindowsApp.zip&rdquo; and &ldquo;ClassLib.zip&rdquo; inside &ldquo;WinSols&rdquo; folder. </li><li>Add file &ldquo;MyTemplate.vstemplate&rdquo; in &ldquo;WinSols&rdquo; folder.</li><li>Edit file &ldquo;MyTemplate.vstemplate&rdquo; so that it contains information which projects to unfold when this template is used. We will use &ldquo;ProjectCollection&rdquo; tag to specify multiple projects. File will look like this</li></ul><p><img height="293" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image08.JPG" width="558" border="0" /></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><ul><li>Now select all files in &ldquo;WinSols&rdquo; folder by selecting &ldquo;MyTemplate.vstemplate&rdquo; first and say &ldquo;Add to Zip&rdquo;.</li><li>Zip file &ldquo;WinSols.zip&rdquo; will be created. Put this file in templates folder of Blueprints which should be visible from Solution Explorer too.</li><li>Specify now &ldquo;Winsols.zip&rdquo; as template file name using &ldquo;Edit Configuration&rdquo; dialog of blueprint.</li><li>Rebuild blueprint and see what it unfolds now using second visual studio instance and Blueprint Manager. Unfolded projects look like</li></ul><span>&nbsp;<img src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image07.JPG" border="0" /></span><span> <p>But now if you right click on any of above projects, you won&rsquo;t be getting menu &ldquo;Blueprints&rdquo;. But this is not desired as then it loses main purpose of blueprints as workflow attached with blueprint is not accessible at all. Now here is a trick how to achieve this.<br />In steps we listed above for unfolding multiple projects, when you finish step 2 where we unzipped our multiple templates follow steps given below so that those projects get right click menu &ldquo;Blueprints&rdquo;.</p><ul><li>When you build blueprint project, build action creates file &ldquo;StartupGUID.xml&rdquo; in properties folder of blueprint. Note that this file is not visible in solution explorer and you need to browse for it in Windows explorer.</li><li>Open this file and you will see entry as follows</li></ul><p><img height="96" src="http://infosysblogs.com/microsoft/UnfoldingMultipleProjectsusingBlueprints/Image09.JPG" width="513" align="left" border="0" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Now this GUID is mainly used to associate unfolded project with specific blueprints. This only decides what menu should be available on unfolded project.</p><ul><li>Copy above ProjectExtensions tag and put it in both projects .csproj file. At the end (i.e. Classlib\Classlib.csproj and WindowsApp\WindowsApp.csproj). For this you need to open these files using Notepad.</li><li>Once you modified .csproj files repeat steps explained above from 3 and see if you are getting menu &ldquo;Blueprints&rdquo; now on unfolded projects. And all blueprint menus having &ldquo;ThisProject&rdquo; visibility will be available for them.</li></ul></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>]]>
    </content>
</entry>
<entry>
    <title>Financial implications of the Cloud</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/12/financial_implications_of_the.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=329" title="Financial implications of the Cloud" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.329</id>
    
    <published>2008-12-24T10:38:05Z</published>
    <updated>2008-12-25T06:48:23Z</updated>
    
    <summary>Cloud computing is a new style of computing which packages computing resources such as processing power, storage, connectivity etc as a service and delivering the same to the consumer in a scale-free, cost efficient and timely manner over the web....</summary>
    <author>
        <name>Sidharth Subhash Ghag</name>
        
    </author>
            <category term="Cloud Computing" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt">Cloud computing is a new style of computing which packages computing resources such as processing power, storage, connectivity etc as a service and delivering the same to the consumer in a scale-free, cost efficient and timely manner over the web. Applications get into production much quicker than the traditional models by which applications are provisioned. This entails a shift in the way applications would be built, executed and also managed in the future. </p><p class="MsoNormal" style="margin: 0in 0in 10pt">In an attempt to understand the financial implications of the new cloud based model used for deploying and running web applications over the traditional client server web application model a little better, we shall discuss this in the context of a hypothetical scenario which would highlight differences one would observe in both the cases.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>]]>
        <![CDATA[<p><span>A startup company that intends to have some web presence decides to build a self service web application which shall receive orders from their end customers. From a architectural perspective, they decided to build a simple data driven web application that is easily available over the internet to their customers.<span>&nbsp; </span>Let us assume that the application designed is a traditional 2 &ndash;tiered client server architecture representative as shown in the figure below:</span>&nbsp;</p><p><img height="92" alt="clientsrvr.jpg" src="http://infosysblogs.com/microsoft/clientsrvr.jpg" width="286" border="0" /></p>So what is it that is required to build an application which is available over the Internet? An attempt to mark out some of the key asks are in the list below and classified them under the various costing heads<strong><br /></strong><strong>Capital Expenditure<br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Construct a physical brick and mortar facility to host the servers including the cabling, USP/Generators to keep the server always ON </p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Procure a server grade hardware(s) for the client and server setup. In case you have availability requirements then you would have at the minimum two servers that bring in some redundancy to help achieve this. Additionally we would have to include redundant component such as NICs, UPS&rsquo;s, switches</p><p><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Software Licenses required to build High-Available web applications Windows Server OS&rsquo;s, NLB, firewalls and security solutions such as ISA</p><p><span><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>&nbsp;</span>Additional hardware and software cost required for setting up an available DNS server to<span>&nbsp; </span>resolve client requesting name resolution</p><p><span><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Provision a static IP from your ISP</p><p><span><span>6.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Database software licenses would have to be purchased</p><p><span><span>7.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Operations and Management software licenses such as MOM, backup facilities.</p><p><span><span>8.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Purchase a development system, assuming that you would want to have your development environment separate from the production site </p><p><span><span>9.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>At the minimum Win XP license for developers</p><p><span><span>10.<span>&nbsp;&nbsp; </span></span></span>Purchase the Visual studio licenses to develop the web application </p><p><span><span>11.<span>&nbsp;&nbsp; </span></span></span>Purchase the developer edition db license for the persistent storage</p><strong>Operational Cost<br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Registering your DNS addresses with ICANN</p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Per unit power charges for keeping the production systems always &lsquo;ON&rsquo;<span>&nbsp; </span>including power consumed by the hardware, air-conditioning</p><p><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Salaries to maintain and manage the infrastructure</p><strong>Non-Operational Costs:<br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Carbon tax for companies running their own data centers</p><strong>Opportunity Loss:<br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Sub-optimally utilized hardware</p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>More time to market involved mainly due to the time spend on procuring and provisioning the resources</p><p><span>&nbsp;</span>Now comparing this to an application which adopts to a cloud based architecture as shown in the figure below</p><p><img height="270" alt="cloudarch.jpg" src="http://infosysblogs.com/microsoft/cloudarch.jpg" width="473" border="0" /></p><p>&nbsp;</p><p>The costs which shall be incurred would include:</p><strong>Capital Expenditure:<br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Purchase a development system, assuming that you would want to have your development environment separate from the production site </p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>At the minimum Win XP license for developers</p><p><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Purchase the Visual studio licenses to develop the web application </p><strong>Operational Cost: <br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Per unit charge to use the cloud OS services which will execute the web application</p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Per unit charge to use the cloud db services</p><p>As can be seen a business has been able to considerably eliminate its capital expenditure on IT, resulting in tremendous savings. Savings allows firms to invest in its core business areas that would lead to revenue generation. Moreover in these times of economic recession, credit for businesses is not easily available; hence any savings that businesses can achieve will help them to have that much extra to run the business.</p><p>In addition to having direct financial implications in terms cost, the cloud platform also help in enhancing the Time to Market of software applications</p><strong><span>Time is Money<br /></span></strong><p>It&rsquo;s an old clich&eacute; we all know and understand, but to what extent do we see IT able to support businesses in applying this in principle. Businesses have lost out on opportunities simply because the systems which they have build over the past decade or so have now become inept or non-responsive to cater to the growing dynamics of the business. Their architectures do not allow them to adapt to the dynamically changing requirements or even for that matter be elastic to cater to fluctuating user demand. </p><strong>Some factors effecting an applications Time to Market:<br /></strong><p><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Time is spent on procuring or provisioning hardware or software while deploying a new application.</p><p><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Time is spent on procuring or provisioning additional hardware if existing applications have to handle any growth in business such as during mergers/acquisitions, seasonal or market.</p><span><p class="MsoNormal" style="margin: 0in 0in 10pt">The evolution of the Web, SOA and Virtualization technologies have now amalgamated to herald this new style of computing. The Cloud inherits the intrinsic traits of these three technologies which allow enterprises adapting to this new style of computing build applications which are available everywhere, become agile and elastic to meet fluctuating user demand. It not only extends existing on-premise/hosted applications but also gives opportunities to realize existing architectural patterns more easily or even discover new patterns in which applications get developed, provisioned and delivered. All this in a relatively shorter span of time as compared to the traditional approach of constructing and commisioning applications.</p></span>]]>
    </content>
</entry>
<entry>
    <title>Remote deployment of Clickonce application on IIS 7</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/12/remote_deployment_of_clickonce.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=327" title="Remote deployment of Clickonce application on IIS 7" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.327</id>
    
    <published>2008-12-15T09:48:24Z</published>
    <updated>2008-12-16T08:13:37Z</updated>
    
    <summary>Remote deployment of Clickonce application on IIS 7</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".NET Fwk 3.5" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        Recently I was working on a WPF application that was being used by our entire team and I used to keep releasing new builds frequently and it became an issue as I had to inform everyone of the new bits and then they would all install it again. So we decided to go ahead with clickonce type deployment for the application and for this purpose used the wizard that is accessible from the project properties in VS 2008. 
        <![CDATA[<p>It was pretty trivial exercise to create a virtual directory on IIS and then publish the application and all was well. Then we hit an issue that since I was working of a laptop, when I was not in office, others could not install the updates. No rocket science in this that we then moved the installer (the published version) to a server and shared the new URL. </p><p>Everything was working fine till earlier today when a new person was trying to install the application and she got an error, which said that the particular .application (the manifest) file could not be accessed. What was surprising was the path that was shown in the error was actually pointing to my laptop and not to the server machine. It was only then I realized that when I publish a clickonce application, the URL is embedded inside the manifest file and when I just copied the files to server, it wasn't actually running from the server, but still was running off my laptop. </p><p>I opened the .application file in VS and saw that the codebase attribute of deploymentProvider element was pointing to the earlier published URL (laptop's IIS). I modified this and saved the file again, but now accessing the application actually resulted in corrupt manifest error. I haven't checked the details, but most likely when the .application file is built some checksum/hash value is also embedded inside the file. There is a hash element in the file which seems to indicate this. Since I directly modified the file, the file data and hash value were no longer in synch and hence the corrupt manifest error. </p><p>So I went back to the project in VS 2008 and tried publishing from it directly to the remote location. For this purpose, I set the URL to point to the remote machine's virtual directory that I had created for this purpose. Note that the remote machine was a Vista box and hence it was on IIS 7 that I was publishing the application. I got an error that essentially stated that the remote web site didn't had FrontPage Server Extensions (FPSE) and hence publishing failed. In IIS 7 I could not see any option to install FPSE also and somehow it didn't make sense.</p><p>A bit of search online and I got some hints from <a target="_blank" href="http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.aspnet/2007-07/msg02420.html">this site</a>&nbsp;and accordingly I picked deployment to physical file folder and gave the URL in the &quot;Installation Folder URL&quot; field as seen in the figure below.</p><p><img width="594" height="364" border="0" src="http://infosysblogs.com/microsoft/clickonce.jpg" alt="clickonce.jpg" />&nbsp;</p><p>With this the publishing happened without any more errors and the person was also able to intall the application without any issues. </p>]]>
    </content>
</entry>
<entry>
    <title>Silverlight Toolkit: Support for UX Design</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/12/new_silverlight_toolkit_suppor.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=326" title="Silverlight Toolkit: Support for UX Design" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.326</id>
    
    <published>2008-12-12T21:17:53Z</published>
    <updated>2008-12-15T19:09:59Z</updated>
    
    <summary>Silverlight Toolkit’ is a collection of Silverlight controls, components and utilities made available outside the normal Silverlight release cycle. It adds new functionality quickly for designers and developers, and provides the community an efficient way to help shape product development by contributing ideas and bug reports. It includes full source code, unit tests, samples and documentation for 12 new controls covering charting, styling, layout, and user input. The December 2008 release has some interesting improvements and features that should excite Designers.</summary>
    <author>
        <name>Chandan Gokhale</name>
        
    </author>
            <category term="Microsoft Design Technologies" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p><span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">As stated on the Codeplex <a href="http://www.codeplex.com/Silverlight">link</a>, </span><span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Segoe UI'">the &lsquo;Silverlight Toolkit&rsquo; is a collection of Silverlight controls, components and utilities made available outside the normal Silverlight release cycle. </span></p><span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Segoe UI'">It adds new functionality quickly for designers and developers, and provides the community an efficient way to help shape product development by contributing ideas and bug reports. It includes full source code, unit tests, samples and documentation for 12 new controls covering charting, styling, layout, and user input. The December 2008 release has some interesting improvements and features that should excite Designers. </span>]]>
        <![CDATA[<p><span>The features in the toolkit are organized into three categories: Controls, Charting and Theming. </span></p><span><p><br /><span>On the controls side, it is great to see versatile controls like Expanders and Treeview available for use in Silverlight projects. Both these controls offer flexible and space-saving information organization capability and are very popular with Information Architects and interaction Designers.</span></p></span><span><p><br /><span>Charting controls seem to be rather basic and we will have to watch if they add to this control set to allow for a lot more flexibility in the types of charts and visualizations we can build. I have not had a chance to actually build some examples using these controls, but none the less this looks like a good start.</span></p></span><span><p><br /><span>What should excite the designers the most is the capabilities related to theming. <span>My colleague Atul <a href="http://infosysblogs.com/microsoft/2008/11/silverlight_theming.html"><span>blogged</span></a> about theming a few days back.</span>The Toolkit includes an assortment of themes to make your applications stand out and improve the overall look-and-feel of your Silverlight UI. <span>&nbsp;</span>See the overview on <a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;referringTitle=Home">Theming</a> for more information. Some of the themes like ExpressionDark, ExpressionLight and ShinyRed look good enough to use on professional sites.<span>&nbsp; </span>But my own experience of using them was mixed as in some instances, use of these themes on more complex layout of UI controls resulted in the original layouts getting distorted.</span></p></span><p><span><br /></span><span>Another interesting tool for designers is the ImplicitStyleManage. </span><span>It encapsulates an attached behavior that propagates styles in a framework element's associated resource dictionary to its children. The class also provides attached properties that allow the resource dictionary to be loaded from an external source.<span><br /></span></span><span><span>ItIt&nbsp;is important to keep in mind that controls like <span><a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&amp;referringTitle=Home"><span>Charting</span></a></span>, <span><a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;referringTitle=Home&amp;ANCHOR#Expander"><span>Expander</span></a></span>, <span><a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;referringTitle=Home&amp;ANCHOR#ImplicitStyleManager"><span>ImplicitStyleManager</span></a></span> and <span><a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;referringTitle=Home&amp;ANCHOR#Viewbox"><span>Viewbox</span></a></span> are still on their Preview status list and may need tweaks to make it to Stable and then release ready status.<br /></span></span></p>]]>
    </content>
</entry>
<entry>
    <title>Why does the SQL Data Services (SDS) not adopt to the RDBMS model which the SQL Server has been essentially built upon</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/12/why_does_the_sql_data_services.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=325" title="Why does the SQL Data Services (SDS) not adopt to the RDBMS model which the SQL Server has been essentially built upon" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.325</id>
    
    <published>2008-12-10T06:37:14Z</published>
    <updated>2008-12-10T06:52:46Z</updated>
    
    <summary>Here are some of my thoughts on this:1. The current version of the SDS entity design is based on a free-form schema-less model unlike the rigid schema based approach which most RDBMS such as SQL Server, Oracle work on. SDS...</summary>
    <author>
        <name>Sidharth Subhash Ghag</name>
        
    </author>
            <category term="Cloud Computing" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p>Here are some of my thoughts on this:<br />1. The current version of the SDS entity design is based on a free-form schema-less model unlike the rigid schema based approach which most RDBMS such as SQL Server, Oracle work on. SDS builds on an Entity definition model wherein the data object constructs gets abstracted to a much higher level. The approach makes the process of low-level object creation such as tables, constraints, relations etc&hellip; a job of the SDS layer. As far as the End user is concerned he/she would only be concerned about the Entity definition, this will include attributes along with the data types of those attributes. Though relationships are not supported in the current version of SDS, which the SDS team intents to provide in some future version .And this should not be difficult, they can be inferred easily from the entity object associations which could translate to a low-level parent key- foreign key relationships in the RDBMS parlance</p>]]>
        <![CDATA[<p><br />2. The SDS team also plans to have the schema-less flexible entity model be supported by the ADO.NET data services. ADO.NET data service currently supports only standard RDBMS databases. The challenge being to adopt the fixed data objects definitions to support flexible entity definitions within the ADO.NET Entity data framework. As application developers it is time for us to get out of the T-SQL mould and start thinking EDM /LINQ!</p><p><br />3. Additionally data stored on SDS are queried using REST based URI's using LINQ. As this is also the model used for querying entities on the .Net platform. The SDS team could've alternatively adopted a T-SQL model to query the cloud data service, but that may not lend itself efficient to an entity based data access model.</p><p>This is also what makes me believe that EDM would be dominating the MS data platform strategy in the years to come which will unify all data access strategies on the .NET platform.<br />&nbsp;<br />It does not mean RDBMS is going to be done away with. I don&rsquo;t think that is the case. In fact the SDS instance natively runs on SQL Server 2008 engine which is an RDBMS. It simply means that MS has abstracted most of the low-level db design aspects from the developer and would want them to focus on the domain/functional aspects of their application. <br />&nbsp;<br />As per Soumitra Sengupta , Product Manager SQL Server, has this to say<br />&nbsp;<br />&quot;Over time, &hellip; as we learn what it takes to run a 24x7x365 service (nobody we know of is running a data service using a commercial database system at this scale and cost point) like SDS, I can assure you we will start to expose capabilities of the underlying engine.&nbsp; How quickly and how much will depend on our ability to provide you, our customers with the quality of service you need to trust your business to SDS.&quot;<br />&nbsp;<br />So we can hope to see some of those SQL Server features being supported on SDS as well. <br /><a href="http://blogs.msdn.com/ssds/archive/2008/06/27/8660471.aspx">http://blogs.msdn.com/ssds/archive/2008/06/27/8660471.aspx</a><br /></p>]]>
    </content>
</entry>
<entry>
    <title>Windows on the Cloud released at the PDC 2008!</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/12/windows_on_the_cloud_released.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=324" title="Windows on the Cloud released at the PDC 2008!" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.324</id>
    
    <published>2008-12-09T05:01:44Z</published>
    <updated>2008-12-09T05:36:01Z</updated>
    
    <summary>MS released Windows Azure at the PDC 2008, a code name used for the work done as a part of the Azure (MS Cloud) initiative. More details on these are available at http://www.microsoft.com/azure/windowsazure.mspx...</summary>
    <author>
        <name>Sidharth Subhash Ghag</name>
        
    </author>
            <category term="Cloud Computing" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p>MS released Windows Azure at the PDC 2008, a code name used for the work done as a part of the Azure (MS Cloud) initiative. More details on these are available at <br /><a href="http://www.microsoft.com/azure/windowsazure.mspx">http://www.microsoft.com/azure/windowsazure.mspx</a><br /></p>]]>
        <![CDATA[<p>Quick definitions of Azure and Windows Azure,<br />Azure is, &quot;Azure is a compos-able set of cloud-based building block services that integrate with your on-premise infrastructure and business applications.&quot;</p><p><br />Windows Azure is &quot;an operating system for the cloud&quot;<br />Windows Azure is the compute platform to be made available by MS over the cloud as services. It provide compute, storage and management capabilities.&nbsp; It extends Visual studios on-premise application development capability to the cloud. Developers can write code locally and execute it on the Azure cloud platform. For the enterprise this would mean lower hardware cost, lower operating over heads, low maintenance hassles.</p><p>Windows Azure can be compared with the likes of Google&rsquo;s App engine.<br />What can you do on Windows Azure?<br />Well with the limited functionality made available with this current release, here is what is possible:<br />1. Build single-tiered web based applications on ASP.NET and even on Silverlight. But be informed that MS does not mention about Silverlight support in their documentations. But we did give it a shot with one of our applications and with a few minor tweaks it seemed to work flawlessly.</p><p><br />2. Build a client-server web based application that can use the storage capabilities provided as part of the Windows Azure platform. Note that this storage capability on the Windows Azure platform is different from Sql data services.This seems to be a redundancy from the MS teams but we can look at some consolidation happening on this area in the future</p><p><br />3. Build WCF based web services</p><p>4. Build windows service like components running in the background and processing tasks in say batch mode.<br />Keep looking for more updates as we explore new features on this technology</p>]]>
    </content>
</entry>
<entry>
    <title>Silverlight and Matrix Transformation</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/11/silverlight_and_matrix_transfo.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=323" title="Silverlight and Matrix Transformation" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.323</id>
    
    <published>2008-11-28T03:25:06Z</published>
    <updated>2008-11-28T03:33:41Z</updated>
    
    <summary>Silverlight and Matrix Transformation</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term="Expression Blend" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Silverlight" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[I found <a href="http://blogs.msdn.com/deviations/archive/2008/11/27/silverlight-and-cover-flow-part-i.aspx" target="_blank">this</a> interesting article explaning the affine transformations that one needs to use to get the true perspective view. There are challenges in getting this to work in Silverlight as explained by Pedro in the article. I look forward to part 2 of the article. BTW, don't forget to read the link that gives detailed maths behind this as it has good detailed explanation. However it is&nbsp;a bit lenghty and if Maths isn't your favorite subjects [and personally&nbsp;I have lost track of matrices and trignometry over the&nbsp;years], you may lose interest quickly. ]]>
        
    </content>
</entry>
<entry>
    <title>Enterprise systems available on the cloud as services</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/11/enterprise_systems_available_o.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=322" title="Enterprise systems available on the cloud as services" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.322</id>
    
    <published>2008-11-26T10:04:43Z</published>
    <updated>2008-12-15T10:27:44Z</updated>
    
    <summary> Suppose an enterprise has a set of services that it feels can be exposed to the internet for business or for its own usage. How does the Microsoft .Net Services enables this?</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term="Cloud Computing" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p>Suppose an enterprise has a set of services that it feels can be exposed to the internet for business or for its own usage, there are two ways to address it.</p><p>1) Setup the services on a DMZ thereby exposing the services in a secure manner to the internet. <br />2) Open up ports on the enterprise firewall to allow inbound access from outside machines to the services running. [This is not allowed as it has the potential to allow users to exploit the enterprise network]</p><p>The first mode of setting up a DMZ is the preferred way, but its limitation would be allowing access of DMZ machines onto the enterprise network. If the DMZ needs to access internal systems like a Mainframe, then there could be deployment and security issues. </p>]]>
        <![CDATA[<p>The Microsoft .NET services (or the BizTalk Services as it was previously called) allows enterprises to expose their services to the internet from within a firewall without having to setup a DMZ or allow explicit inbound access to the machines. It used the concept of Relay Binding (extension over the existing WCF) to allow access to the services. Allowing disparate systems to be interconnected through the internet, the .NET services sets up an internet service bus in the Microsoft cloud.&nbsp; </p><p>Some of the offerings of .NET Services are:<br />1) Access Control Services or&nbsp; Identity Services: it is a hosted service that enables enterprises easily manage its users supporting user identities from various organizations</p><p>2) Connectivity Services: These services make connectivity between services in different enterprises feasible. We could host a service from within Infosys Firewall and it could be consumed by a customer in another enterprise or on the internet. It allows enterprises to expose services through the .net services as a URI which is accessible over the internet. In practice, the actual URL and Machine of the service is hidden from the client applications. </p><p>3) Workflow Services: A new addition to the .NET services, it allows execution of Windows Workflow Services that orchestrate the interactions between other services hosted via the ISB. </p><p>4) .NET framework extensions that allow connecting to the ISB through applications<br />&nbsp;<br />The Connectivity Services relies on using RelayBinding&nbsp;</p><p><img height="327" alt="ISBRelay.jpg" src="http://infosysblogs.com/microsoft/ISBRelay.jpg" width="546" border="0" /></p><p>Applications that need to use connectivity services establish outbound connections (allowed by enterprises) to the service bus. This would be done by both the sending as well as receiving applications.&nbsp; </p><p>When an application listens on an endpoint, it automatically polls the Connectivity Service to retrieve incoming messages. In a simple example, suppose applications in two distinct enterprises send and receive messages through the WCF framework and APIs. Enterprise A establishes an outbound connection to the Connectivity Service, and begins listening on an endpoint, defined by the URI labs.biztalk.net/enterpriseA/someapp.&nbsp; Enterprise B also establishes an outbound connection to the Connectivity Service, and sends a message to the same URI. The Connectivity Service receives the message, and relays it to the application in enterprise A, via its already open connection. The SDK simplifies developing applications that use the .net services, and enables existing applications to use the service bus without modifications. </p><p>In cases where Direct connection is possible, the service bus would first establish a relay connection and then make a direct connection between the applications. The connectivity service internally calls the identity services to authenticate the users. The steps to start working on service bus are.<br />1) Create an account on the <a href="http://labs.biztalk.net/">http://labs.biztalk.net</a> site.<br />2) Download the .net services SDK and install it on the machine.<br />3) If the machine is within a firewall then open outbound connections to 65.55.22.* and 65.22.20.* IP range over the following ports 808, 809, 818 and 819. Install the Winsock client so that access to the BizTalk service machines is available. [This is required because the relay mechanism internally uses TCP connections to ensure connectivity with the Service bus]. Now we are set to start using the sample applications. </p><p>There are many sample applications available in the SDK that showcase the various abilities of the Service bus like Relay connection, multicast, Direct connection, Http based file sharing and&nbsp;Workflow. The .NET services offer a simple way for enterprises to share their services across the internet without having to put them on a DMZ or another hosting service. <a href="http://vasters.com/clemensv/PermaLink,guid,92d78bee-2cfd-4a29-95ab-c5abb9b905e7.aspx" target="_blank">This blog</a> from Clemens Vasters has a good amount of information about .NET services.&nbsp; </p>]]>
    </content>
</entry>
<entry>
    <title>.NET Framework 4.0 CLR Enhancements</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/11/net_framework_40_clr_enhanceme.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=321" title=".NET Framework 4.0 CLR Enhancements" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.321</id>
    
    <published>2008-11-26T05:51:53Z</published>
    <updated>2008-11-26T06:08:48Z</updated>
    
    <summary>.NET Framework 4.0 CLR Enhancements</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".NET Fwk 3.5" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[If you attended PDC and specifically the session on <a href="http://channel9.msdn.com/pdc2008/pc49" target="_blank">.NET Framework: CLR Futures</a> by Joshua Goodman, GPM, CLR team, then already have a good idea on the new enhancements on their way in the CLR 4.0. In this blog, I will only capture the&nbsp;key points that I found interesting and I do suggest that you watch the <a href="http://channel9.msdn.com/pdc2008/pc49" target="_blank">video&nbsp;of this session</a> to get the complete message.]]>
        <![CDATA[<p>1. Better support for side by side, where in you can have CLR 2.0 and 4.0 in the same host process.&nbsp; This will be specifically useful for addins. </p><p>2. No more PIA (primary interop assemblies) to worry about.</p><p>3. New signature generation tool that can look up windows.h to generate p/invoke signatures. The tool will be on code plex shortly.</p><p>4. .NET supported 16 languages, but no support for dynamic languages and functional language. Iron Python, Iron Ruby and F# will now be supported.</p><p>5. Big integers support added in BCL (base class library) so any language on top can leverage it. For more details on BCL changes check <a href="http://blogs.msdn.com/bclteam/archive/2008/11/04/what-s-new-in-the-bcl-in-net-4-0-justin-van-patten.aspx" target="_blank">here</a>.</p><p>6. Tuples supported in F# and Iron Python. It is more used for making new classes or allows functions to return multiple values. This is now added to BCL so langauge interop becomes easy. </p><p>7. Tail recursion optimizations done in F#. C# compiler still doesn't support this.</p><p>8. .NET Framework now installs faster and applications can startup faster. Installation and NGEN is done in parallel. Startup times improvements due to layout optimizations and can result in upto 40% improvements in some applications.</p><p>9. .NET applications can now <a href="http://infosysblogs.com/microsoft/2008/08/my_net_application_runs.html" target="_blank">run from network share</a> with full trust, so it is easy to deploy applications. This feature has been added in .NET 3.5 SP1 itself.&nbsp; </p><p>10. Improvements in threading to take advantage of multi-core machines. Thread pool code improved in conjunction with task parallel library implementation.</p><p>11. Support for <a href="http://blogs.msdn.com/maoni/archive/2008/11/19/so-what-s-new-in-the-clr-4-0-gc.aspx" target="_blank">background GC</a>.</p><p>12. Better profiling support with ability to attach/detach performance and memory profilers to production servers without having to install</p><p>13. Using <span style="color: red">catch</span>(<span style="color: #2b91af">Exception</span> e) is bad since it will catch all exceptions include access violation, illegal instruction (exceptions that corrupt the state) etc. Going foward to handle this, you will have to use the&nbsp;[<span style="color: #2b91af">HandleProcessCorruptedStateExceptions</span>]&nbsp;attribute at the function level.</p><p>14. Dump debugging simplified by supporting ICorDebug to debug dumps right from Visual Studio. Also new lock APIs are available to help find more details about locaked objects.</p><p>15. Code contracts are powerful new constructs that can help write assert and post condition type statements, but in a more powerful manner. Static analysis tools can understand these and identify violations without you even running the code. To know more about code contracts and how they work well with unit testing to help improve the code quality, check <a href="http://channel9.msdn.com/pdc2008/tl51" target="_blank">this pdc session</a>.</p><p><br />If you want to play around VS 2010 and .NET 4.0, you can download the CTP from <a href="http://www.microsoft.com/downloads/details.aspx?familyid=922b4655-93d0-4476-bda4-94cf5f8d4814&amp;displaylang=en" target="_blank">here</a>, and can provide your feedback <a href="https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790" target="_blank">here</a>.<br /></p>]]>
    </content>
</entry>
<entry>
    <title>Configuring WCF on IIS 7</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/11/configuring_wcf_on_iis_7.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=320" title="Configuring WCF on IIS 7" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.320</id>
    
    <published>2008-11-24T04:18:56Z</published>
    <updated>2008-11-24T06:27:28Z</updated>
    
    <summary>Configuring WCF on IIS 7</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".NET Fwk 3.5" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[&nbsp;We have been on Silverlight (SL) for sometime now on an internal project. During the development, we were mostly relying on the ASP.NET Web server. However for a review when we decided to host the application on IIS, we realized that the WCF service wasn't working on it. The machine was a Vista box with IIS 7 and since .net 3.0 comes pre-installed, we had assumed that WCF will also just work.]]>
        <![CDATA[<p>However when we configured the specific applications on IIS, and tried to browse to the WCF's SVC file, we got a 404.3 as seen in the figure below. </p><p><img height="749" alt="WCFIIS7.jpg" src="http://infosysblogs.com/microsoft/WCFIIS7.jpg" width="993" border="0" /></p><p>Essentially what this shows is that IIS isn't configured correctly and when you try to access the service details by accessing the SVC file, IIS is unaware on how to handle this request. The resolution shown here can be a bit misleading. The mime map option isn't right since what we want is to be able to execute the SVC file on server and not really return it as some kind of stream from IIS. For execution, appropriate http module and handlers need to be registered with IIS. This can be done via the IIS Admin console or directly editing the applicationHost.config file (filepath - C:\Windows\System32\inetsrv\config).&nbsp;The following changes are required.</p><p>Add the following handlers to the file inside of section &quot;<span style="color: blue">&lt;</span><span style="color: #a31515">location</span><span style="color: blue"> </span><span style="color: red">path</span><span style="color: blue">=</span>&quot;&quot;<span style="color: blue"> </span><span style="color: red">overrideMode</span><span style="color: blue">=</span>&quot;<span style="color: blue">Allow</span>&quot;<span style="color: blue">&gt;</span>&quot;</p><div style="font-size: 8pt; background: white; color: black; font-family: Lucida Sans Unicode"><p style="margin: 0px"><span style="color: blue">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;</span><span style="color: #a31515">add</span><span style="color: blue"> </span><span style="color: red">name</span><span style="color: blue">=</span>&quot;<span style="color: blue">svc-ISAPI-2.0</span>&quot;<span style="color: blue"> </span><span style="color: red">path</span><span style="color: blue">=</span>&quot;<span style="color: blue">*.svc</span>&quot;<span style="color: blue"> </span><span style="color: red">verb</span><span style="color: blue">=</span>&quot;<span style="color: blue">*</span>&quot;<span style="color: blue"> </span><span style="color: red">modules</span><span style="color: blue">=</span>&quot;<span style="color: blue">IsapiModule</span>&quot;<span style="color: blue"> </span><span style="color: red">scriptProcessor</span><span style="color: blue">=</span>&quot;<span style="color: blue">%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll</span>&quot;<span style="color: blue"> </span><span style="color: red">preCondition</span><span style="color: blue">=</span>&quot;<span style="color: blue">classicMode,runtimeVersionv2.0,bitness32</span>&quot;<span style="color: blue"> /&gt;</span></p><p style="margin: 0px"><span style="color: blue">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;</span><span style="color: #a31515">add</span><span style="color: blue"> </span><span style="color: red">name</span><span style="color: blue">=</span>&quot;<span style="color: blue">svc-Integrated</span>&quot;<span style="color: blue"> </span><span style="color: red">path</span><span style="color: blue">=</span>&quot;<span style="color: blue">*.svc</span>&quot;<span style="color: blue"> </span><span style="color: red">verb</span><span style="color: blue">=</span>&quot;<span style="color: blue">*</span>&quot;<span style="color: blue"> </span><span style="color: red">type</span><span style="color: blue">=</span>&quot;<span style="color: blue">System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</span>&quot;<span style="color: blue"> </span><span style="color: red">preCondition</span><span style="color: blue">=</span>&quot;<span style="color: blue">integratedMode</span>&quot;<span style="color: blue"> /&gt;</span></p></div><p>and also in the same section add the following module</p><div style="font-size: 8pt; background: white; color: black; font-family: Lucida Sans Unicode"><p style="margin: 0px"><span style="color: blue">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;</span><span style="color: #a31515">add</span><span style="color: blue"> </span><span style="color: red">name</span><span style="color: blue">=</span>&quot;<span style="color: blue">ServiceModel</span>&quot;<span style="color: blue"> </span><span style="color: red">type</span><span style="color: blue">=</span>&quot;<span style="color: blue">System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</span>&quot;<span style="color: blue"> </span><span style="color: red">preCondition</span><span style="color: blue">=</span>&quot;<span style="color: blue">managedHandler</span>&quot;<span style="color: blue"> /&gt;</span></p></div><!--EndFragment--><p>While you can manually change the file to do this, it is much easier&nbsp;to do this via the&nbsp;&quot;Turn Windows features on or off&quot; (via Control panel). Apart from the config file changes, there could be other configurations related to specific security settings etc (I haven't tried to find out as yet) could be required that will be taken care via this setup. </p><p><img height="375" alt="WCFIIS7-2.jpg" src="http://infosysblogs.com/microsoft/WCFIIS7-2.jpg" width="489" border="0" /></p><p>The &quot;Windows Communication Foundation HTTP Activation&quot; is not enabled by default. You can check that and click OK and this will do the necessary configurations along with making the changes to the applicationHost.config file as I mentioned above. </p><p>With these done, when I browsed my service's SVC file again. I got the familiar screen as seen below and got the service working fine. </p><p><img height="620" alt="WCFIIS7-3.jpg" src="http://infosysblogs.com/microsoft/WCFIIS7-3.jpg" width="821" border="0" /></p><p>HTH.</p>]]>
    </content>
</entry>
<entry>
    <title>Silverlight Theming</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/11/silverlight_theming.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=319" title="Silverlight Theming" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.319</id>
    
    <published>2008-11-21T09:00:35Z</published>
    <updated>2008-11-21T11:51:19Z</updated>
    
    <summary>Silverlight Theming</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".NET Fwk 3.5" />
            <category term="Expression Blend" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="Silverlight" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[<p>If you have been following updates on Silverlight (SL) 2, you would already be aware of <a href="http://www.codeplex.com/Silverlight" target="_blank">SL 2 Toolkit</a> on codeplex. Scott in <a href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx" target="_blank">his blog</a> has shared some amazing numbers on usage of SL and also given some indicators to where SL is headed in its next version. </p><p>I had been away from SL for some time due to other focus areas. However I decided to try my hands on the support for themes, a feature added with SL Toolkit. </p>]]>
        <![CDATA[<p><a href="http://silverlight.net/blogs/jesseliberty/archive/2008/10/28/toolkit-release-amp-themes.aspx" target="_blank">This intro</a> by Jesse Liberty amazed me. The theme seemed so trivial to use. The basic idea on these being available as controls that I could drop on my form and embed other controls inside of it was amazing. I decided to give this a try and started with my sample application. While building this, I observed a few things, which I wanted to capture and share</p><ol><li>To work with&nbsp;themes, I started by adding necessary references</li><ul><li>Microsoft.Windows.Controls.Theming.dll</li><li>Microsoft.Windows.Controls.Theming.ExpressionDark.dll</li><li>Microsoft.Windows.Controls.Theming.ExpressionLight.dll</li><li>Microsoft.Windows.Controls.Theming.RainierOrange.dll</li><li>Microsoft.Windows.Controls.Theming.RainierPurple.dll</li><li>Microsoft.Windows.Controls.Theming.ShinyBlue.dll</li><li>Microsoft.Windows.Controls.Theming.ShinyRed.dll</li></ul><li>I then added RainierOrange and ShinyRed to 2 columns in my Grid and then further child controls inside of these theme controls.</li><li>After I added the child controls, I expected them to display using the parent theme, but that didn't happen till the time I built the project once. I guess that caused the designer to refresh and load the theme assemblies appropriately. </li><li>I then also added Microsoft.Windows.Controls.dll to add some new controls from the toolkit and when I tried to debug I got an error - &quot;Invalid attribute value input:ButtonSpinner for property TargetType. [Line: 1 Position: 220]&quot;</li><li>Doing some online search pointed that need to also add reference to Microsoft.Windows.Controls.Input.dll and Microsoft.Windows.Controls.DataVisualization.dll. Interestingly, this error is seen when I debug the solution. If I run it without debugging, it works fine. </li><li>If you add only one of the assemblies, you might end up seeing an error like this - &quot;Invalid attribute value charting:Chart for property TargetType. [Line: 1 Position: 262]&quot;. Hence it will be good to add reference to both the assemblies mentioned in the previous point</li></ol><p>I am surprised why debug execution gives an error while run doesn't (point 5). If anyone has found out a reason, please share.</p>]]>
    </content>
</entry>
<entry>
    <title>Handling Thread Exceptions</title>
    <link rel="alternate" type="text/html" href="http://infosysblogs.com/microsoft/2008/11/handling_thread_exceptions.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://infosysblogs.com/microsoft-mt/mt-atom.cgi/weblog/blog_id=1/entry_id=318" title="Handling Thread Exceptions" />
    <id>tag:infosysblogs.com,2008:/microsoft//1.318</id>
    
    <published>2008-11-17T04:49:47Z</published>
    <updated>2008-11-17T05:00:45Z</updated>
    
    <summary>Handling Thread Exceptions</summary>
    <author>
        <name>Atul Gupta</name>
        
    </author>
            <category term=".NET Fwk 3.0" />
            <category term=".NET Fwk 3.5" />
            <category term="Microsoft Products &amp; Technologies" />
            <category term="VS2008" />
    
    <content type="html" xml:lang="en" xml:base="http://infosysblogs.com/microsoft/">
        <![CDATA[The other day someone asked &quot;What is the best way to handle exceptions in a thread method and communicate back to the main thread?&quot; The reason for the question is this - If you raise exceptions from a thread function (which is not the main thread) and if this is unhandled in the thread method itself, it causes an unhandled exception to be raised in the AppDomain and the application terminates.]]>
        <![CDATA[<p>You can handle the <a href="http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx" target="_blank">AppDomain.UnhandledException</a> event to attempt to save some state/information as may be required and possible, but you can't stop the application from terminating. Note however that if a similar unhandled exception is raised from the main thread (of a winform application), the application may not terminate. </p><p>MSDN excerpt - &quot;In applications that use Windows Forms, unhandled exceptions in the main application thread cause the Application..::.ThreadException event to be raised. If this event is handled, the default behavior is that the unhandled exception does not terminate the application, although the application is left in an unknown state.&quot;</p><p>To see this behavior, check the following code. In the Form1, I have added 2 buttons (button1 and button2). In the button1 code, I raise an exception, so this acts as an exception on the main thread itself. In button1 code, I start a new thread and then raise an exception in the thread function. </p><div style="font-family: Lucida Sans Unicode; background: white; color: black; font-size: 9pt"><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">private</span> <span style="color: red">void</span> button1_Click(<span style="color: red">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">throw</span> <span style="color: red">new</span> <span style="color: #2b91af">NotImplementedException</span>();</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p><p style="margin: 0px">&nbsp;</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">private</span> <span style="color: red">void</span> button2_Click(<span style="color: red">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af">Thread</span> th = <span style="color: red">new</span> <span style="color: #2b91af">Thread</span>(<span style="color: red">new</span> <span style="color: #2b91af">ThreadStart</span>(func));</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; th.Start();</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p><p style="margin: 0px">&nbsp;</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">void</span> func()</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">throw</span> <span style="color: red">new</span> <span style="color: #2b91af">NotImplementedException</span>();</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p></div><!--EndFragment--><p>Finally, in the program.cs, I have added an event handler to handle the thread exception.</p><div style="font-family: Lucida Sans Unicode; background: white; color: black; font-size: 9pt"><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">static</span> <span style="color: red">void</span> CurrentDomain_UnhandledException(<span style="color: red">object</span> sender, <span style="color: #2b91af">UnhandledExceptionEventArgs</span> e)</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af">MessageBox</span>.Show(<span style="color: #a31515">&quot;exception caught&quot;</span>);</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p></div><p><!--EndFragment-->To see the actual behavior, you should run the application and not debug it. In case of the button1 exception, you get a framework provided message box that allows you to handle the exception and continue executing the application. In case of the button1 exception, you will see the message box as per the code in the event handler that I have written in program.cs (as shown above), and after you click OK on the message box, the application terminates. </p><p>So back to the question we started with. Essentially the solution lies in not throwing the exception from the thread, but handling it in the thread method itself and instead firing an event that the main thread can handle and get details on the exception. The good news is that this behavior has already been provided in <a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" target="_blank">BackgroundWorker class</a>. See the modified logic for button2 code to show how this works. </p><div style="font-family: Lucida Sans Unicode; background: white; color: black; font-size: 9pt"><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">private</span> <span style="color: red">void</span> button2_Click(<span style="color: red">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #2b91af">BackgroundWorker</span> worker = <span style="color: red">new</span> <span style="color: #2b91af">BackgroundWorker</span>();</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; worker.RunWorkerCompleted += <span style="color: red">new</span> <span style="color: #2b91af">RunWorkerCompletedEventHandler</span>(worker_RunWorkerCompleted);</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; worker.DoWork += <span style="color: red">new</span> <span style="color: #2b91af">DoWorkEventHandler</span>(worker_DoWork);</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; worker.RunWorkerAsync();</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p><p style="margin: 0px">&nbsp;</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">void</span> worker_DoWork(<span style="color: red">object</span> sender, <span style="color: #2b91af">DoWorkEventArgs</span> e)</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: red">throw</span> <span style="color: red">new</span> <span style="color: #2b91af">NotImplementedException</span>();</p><p style="margin: 0px">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p><p 