<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SharePoint Memory Dump</title><link>http://blogs.msdn.com/taj/default.aspx</link><description>All about SharePoint, what I experience day in, day out.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Error Synching BCS External list to Outlook or WorkSpace</title><link>http://blogs.msdn.com/taj/archive/2009/11/26/error-synching-bcs-external-list-to-outlook-or-workspace.aspx</link><pubDate>Thu, 26 Nov 2009 11:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9929040</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9929040.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9929040</wfw:commentRss><description>&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;FONT color=#cc0000&gt;"The server must be running MOSS2010 to synchronize external list with SharePoint workspace"&amp;nbsp;&lt;/FONT&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I have faced this issue both in Escrow and Beta builds so thought to share it with others to make it easier. &lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you get the error message or having issues while synching your external list to client tools like WorkSpace or Outlook, then you might need this fix. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;This issue prevents connecting external lists to Office client applications on x64 client machines where VS2010 Beta 2 is installed&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;The issue is due to the mismatching versions of SQLCE installed by Office and VS2010. Office installs x64 and x86 SQLCE and VS2010 upgrades the x86 SQLCE to a later version however it doesn’t upgrade x64 version. When the client machine is in this state, you cannot connect external lists to Office client applications. To resolve the issue, x64 SQLCE should be upgraded to the same version by downloading and installing SSCERuntime-ENU-x64.msi from &lt;SPAN style="COLOR: #1f497d"&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=411ba1c5-ba57-45b6-9148-91bed6e7a9f1#tm"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=411ba1c5-ba57-45b6-9148-91bed6e7a9f1#tm&lt;/A&gt;&lt;/SPAN&gt;. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Most probably this issue should be gone with the later builds of VS2010.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9929040" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/External+List/default.aspx">External List</category><category domain="http://blogs.msdn.com/taj/archive/tags/BCS/default.aspx">BCS</category><category domain="http://blogs.msdn.com/taj/archive/tags/Office+Client/default.aspx">Office Client</category><category domain="http://blogs.msdn.com/taj/archive/tags/Workspace/default.aspx">Workspace</category><category domain="http://blogs.msdn.com/taj/archive/tags/Outlook/default.aspx">Outlook</category></item><item><title>Provision an External List using feature (BCS)</title><link>http://blogs.msdn.com/taj/archive/2009/11/24/provision-an-external-list-using-feature-bcs.aspx</link><pubDate>Tue, 24 Nov 2009 16:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9928075</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9928075.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9928075</wfw:commentRss><description>&lt;P&gt;Eric shared the xml schema to provision an external list using features. I believe everyone will find it useful so sharing it.&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;lt;?xml version="1.0" encoding="utf-8&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"?&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Elements xmlns=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A href="http://schemas.microsoft.com/sharepoint/"&gt;http://schemas.microsoft.com/sharepoint/&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ListInstance Title=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: #1f497d; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-themecolor: dark2"&gt;title of list&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnQuickLaunch=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;TRUE&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TemplateType=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;104&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FeatureId=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;SharePointFeatureId&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Url=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: #1f497d; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-themecolor: dark2"&gt;lists/Url&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Description=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: #1f497d; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-themecolor: dark2"&gt;Description&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DataSource&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;LobSystemInstance&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; Value=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;LobSystemInstance&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;EntityNamespace&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; Value=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;EntityNamespace&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;Entity&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; Value=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;EntityName&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;SpecificFinder&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; Value=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;SpecificFinder&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property Name=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;Finder&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; Value=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;Finder&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: maroon; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataSource&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ListInstance&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 140%; MARGIN: 0in 0in 0pt 0.25in; BACKGROUND: #dddddd; VERTICAL-ALIGN: top; WORD-BREAK: break-all" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 140%; FONT-FAMILY: 'Courier New'; COLOR: black; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Elements&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9928075" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/External+List/default.aspx">External List</category><category domain="http://blogs.msdn.com/taj/archive/tags/BCS/default.aspx">BCS</category><category domain="http://blogs.msdn.com/taj/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://blogs.msdn.com/taj/archive/tags/provisioning/default.aspx">provisioning</category><category domain="http://blogs.msdn.com/taj/archive/tags/feature/default.aspx">feature</category></item><item><title>Client SSO in BCS</title><link>http://blogs.msdn.com/taj/archive/2009/11/17/client-sso-in-bcs.aspx</link><pubDate>Tue, 17 Nov 2009 11:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923511</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9923511.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9923511</wfw:commentRss><description>&lt;P&gt;As all of you guys must have seen by now that BCS let's you use BCS OM from client Office applications like Outlook/SharePoint Workspace etc. One interesting scenario which comes up is how things will behave when external system will be accessed using SSO( or SSS in SharePoint2010) service. I am sharing my findings based on a test SSO implementation and inputs from Product team. &lt;/P&gt;
&lt;P&gt;In the new architecture, when you synchronize the list to client computer using browser, Office client applications leverage the Windows Credential Manager available on client to store the credentials used to access the External System. During synchronization, if it finds based on metadata that the BCS ECT is using Single Sign-On feature, it pops up the dialog for end user to provide credentails to connect to External System. It then stores the credentials in Credential Manager Secure Store and every time application need to do a SSO to the external system, it reads the credentials from store and connect to external system using SSO.&lt;/P&gt;
&lt;P&gt;This helps to securely store the credentails using built-in features of Windows OS and also provides interesting scneario where each user can provide his/her own credentials to connect to external system.&lt;/P&gt;
&lt;P&gt;Windows Credential Manager can be accessed from Control Panel-&amp;gt;User Accounts-&amp;gt;CredentialManager on Windows 7.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923511" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/BCS/default.aspx">BCS</category><category domain="http://blogs.msdn.com/taj/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://blogs.msdn.com/taj/archive/tags/SSS/default.aspx">SSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/Office+Client/default.aspx">Office Client</category><category domain="http://blogs.msdn.com/taj/archive/tags/SSO/default.aspx">SSO</category><category domain="http://blogs.msdn.com/taj/archive/tags/Single-Sign-On/default.aspx">Single-Sign-On</category></item><item><title>Dynamically changing master pages in SharePoint Server 2007</title><link>http://blogs.msdn.com/taj/archive/2009/11/01/dynamically-changing-master-pages-in-sharepoint-server-2007.aspx</link><pubDate>Sun, 01 Nov 2009 10:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915824</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9915824.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9915824</wfw:commentRss><description>&lt;P&gt;&lt;B&gt;Summary:&lt;/B&gt; Learn how to dynamically change master pages in a SharePoint publishing site on the fly. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Introduction to Master Pages in SharePoint Server 2007&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Microsoft Office SharePoint Server 2007 provides flexible support for publishing sites and features for creating master pages, content types and content pages using object model and declarative syntax. Many organizations require the flexibility to change the master page in same site based on the profile of the user who is connecting. Out of the box, SharePoint provides facility to specify a single default master page for the site which is used by all the page layouts.&lt;/P&gt;
&lt;P&gt;This article will provide guidance around how to change the master page for each content page based on target master page specified in the content page. This will allow end users to select the master page while making the pages. Using similar concept users can implement logic for changing master page on each request.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Steps for implementing&lt;/B&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Create a Publishing Site&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Create Site Column&lt;/STRONG&gt; This site column will be used to store the name of the master page which needs to be applied to the appropriate page. This will be of type choice and users will select the master page while creating a new page.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Create Content Type &lt;/STRONG&gt;This will be used to create the layout pages. The content type will contain the site column created in previous step. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Create Page layout base class &lt;/STRONG&gt;The class coded in .NET C# language will implement the logic to change the master page in OnInit event of the PublishingPageLayout class&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Create Page Layouts derived from Page Layout base class &lt;/STRONG&gt;Actual Page layouts on which the content pages will be created&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Creating pages based on the page layout &lt;/STRONG&gt;In this step actual pages will be created and&amp;nbsp; master pages specified for them&lt;/LI&gt;&lt;/UL&gt;
&lt;H3&gt;To create a new Publishing Site&lt;/H3&gt;
&lt;P&gt;1. Using &lt;STRONG&gt;SharePoint 3.0 Central Administration&lt;/STRONG&gt;, click &lt;STRONG&gt;Application Management&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;2. In the &lt;STRONG&gt;SharePoint Web Application Management&lt;/STRONG&gt; section, choose &lt;STRONG&gt;Create or extend Web application&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;3. On the &lt;STRONG&gt;Create or extended Web application&lt;/STRONG&gt; page, click &lt;STRONG&gt;Create a new web application&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;4. Enter the configuration options that you want for &lt;STRONG&gt;IIS Web Site&lt;/STRONG&gt;, &lt;STRONG&gt;Security Configuration&lt;/STRONG&gt;, &lt;STRONG&gt;Load Balanced URL&lt;/STRONG&gt;, &lt;STRONG&gt;Application Pool&lt;/STRONG&gt;, and &lt;STRONG&gt;Database Name&lt;/STRONG&gt; and &lt;STRONG&gt;Authentication&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;5. Click &lt;STRONG&gt;OK&lt;/STRONG&gt;, and then wait while the new Web application is created.&lt;/P&gt;
&lt;P&gt;6. On the &lt;STRONG&gt;Application Created&lt;/STRONG&gt; page, click &lt;STRONG&gt;Create Site Collection&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;7. On the &lt;STRONG&gt;Create Site Collection&lt;/STRONG&gt; page, type a &lt;STRONG&gt;Name&lt;/STRONG&gt; and &lt;STRONG&gt;Description&lt;/STRONG&gt; and select the root path (/).&lt;/P&gt;
&lt;P mce_keep="true"&gt;8. Within the &lt;STRONG&gt;Template Selection&lt;/STRONG&gt; section, select the &lt;STRONG&gt;Publishing Portal &lt;/STRONG&gt;template from the &lt;STRONG&gt;Publishing&lt;/STRONG&gt; tab.&lt;/P&gt;
&lt;P&gt;9. Enter a &lt;STRONG&gt;Site Collection Administrator&lt;/STRONG&gt;, and then click &lt;STRONG&gt;OK&lt;/STRONG&gt; to create the site collection.&lt;/P&gt;
&lt;H3&gt;To create a Site Column&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;Navigate to the site collection created above. Choose &lt;STRONG&gt;Site Actions &lt;/STRONG&gt;dropdown, select &lt;STRONG&gt;Site Settings &lt;/STRONG&gt;and from the fly-out select &lt;STRONG&gt;Modify All Site Settings&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt; In &lt;STRONG&gt;Site Settings &lt;/STRONG&gt;page, Select &lt;STRONG&gt;Site columns &lt;/STRONG&gt;under the section &lt;STRONG&gt;Galleries&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;In &lt;STRONG&gt;Site Column Gallery &lt;/STRONG&gt;page, select the &lt;STRONG&gt;Create &lt;/STRONG&gt;option from toolbar&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;Create a site column with name &lt;STRONG&gt;MasterPageName &lt;/STRONG&gt;and of type &lt;STRONG&gt;choice&lt;/STRONG&gt;. Provide following choices in the dropdown:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;a.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;STRONG&gt;BlueBand.master&lt;/STRONG&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;b.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;STRONG&gt;BlackBand.master&lt;/STRONG&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Users will be able to choose out of these two master pages while creating the site.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;Use OK button to create the site column&lt;/P&gt;
&lt;H3&gt;To create a Site Content Type&lt;/H3&gt;
&lt;P&gt;1.&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;Navigate to the site collection created above. Choose &lt;STRONG&gt;Site Actions &lt;/STRONG&gt;dropdown, select &lt;STRONG&gt;Site Settings &lt;/STRONG&gt;and from the fly-out select &lt;STRONG&gt;Modify All Site Settings&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;2.&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;In &lt;STRONG&gt;Site Settings &lt;/STRONG&gt;page, Select &lt;STRONG&gt;Site content types &lt;/STRONG&gt;under the section &lt;STRONG&gt;Galleries&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;3&lt;STRONG&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;In &lt;STRONG&gt;Site Content Type Gallery &lt;/STRONG&gt;page, select the &lt;STRONG&gt;Create &lt;/STRONG&gt;option from toolbar&lt;/P&gt;
&lt;P&gt;4&lt;STRONG&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;Create a site content type with name &lt;STRONG&gt;CustomMasterPageContentType. &lt;/STRONG&gt;In &lt;STRONG&gt;Select parent content type from: dropdown, &lt;/STRONG&gt;choose &lt;STRONG&gt;Publishing Content Types. &lt;/STRONG&gt;In &lt;STRONG&gt;Parent Content Type: dropdown, &lt;/STRONG&gt;choose &lt;STRONG&gt;Page Layout&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use OK button to create the site content type&lt;/P&gt;
&lt;H3&gt;Add Site column to Content Type&lt;/H3&gt;
&lt;P&gt;1. In the &lt;B&gt;Site Content Type&lt;/B&gt; information of &lt;B&gt;CustomMasterPageContentType, &lt;/B&gt;choose the option &lt;B&gt;Add from existing site columns&lt;/B&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;2. Select &lt;B&gt;MasterPageName&lt;/B&gt; from &lt;B&gt;Available columns&lt;/B&gt; and add to &lt;B&gt;Columns to add&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;3. Select&lt;B&gt; OK &lt;/B&gt;to add the column&lt;/P&gt;
&lt;H3&gt;Create Page Layout base class&lt;/H3&gt;
&lt;P&gt;1. Create a class library project in Visual Studio with name DynamicMasterPageLayout.&lt;/P&gt;
&lt;P&gt;2. Create a class with name &lt;B&gt;BasePageLayout&lt;/B&gt; and copy the following code. &lt;/P&gt;
&lt;P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; DynamicMasterPageLayout&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; Microsoft.SharePoint;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; Microsoft.SharePoint.Publishing;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; Custom Page Layout class from which all the page layouts should derive.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; This class will take care of changing the masterpage. The master page name &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; is read from the site column which is used to create the site content type.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; The site content type is used to create the page layout.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;BasePageLayout&lt;/SPAN&gt; : &lt;SPAN style="COLOR: #2b91af"&gt;PublishingLayoutPage&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; Name of the site column which contains the master page name&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;const&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; MasterPageSiteColumn = &lt;SPAN style="COLOR: #a31515"&gt;"MasterPageName"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; master page location directory&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;const&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; MasterPageDirectory = &lt;SPAN style="COLOR: #a31515"&gt;"/_catalogs/masterpage/"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; In PreInit, get the context of the page which is getting rendered,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; containing the master page name and set that as the master page. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: gray; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;///&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; read the column &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;///&lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: gray"&gt;&amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; OnPreInit(&lt;SPAN style="COLOR: #2b91af"&gt;EventArgs&lt;/SPAN&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;base&lt;/SPAN&gt;.OnPreInit(e);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;SPContext&lt;/SPAN&gt; current = &lt;SPAN style="COLOR: #2b91af"&gt;SPContext&lt;/SPAN&gt;.Current;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (current != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (current.ListItem != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt; &amp;amp;&amp;amp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 1in; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;current.ListItem[MasterPageSiteColumn] != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; TEXT-INDENT: 0.5in; MARGIN: 0in 0in 0pt 1in; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;.MasterPageFile = MasterPageDirectory + &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt 1in; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;current.ListItem[MasterPageSiteColumn].ToString();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;The &lt;B&gt;OnPreInit&lt;/B&gt; method has been overridden to change the master page. This gives a chance to set the custom master page which overrides the setting set in Master Page settings of the site.&lt;/P&gt;
&lt;P&gt;3. The &lt;B&gt;SPContext.Current.ListItem&lt;/B&gt; gives access to the instance of the publishing content page which is based on this Page Layout. The master page column value is read to find the value of Master Page selected for this page. This page is then set as the master page for this request.&lt;/P&gt;
&lt;P&gt;Compile and copy the dll into the bin directory of the website hosting the site collection, path for which should be of format &lt;B&gt;c:/InetPub/wwwroot/wss/&amp;lt;website name&amp;gt;/bin&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Add the following safe control entry to the web.config of the website. It will treat the custom class as safe control.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&amp;lt;SafeControl Assembly="DynamicMasterPageLayout, Version=1.0.0.0, Culture=neutral" Namespace="DynamicMasterPageLayout" TypeName="BasePageLayout" Safe="True"&amp;nbsp; /&amp;gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;In this sample, extra privileges will be required to change the master page; you should change the trust level to full in web.config&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&amp;lt;trust level="Full" originUrl="" /&amp;gt;&lt;/B&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Create Page Layouts derived from Page Layout base class&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1.&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;Use SharePoint Designer/ Visual Studio to create the Page Layout with name &lt;STRONG&gt;CustomMasterPageLayout.aspx&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;2.&amp;nbsp;&amp;nbsp;Copy the following code in the file&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow; mso-no-proof: yes"&gt;&amp;lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Page&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;language&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="C#"&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;Inherits&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DynamicMasterPageLayout.BasePageLayout"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;%&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow; mso-no-proof: yes"&gt;&amp;lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Tagprefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="SharePointWebControls"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint.WebControls"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;%&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow; mso-no-proof: yes"&gt;&amp;lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Tagprefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="WebPartPages"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint.WebPartPages"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;%&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow; mso-no-proof: yes"&gt;&amp;lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Tagprefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="PublishingWebControls"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint.Publishing.WebControls"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;%&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow; mso-no-proof: yes"&gt;&amp;lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Tagprefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="PublishingNavigation"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint.Publishing.Navigation"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;%&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;asp&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: red"&gt;ContentPlaceholderID&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="PlaceHolderPageTitle"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;runat&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="server"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;SharePointWebControls&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;FieldValue&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;id&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="PageTitle"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;FieldName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Title"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;runat&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="server"/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;asp&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;asp&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: red"&gt;ContentPlaceholderID&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="PlaceHolderMain"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;runat&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="server"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;SharePointWebControls&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;DropDownChoiceField&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: red"&gt;FieldName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="MasterPageName"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;runat&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="server"&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;SharePointWebControls&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;DropDownChoiceField&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;asp&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Content&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;3.&amp;nbsp;&amp;nbsp;Notice the Inherits from attribute in the code. The page layout now derives from our custom page layouts base class instead of default PublishingLayoutBase class.&lt;/P&gt;
&lt;P&gt;4.&amp;nbsp;&amp;nbsp;The MasterPagename column has been dropped on the page, which will let user select the master page while creating the actual page. It's not hidden and will show on actual page when user will view this page. But this can be configured so that it's not shown to end users and only shown in edit mode.&lt;/P&gt;
&lt;P&gt;5.&amp;nbsp;&amp;nbsp;In &lt;STRONG&gt;Site Settings page&lt;/STRONG&gt;, Select&lt;STRONG&gt; Master pages and page layouts &lt;/STRONG&gt;under the section&lt;STRONG&gt; Galleries&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;6.&amp;nbsp;&amp;nbsp;Use the Upload option to upload the page layout. Associate it to CustomMasterPageContentType as shown below.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;7.&amp;nbsp;&amp;nbsp;Check-in and publish the page so that it can be used by end users to create new pages.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Create Content Pages based on Page Layout&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;1. Choose &lt;B&gt;Site Actions &lt;/B&gt;dropdown, select &lt;B&gt;Create Page&lt;/B&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;2. In&lt;B&gt; Title &lt;/B&gt;specify&lt;B&gt; &lt;/B&gt;the name as BlueBand. This page will use the blueband.master page as master page.&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;3. Select &lt;B&gt;CustomMasterPageLayout.aspx&lt;/B&gt; as the page layout.&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;4. Select &lt;B&gt;Create&lt;/B&gt; button to create the page&lt;/P&gt;
&lt;P&gt;5. In the page which got create in previous step, from the master page dropdown field, choose the option &lt;B&gt;BlueBand.master&lt;/B&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;6. Submit the page for approval, approve and page is ready for viewing.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Repeat step 1-5 above to create another page which will be using the &lt;B&gt;BlackBand.master&lt;/B&gt; as the master page. In step 2, replace &lt;B&gt;BlackBand&lt;/B&gt; as page title and in step 4, choose the option &lt;B&gt;BlackBand.master&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Test the solution&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;1. Navigate to the page Pages/Blueband.aspx. You will observe blueband master page styles applied to the page&lt;/P&gt;
&lt;P mce_keep="true"&gt;2. Navigate to the page Pages/Blackband.aspx. You will observe blackband master page styles applied to the page&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Conclusion&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;SharePoint Server publishing provides great flexibility and extensible points for end users to extend the out of box features provided by product and implement different master pages for different pages in the same site based on the requested page. Many more such scenarios can be realized based on user profile to change the UI dynamically.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915824" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://blogs.msdn.com/taj/archive/tags/Master+Page/default.aspx">Master Page</category><category domain="http://blogs.msdn.com/taj/archive/tags/Publishing+Page/default.aspx">Publishing Page</category></item><item><title>Consuming External data using SharePoint 2010 Business Connectivity Services(BCS) and Office Excel 2010 Add-In</title><link>http://blogs.msdn.com/taj/archive/2009/10/20/consuming-external-data-using-sharepoint-2010-business-connectivity-services-bcs-and-office-excel-2010-add-in.aspx</link><pubDate>Tue, 20 Oct 2009 14:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9908216</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9908216.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9908216</wfw:commentRss><description>&lt;P&gt;In this walkthrough you will learn how to use Sharepoint Server 2010 Business Connectivity Services(BCS) feature to access external business data using Microsoft Excel 2010 as a client. This simple step-by-step will help you understand how to setup a BCS External list and then interact with it using browser or new OM available via Office clients. The code is not production ready and some changes may be required. I wrote this as a proof of concept while learning the client OM and have started liking this feature. I was talking to &lt;A title="Arpan Shah" href="http://blogs.msdn.com/arpans" mce_href="http://blogs.msdn.com/arpans"&gt;Arpan&lt;/A&gt; sometime back and he was very excited about this feature and his enthusiasm forced me to explore it. I am sure many products inside MS and from other vendors will start using the client OM support including caching and clubbed with Secure credentials storage on the client to make compelling applications.&lt;/P&gt;
&lt;H2&gt;Introduction&lt;/H2&gt;
&lt;P&gt;BCS is the new version of MOSS 2007 Business Data Catalog functionality. New features have been added which helps to interact with external data using rich interface provided by Microsoft Office 2010 client applications like OutLook, Access, SharePoint Workspace and Excel. This article demonstrates the client object model of BCS to consume External Data using Excel 2010 Add-In. After reading this, readers will understand how to set up metadata on the server to consume external data and show in Excel 2010 using an add-in.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Applies to: Microsoft SharePoint Server 2010 Beta 1, Microsoft Office Excel 2010 Beta 1&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Contents&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c1"&gt;Overview&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c2"&gt;Set up Server Environment&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c3"&gt;Create Model using SharePoint Designer&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c4"&gt;Define Operations on External System&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c5"&gt;Create External List based on External Content Type&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c6"&gt;Synchronize List using SharePoint Workspace 2010&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c7"&gt;Create Excel Add-In&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c8"&gt;Deploy and Test the solution&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#c9"&gt;Additional Resources&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;&lt;A title=c1 name=c1&gt;&lt;/A&gt;Overview&lt;/H2&gt;
&lt;P&gt;In this scenario, Adventure Works (AW) database hosted in SQL Server 2008 is used as an External System. An application definition is created using SharePoint Designer 2010(SPD) which include features to create External Content Type (ECT) metadata model. Function calls to the backend system&amp;nbsp;are modeled as an xml and imported into Business Data Connectivity Service metadata store. A SharePoint external list is created based on ECT defined in application metadata. This list is synchronized to the client machine using SharePoint Workspace 2010. &amp;nbsp;Workspace provides features to connect to a list and take content offline. On client side, Excel add-in is created which uses the BCS client object model to execute methods to get data from external system or read from cache available on client.&lt;/P&gt;
&lt;H2&gt;&lt;A title=c2 name=c2&gt;&lt;/A&gt;Set up Server Environment&lt;/H2&gt;
&lt;H3&gt;Software Requirements&lt;/H3&gt;
&lt;P&gt;The list of software required to run this scenario is as follows:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. Microsoft SQL Server 2008 x64&lt;/P&gt;
&lt;P&gt;2. Microsoft SharePoint Server 2010 Beta1&lt;/P&gt;
&lt;P&gt;3. Microsoft SharePoint Designer 2010&lt;/P&gt;
&lt;P&gt;4. Microsoft SharePoint Workspace 2010&lt;/P&gt;
&lt;P&gt;5. Microsoft Office Excel 2010&lt;/P&gt;
&lt;P&gt;6. Microsoft Visual Studio 2010 Beta1&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;Create AdventureWorks Database&lt;/H3&gt;
&lt;P&gt;AdventureWorks sample database available on Codeplex site is used to represent the external system. x64 version can be downloaded from link below. Run the setup to create the database.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407" mce_href="http://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407"&gt;http://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;Create Team site to host External List&lt;/H3&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. Create a web application with name intranet.contoso.com to host the site. It can be any URL based on your environment. The steps will have to be altered based on URL you choose for the site.&lt;/P&gt;
&lt;P&gt;2. Create a Site Collection based on Team Site template.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;&lt;A title=c3 name=c3&gt;&lt;/A&gt;Create Model using SharePoint Designer&lt;/H2&gt;
&lt;P&gt;SPD includes functionality to design the application definition model visually. Based on the options selected on UI, it generates the xml metadata in the background. Using ECT Designer in SPD you can discover database, point to the table, view, or stored procedure that will perform the operations, and then return the required data and use it to create external content type without writing any code or XML. Follow the steps below to create the ECT:&lt;/P&gt;
&lt;H3&gt;Define the general ECT settings&lt;/H3&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. On the client computer, start SharePoint Designer, and open the site you created above.&lt;/P&gt;
&lt;P&gt;2. To create an ECT, start by clicking Entities. &lt;/P&gt;
&lt;P&gt;3. On Ribbon, click the External Content Type button, as shown in figure 1.&lt;/P&gt;
&lt;P&gt;Fig 1 - External Content Type List&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" align=top src="http://yhee3q.blu.livefilestore.com/y1p1TwLd5SP9Ka_0EQd7udmwV6EnkJDoPcY3MvU0s7cUEJxqrJkYEwYGKkOC-DTUssfnz0Ph1DMRLd9NjkrCIty5W8ZQKBd8Owc/Fig%201.BMP" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1p1TwLd5SP9Ka_0EQd7udmwV6EnkJDoPcY3MvU0s7cUEJxqrJkYEwYGKkOC-DTUssfnz0Ph1DMRLd9NjkrCIty5W8ZQKBd8Owc/Fig%201.BMP"&gt;&lt;/P&gt;
&lt;P&gt;4. On New External Content Type page, specify the Name, Display Name, and the Office Item Type, as shown in the figure 2. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 2 - External Content Type Properties&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pLYAqTkQG1Qy8UcZV5ZFvapPsbE8zcXffyn_BGLdjpQLghe-GVOpOq-nOuW9Xpbn5zNaKgWWXXerl9TmLU-7Scw7xW0oOF9lN/Fig%202.BMP" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pLYAqTkQG1Qy8UcZV5ZFvapPsbE8zcXffyn_BGLdjpQLghe-GVOpOq-nOuW9Xpbn5zNaKgWWXXerl9TmLU-7Scw7xW0oOF9lN/Fig%202.BMP"&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;The Office Item Type selected determines the Outlook behavior you want to attach to the ECT. For e.g., if the behavior selected is of type contact, the record will show up as a contact while viewed in Outlook. The Offline Sync for external list field determines if lists based on this ECT can be taken offline in Microsoft Outlook or SharePoint Workspace. Accept the default Enabled setting.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;5. Click on the link Click here to discover external data sources and define operations. This will open up the windows to define the connection to AW database and operations for the ECT. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;6. Click Add Connection under External Data Source section and choose Data Source Type as SQL Server. This brings up the SQL connection properties dialog. In this we are connecting using SQL Server provider to get data. Provide connection details as shown in Figure 3. Since the environment on which the sample was created had WFE and database on same machine, we used localhost as server name. Press OK to create the connection. You will see AdventureWorks2008DB connection under the Data Explorer section.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 3 - SQL Server Connection Details&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pqax0speqbf_WCa6dHp5P3zqT_ZcgFYQ3xZgc3bPVul7jUt1ImfC0964J1LeTw-IS8rLVUcriKJsmjiXWoMn1thdB3cUvU6Be/Fig%203.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pqax0speqbf_WCa6dHp5P3zqT_ZcgFYQ3xZgc3bPVul7jUt1ImfC0964J1LeTw-IS8rLVUcriKJsmjiXWoMn1thdB3cUvU6Be/Fig%203.bmp"&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;&lt;A title=c4 name=c4&gt;&lt;/A&gt;Define Operations on External System&lt;/H3&gt;
&lt;P&gt;Once the connection is setup, operations are defined on the view which exposes sales by fiscal year for each user. You can explore the connection created in previous step. It shows database artifacts like tables, views etc. Create operations as follows:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. We will query sales data using view vSalesPersonSalesByFiscalYears. Right click on view name to see options for creating methods as shown in Fig 4. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 4 - Available operations to create using SPD&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pmYdyzCaCpceayDZ60XGwUUVAnOHUDRQOEwTEiDSNpD0RwnF1wENkciJHAZJW03L9zk54aC3RVKKGBRulx6r6eHMOdxM7XwdL/Fig%204.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pmYdyzCaCpceayDZ60XGwUUVAnOHUDRQOEwTEiDSNpD0RwnF1wENkciJHAZJW03L9zk54aC3RVKKGBRulx6r6eHMOdxM7XwdL/Fig%204.bmp"&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;SPD provides option to create the view for all common operations available in BCS or it can create operations for specific operation. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Following two minimum operations are required to fetch data from backend using BCS:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;a. Query Item List method which gets the list of records and work as finder method&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;b. Read Item method which gets data for specific record and work as SpecificFinder method&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;2. Click Create Query List operation to open the wizard to define method. Specify Operation Parameters as specified in figure 5. Click next&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 5 - Operation Parameters&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pwzBc_ts76xorPIR_I5XOHdcl_-fq-_Hmc88h0EcayOrnmFa9JeQn-8fxN0LU681muvlaq1Ysd2BbEOvdNOqUHvEYneh7Yd-W/Fig%205.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pwzBc_ts76xorPIR_I5XOHdcl_-fq-_Hmc88h0EcayOrnmFa9JeQn-8fxN0LU681muvlaq1Ysd2BbEOvdNOqUHvEYneh7Yd-W/Fig%205.bmp"&gt;&lt;/I&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;3. Skip the step to provide filter parameters as we will not define any operation to get filtered data. Click Next. In the Return Parameter Configuration step choose the options as shown in figure below&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 6 - Operation Return parameters&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pTceD0A7PsraphqAeXzRhHcDvQsyUCmUahYbzkhUvw1gvIxCF1KLsu3UIP7Sy9r6Dt_UnNFXXvAuRGe9Bf0bo--lKIXiaOyax/Fig%206.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pTceD0A7PsraphqAeXzRhHcDvQsyUCmUahYbzkhUvw1gvIxCF1KLsu3UIP7Sy9r6Dt_UnNFXXvAuRGe9Bf0bo--lKIXiaOyax/Fig%206.bmp"&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;4. Repeat step 2 and 3 to create specific finder operation named SalesPersonSalesByFiscalYearsReadItem. After this, the configuration should like figure 7, showing an entity named SalesTrend with two operations.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 7 - SalesTrend ECT Definition&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pd3_-TwY8pYyM6VQQHugq6tuqYtzB1N_5OUau1KCkcvS7AOQmYkP1bMkqPHiA7fJW6DobTJTuUnsIUeYiJ-H-UXQSX9j83y81/Fig%207.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pd3_-TwY8pYyM6VQQHugq6tuqYtzB1N_5OUau1KCkcvS7AOQmYkP1bMkqPHiA7fJW6DobTJTuUnsIUeYiJ-H-UXQSX9j83y81/Fig%207.bmp"&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;&lt;A title=c5 name=c5&gt;&lt;/A&gt;Create External List based on External Content Type&lt;/H2&gt;
&lt;P&gt;You can create an external content type by using Microsoft SharePoint Designer 2010 or the browser. Follow the steps given below to create list using browser.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. Open intranet.contoso.com in browser.&lt;/P&gt;
&lt;P&gt;2. Go to Site Actions, View All Site Content.&lt;/P&gt;
&lt;P&gt;3. Click the Create button. In the Custom Lists section, click External List. &lt;/P&gt;
&lt;P&gt;4. On the New page, type Sales as the list name and description for the new external list. &lt;/P&gt;
&lt;P&gt;5. The Data source configuration section displays a text box and an external content type picker. Use the picker to choose the external content type. Select SalesTrend and then click OK. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;6. Click Create.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;This creates the external list. You can now navigate to the new list in the SharePoint site and view/edit items.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;&lt;A title=c6 name=c6&gt;&lt;/A&gt;Synchronize List using SharePoint Workspace 2010&lt;/H2&gt;
&lt;P&gt;Rich Client Composites for SharePoint Server and Office allows you to connect to external list in SharePoint site to SPD to surface external data in SharePoint Workspace 2010. You need to first sync the list with client machine using office client tools. After this the ECT metadata model becomes available on client. BCS client object model can be used to query the data from backend system using this metadata.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. From client computer, navigate to the Sales external list using browser. &lt;/P&gt;
&lt;P&gt;2. To take the list offline in SPD, on the SharePoint site ribbon, go to List tab; click Sync to Computer as shown in figure 8. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 8 - Sync list to client&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pXBaywtuF0PM9CXC_QWZdV_dLt7hOmgWKUnZ0ab1hlZSepWe3eh1jEtT1XC1V2eawk9l5PDYzyCvoG8vMB3D81S6T88Lvr3vV/Fig%208.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pXBaywtuF0PM9CXC_QWZdV_dLt7hOmgWKUnZ0ab1hlZSepWe3eh1jEtT1XC1V2eawk9l5PDYzyCvoG8vMB3D81S6T88Lvr3vV/Fig%208.bmp"&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;This step will create the site structure and list on the client in SharePoint Workspace. It will also copy the metadata associated with the entity to the client BCS metadata store.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;3. Open the list in Workspace to check if all the records from the view are shown as list items. A detail about each selected record is shown below the list. Users can work on this data when they are offline and changes made to the data are synchronized back to the backend system if update operations are defined in ECT.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;&lt;A title=c7 name=c7&gt;&lt;/A&gt;Create Excel Add-In&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;Open Visual Studio 2010, select New Project and choose Excel 2007 Add-In template under Office Project Types&lt;/LI&gt;
&lt;LI&gt;Right click SalesFromECTAddin project in solution explorer, select Add, New Item, and select Ribbon (XML) as template for creating the ribbon. Name the file as SalesRibbon.cs&lt;/LI&gt;
&lt;LI&gt;Remove the auto-generated code and add the following xml in the SalesRibbon.xml file generated by Visual Studio. This XML adds a tab with label BCS, changes the label of the default control group to Sales and adds a button with label Show Sales Data. OnAction method of the SalesRibbon class is called when the button is clicked. The logic in which fetches the data from external system. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;lt;ribbon&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tabs&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tab idMso="TabAddIns" label="BCS"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;group id="ctlGroup" label="Sales"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;button id="btnFetch" label="Show Sales Data" visible="true" imageMso="SharePointListsWorkOffline" size="large" onAction="OnAction" /&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/group&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tab&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tabs&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;lt;/ribbon&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;/customUI&amp;gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;For step by step to create custom tab using Ribbon XML refer to the following link:http://msdn.microsoft.com/en-us/library/aa942955(VS.100).aspx&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;4. Remove the auto-generated code and add the following code in SalesRibbon.cs. OnAction method implements logic for creating instance of Sales class and showing data in excel sheet.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P&gt;using System;&lt;/P&gt;
&lt;P&gt;using System.Collections.Generic;&lt;/P&gt;
&lt;P&gt;using System.IO;&lt;/P&gt;
&lt;P&gt;using System.Linq;&lt;/P&gt;
&lt;P&gt;using System.Reflection;&lt;/P&gt;
&lt;P&gt;using System.Runtime.InteropServices;&lt;/P&gt;
&lt;P&gt;using System.Text;&lt;/P&gt;
&lt;P&gt;using Office = Microsoft.Office.Core;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;namespace SalesFromECTAddin&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ComVisible(true)]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class SalesRibbon : Office.IRibbonExtensibility&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Office.IRibbonUI ribbon;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public SalesRibbon()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IRibbonExtensibility Members&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string GetCustomUI(string ribbonID)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return GetResourceText("SalesFromECTAddin.SalesRibbon.xml");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Ribbon Callbacks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void OnAction(Office.IRibbonControl button)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sales salesData= new Sales();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; salesData.Show();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Helpers&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static string GetResourceText(string resourceName)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assembly asm = Assembly.GetExecutingAssembly();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] resourceNames = asm.GetManifestResourceNames();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; resourceNames.Length; ++i)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (string.Compare(resourceName, resourceNames[i], &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringComparison.OrdinalIgnoreCase) == 0)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (StreamReader resourceReader = new &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StreamReader(&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm.GetManifestResourceStream(resourceNames[i]))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (resourceReader != null)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return resourceReader.ReadToEnd();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;5. Copy the following code in ThisAddIn.cs file. This code overrides the CreateRibbonExtensibilityObject method and returns the Ribbon XML class to the Office Excel application.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P&gt;using System;&lt;/P&gt;
&lt;P&gt;using System.Collections.Generic;&lt;/P&gt;
&lt;P&gt;using System.Linq;&lt;/P&gt;
&lt;P&gt;using System.Text;&lt;/P&gt;
&lt;P&gt;using System.Xml.Linq;&lt;/P&gt;
&lt;P&gt;using Excel = Microsoft.Office.Interop.Excel;&lt;/P&gt;
&lt;P&gt;using Office = Microsoft.Office.Core;&lt;/P&gt;
&lt;P&gt;using Microsoft.Office.Tools.Excel;&lt;/P&gt;
&lt;P&gt;using Microsoft.Office.Tools.Excel.Extensions;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;namespace SalesFromECTAddin&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Add-In entry point class&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public partial class ThisAddIn&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void ThisAddIn_Startup(object sender, &lt;/P&gt;
&lt;P&gt;System.EventArgs e)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;private void ThisAddIn_Shutdown(object sender, &lt;/P&gt;
&lt;P&gt;System.EventArgs e)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override Microsoft.Office.Core.IRibbonExtensibility &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateRibbonExtensibilityObject()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new SalesRibbon();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region VSTO generated code&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Required method for Designer support - do not modify&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// the contents of this method with the code editor.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void InternalStartup()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Startup += new System.EventHandler(ThisAddIn_Startup);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;6. Create a new class called Sales and copy the following code in the file. Business Connectivity Services (BCS) uses a cache to store a copy of the external data that is synchronized to the client. The cache enables external data to be automatically copied on the client and managed for real-time access, with automatic data synchronization between the cache and the external application.The client cache is implemented as a per-user Microsoft SQL Server Compact database, which is encrypted with Encrypting File System (EFS). In this walkthrough, we will work online and execute method directly against the external system and will not use the cached(offline) copy. The last parameter OperationMode in api call entity.FindFiltered(in code below) determines if the call is made online or to the offline copy of data.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=590&gt;
&lt;P&gt;using System;&lt;/P&gt;
&lt;P&gt;using System.Collections.Generic;&lt;/P&gt;
&lt;P&gt;using System.Data;&lt;/P&gt;
&lt;P&gt;using System.Windows.Forms;&lt;/P&gt;
&lt;P&gt;using Microsoft.BusinessData.MetadataModel.Collections;&lt;/P&gt;
&lt;P&gt;using Microsoft.Office.BusinessData.MetadataModel;&lt;/P&gt;
&lt;P&gt;using Microsoft.BusinessData.MetadataModel;&lt;/P&gt;
&lt;P&gt;using Microsoft.BusinessData.Runtime;&lt;/P&gt;
&lt;P&gt;using Microsoft.Office.Interop.Excel;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;namespace SalesFromECTAddin&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Connects to backend using BCS OM and fetches the data&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp; class Sales&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Sales()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Executes the method to refresh data&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Show()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetDataFromExternalSystem();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Reads the metadata from client store and executes Finder &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// method against AdventureWorks DB using BCS client OM&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void GetDataFromExternalSystem()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Open the shared metadatacatalog to read LOB metadata &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // information. This class represents the Office clients&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // shared store for LOB metadata. Once on client it can be&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // accessed from any Office client app&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoteSharedFileBackedMetadataCatalog catalog = new &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoteSharedFileBackedMetadataCatalog();&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get all the LOB Systems in the catalog&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INamedLobSystemDictionary lobs = catalog.GetLobSystems("*");&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pick up our AdventureWorks app def from LOB system&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILobSystem lob = lobs["AdventureWorks2008DB"];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Find all the instances of AdventureWorks app def. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // In this case it's only going to be one.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INamedLobSystemInstanceDictionary lobInstances = &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lob.GetLobSystemInstances();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILobSystemInstance instance = lobInstances[0].Value;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Find all entities defined in the LOB instance&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INamespacedEntityDictionaryDictionary entities = &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance.GetEntities();&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pick up the first entity definition. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // It represents SalesTrend ECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumerator&amp;lt;IEntity&amp;gt; enumerator = entities.GetEnumerator();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enumerator.MoveNext();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEntity entity = enumerator.Current;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get the Finder method instances&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INamedMethodInstanceDictionary methodInstances = &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entity.GetMethodInstances(MethodInstanceType.Finder);&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get the view for the Finder method&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IView vw = entity.GetFinderView(methodInstances[0].Key);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create definition for data table to hold backend data&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Data.DataTable dt = new System.Data.DataTable();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int count = 0; count &amp;lt; vw.Fields.Count; count++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dt.Columns.Add(vw.Fields[count].TypeDescriptor.Name);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFilterCollection fc = entity.GetDefaultFinderFilters();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Execute Finder method to get data from backend. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Operation Mode is online, hence data will be fetched&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // from backend system and not read from cache&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEntityInstanceEnumerator entitiesList = &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.FindFiltered(fc, &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; methodInstances[0].Value.Name, &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance, &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OperationMode.Online);&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldCollection flds = vw.Fields;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Populate the data table&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (entitiesList.MoveNext())&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataRow row = dt.NewRow();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (IField fld in flds)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[fld.Name] = entitiesList.Current[fld.Name];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dt.Rows.Add(row);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Refresh excel sheet&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RefreshSheet(dt,vw);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Read the datatable and refreshes the Excel Sheet&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="dt"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="vw"&amp;gt;&amp;lt;/param&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void RefreshSheet(System.Data.DataTable dt, IView vw)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Worksheet xlSheet = &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((Worksheet)Globals.ThisAddIn.Application.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ActiveWorkbook.Worksheets["Sheet1"]);&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlSheet.Cells.Clear();&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numFlds = vw.Fields.Count;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFieldCollection flds = vw.Fields;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int colCounter=0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Render headers&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach (IField fld in flds)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colCounter++;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlSheet.Cells[1, colCounter] = fld.Name;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Render data rows&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int rowCounter = 0; rowCounter &amp;lt; dt.Rows.Count; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowCounter++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colCounter=0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(colCounter&amp;lt;numFlds)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlSheet.Cells[rowCounter + 2, colCounter+1] = &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dt.Rows[rowCounter][colCounter];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colCounter++;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(ex.StackTrace);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;7. Compile this source and see if build is successful. Next task is to create a clickonce setup package to install the add-in. This is very easy and can be done in Visual Studio itself. Right click the project in solution explorer and choose publish option. This will bring up the dialog as shown in figure 9. Choose the location where you want to create the vsto package and select Finish. This will create the package at the specified location.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 9 - Publishing Wizard&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1p4jw-clRH6pYkg8ulC0-XI1y7bJKmIrBXqVWFKr-SME4WQir7rbeo84OteU1_gY7ID-mSo_HrEQH1vMGfKsqqZBIWqq9zgUkw/Fig%209.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1p4jw-clRH6pYkg8ulC0-XI1y7bJKmIrBXqVWFKr-SME4WQir7rbeo84OteU1_gY7ID-mSo_HrEQH1vMGfKsqqZBIWqq9zgUkw/Fig%209.bmp"&gt;&lt;/P&gt;
&lt;H3&gt;&lt;A title=c8 name=c8&gt;&lt;/A&gt;Deploy and Test the solution&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Double click the .vsto file created in the package above to install the add-in. The installer will run the appropriate customizations and install the add-in.&lt;/LI&gt;
&lt;LI&gt;Open the Excel application and you should see the tab with label BCS in the ribbon. Select the newly created tab and you will see a button Get Sales Data in the ribbon. This shows that our solution has successfully installed on the client.&lt;/LI&gt;
&lt;LI&gt;Click the button to execute Finder method on the ECT. The client object model executes the call against the external system since we choose the operationmode as online in the code. Code will fetch the sales information and update the sheet1 of excel file with data as shown in Fig 10. This successfully demonstrates the BCS features on the client.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Fig 10 - External data in Excel file&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 400px" src="http://yhee3q.blu.livefilestore.com/y1pEVMztCkPL8dLH73u6W7oNKMnWL4jAl_AfUySNyJ-XRVC_6idX4HJZ0Bjk1xsVKdMBlEq7dIa2-jes1sn98XOI2hLYJli9uLQ/Fig%2010.bmp" width=600 height=400 mce_src="http://yhee3q.blu.livefilestore.com/y1pEVMztCkPL8dLH73u6W7oNKMnWL4jAl_AfUySNyJ-XRVC_6idX4HJZ0Bjk1xsVKdMBlEq7dIa2-jes1sn98XOI2hLYJli9uLQ/Fig%2010.bmp"&gt;&lt;/P&gt;
&lt;H2&gt;&lt;A href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#" mce_href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=5529&amp;amp;postid=9908216#"&gt;Conclusion&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;The new BCS feature in SharePoint 2010 provides numerous features and possibilities to consume data from external system and use in offline and connected fashion. Add-ins, task panes and other Office extensibility features can be created which can help interact with the external data using the user friendly Office Client applications.&lt;/P&gt;
&lt;H2&gt;&lt;A title=c9 name=c9&gt;&lt;/A&gt;Additional Resources&lt;/H2&gt;
&lt;P&gt;For more information, see the following resources:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/vsto/default.aspx" mce_href="http://msdn.microsoft.com/en-us/vsto/default.aspx"&gt;Office Development with Visual Studio Developer Center&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title="BCS Msdn documentation" href="http://msdn.microsoft.com/en-us/library/ee556826(office.14).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ee556826(office.14).aspx"&gt;BCS msdn documentation&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9908216" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/Sharepoint+2010/default.aspx">Sharepoint 2010</category><category domain="http://blogs.msdn.com/taj/archive/tags/Excel+Add-In/default.aspx">Excel Add-In</category><category domain="http://blogs.msdn.com/taj/archive/tags/External+List/default.aspx">External List</category><category domain="http://blogs.msdn.com/taj/archive/tags/Excel+2010/default.aspx">Excel 2010</category><category domain="http://blogs.msdn.com/taj/archive/tags/BCS/default.aspx">BCS</category><category domain="http://blogs.msdn.com/taj/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category></item><item><title>SharePoint 2010 Introduced at SPC09</title><link>http://blogs.msdn.com/taj/archive/2009/10/20/sharepoint-2010-introduced-at-spc09.aspx</link><pubDate>Tue, 20 Oct 2009 08:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909758</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9909758.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9909758</wfw:commentRss><description>&lt;P&gt;The most exciting release in SharePoint history has been introduced to the general community at SharePoint Conference 2009. The product has host of new features around scalability, maintainability, social and all and all a great enterprise product. Sneak peak vidoes give good overview about the investments in Developer and Infrastructure space. There are many features which I wanted to write on but I am not sure what's under NDA so just highlighting few which are applicable to any SharePoint deployment. They are:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Developer Dashboard&lt;/STRONG&gt; - Interactive way in which develoeprs can see what's happening on their pages. Why they are slow and they can get a trace on page itself about the time taken by different webparts to render themselves. Support has been added in base classes for spitting out this information during different events in page lifecycle. This will help to easily isloate the problem areas for slow rendering pages.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Powershell support - &lt;/STRONG&gt;PS is now first class citizen for managing the SharePoint Farms. Lot of scripts have been written by the Product team to automate the management of various activities in a farm.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Scalability aspects - &lt;/STRONG&gt;Service model has been introduced for various services which were earlier part of SSP. Now each service can be hosted individaully and managed in individual databases. This help in isolating the content, manage backup/restores and overall make the system robust&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Logging -&lt;/STRONG&gt; New concept of co-relation guids have been introduced which log each message for a call in logs with a guid that can be used to correlate the messagge with the error. The corelation guid is shown on page when error occurs. This can be used to find the related messages.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Business Connectivity Services (BCS) - &lt;/STRONG&gt;This one is most exciting feature in v4. All those who have worked with BDC in MOSS2007 have enjoyed the capabilities of the integeration feature for fetching data and for search. This version renamed to BCS goes a step further and provide symmetric programming model on client as well. What this means is that you can connect to LOB systems using the BCS Api's even from client software like Outlook, SharePoint Worksapce, Excel etc. You have read/write capabilities and there are far more connectors now including new addition of WCF and .NET custom assemblies as out of box connectors. It also allows you to write your own custome connectors. That's a great capability and I am sure you will see some great apps made on this framework.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;There are many more features which you will see people blogging and documented on official SharePoint sites. Get started and start playing with the bits. You can download the bits and get rolling. Here are some links to start with&lt;/P&gt;
&lt;P&gt;Developer Content - &lt;A href="http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx" mce_href="http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx"&gt;http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;IT Professional - &lt;A href="http://technet.microsoft.com/en-us/default.aspx" mce_href="http://technet.microsoft.com/en-us/default.aspx"&gt;http://technet.microsoft.com/en-us/default.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909758" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/Sharepoint+2010/default.aspx">Sharepoint 2010</category></item><item><title>Introducing SharePoint 2010</title><link>http://blogs.msdn.com/taj/archive/2009/10/15/introducing-sharepoint-2010.aspx</link><pubDate>Thu, 15 Oct 2009 14:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9907679</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9907679.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9907679</wfw:commentRss><description>&lt;P&gt;Come monday and the biggest SharePoint mela is going to start in Vegas on Oct19th, the SharePoint Conference 2009. Keynote will be delivered by Steve Ballmer and one of the best releases in SharePoint history will be introduced to the general community. I have seen some feature bits and the sneak peak videos and found the whole stuff very promising.&lt;/P&gt;
&lt;P&gt;It's about 4 years I have been playing&amp;nbsp;with SharePoint, going back to 2005 when I joined Microsoft and landed&amp;nbsp;in the Collaboration team. There&amp;nbsp;was lot of demand for resources good in SharePoint 2003. I was always a middleware person(that's what I&amp;nbsp;used to call myself) with some large engagements&amp;nbsp;using BizTalk and SQL Server under my belt. Moving to SPS2003 was like moving to a UI centric product which was little difficult for me. &lt;/P&gt;
&lt;P&gt;Now here comes the question, is&amp;nbsp;SharePoint a product, server&amp;nbsp;or platform? After doing many engagements and&amp;nbsp;now seeeing the 3rd version rolled out, I can defintely say it's a platform. There are rules of game and to understand SharePoint you have to&amp;nbsp;understand the platform. People who feel that they can master it in a day should not think that way. There are many things which you may write code for but the features may be available OOB. You just need to know know where and how.&lt;/P&gt;
&lt;P&gt;Even after 4 years and being Microsoft Certified Master in this product, I feel there are many things I am not aware of. Daily in one or other blog, I find information which our MVP's, Masters and other top authorities find and share. It's just a great platform whiere you have amazing capabilities.&lt;/P&gt;
&lt;P&gt;There are new feature areas where I&amp;nbsp;may want to concentrate and will blog once the new version goes public beta post SPC. Just follow the blog and&amp;nbsp;I will try to contribute some good stuff.&lt;/P&gt;
&lt;P&gt;Meanwhile, to learn more about SharePoint history, engineering and platform, read these posts from Jeff Tepper, VP for SharePoint.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/sharepoint/archive/2009/10/05/sharepoint-history.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2009/10/05/sharepoint-history.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9907679" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://blogs.msdn.com/taj/archive/tags/Sharepoint+2010/default.aspx">Sharepoint 2010</category></item><item><title>SharePoint 2010 Ignite Training for Partners</title><link>http://blogs.msdn.com/taj/archive/2009/09/13/sharepoint-2010-ignite-training-for-partners.aspx</link><pubDate>Sun, 13 Sep 2009 11:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9894630</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9894630.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9894630</wfw:commentRss><description>&lt;P&gt;If you are interested in kick starting and be ahead of the curve then do attend the Ignite training happening in Banglore, India in Dec 2009. Its a deep dive into the new version of the product and some of the best instructors will be presenting. There are two tracks, one for IT Pros and others for developers. Go ahead and register!&lt;/P&gt;
&lt;P&gt;More details at this &lt;A title=entry href="http://blogs.msdn.com/sharepoint/archive/2009/08/27/sharepoint-2010-partner-training-for-sharepoint-2007-partners.aspx" target=_blank mce_href="http://blogs.msdn.com/sharepoint/archive/2009/08/27/sharepoint-2010-partner-training-for-sharepoint-2007-partners.aspx"&gt;entry&lt;/A&gt; by Arpan Shah.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9894630" width="1" height="1"&gt;</description></item><item><title>Getting the SharePoint MCM Certification</title><link>http://blogs.msdn.com/taj/archive/2009/07/25/getting-the-sharepoint-mcm-certfication.aspx</link><pubDate>Sat, 25 Jul 2009 12:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9848289</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9848289.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9848289</wfw:commentRss><description>&lt;P&gt;Couple of days back program manager for SharePoint MCM did a &lt;A title=post href="http://blogs.technet.com/themasterblog/archive/2009/07/22/introducing-the-newest-microsoft-certified-masters-for-sharepoint.aspx" target=_blank mce_href="http://blogs.technet.com/themasterblog/archive/2009/07/22/introducing-the-newest-microsoft-certified-masters-for-sharepoint.aspx"&gt;post&lt;/A&gt; on master blog about new Masters. It's good to see myself in that elite list of true SharePoint experts. It was a great experience attending the program which helped me know what challenges the product has and many things which I was not aware of. I had been working with the product for 4 years but still came out of training with knowledge which I was missing earlier.&lt;/P&gt;
&lt;P&gt;Spending three weeks with smartest and brightest classmates and best SharePoint instructors was rewarding experience. It's tough for sure with 3 written exam and a cruel :-) lab. But you will enjoy each and every moment of those 3 weeks. Best SharePoint training on the planet. What the program is all about and how to enroll, fee etc can be found &lt;A title=here href="http://www.microsoft.com/learning/en/us/certification/master.aspx" mce_href="http://www.microsoft.com/learning/en/us/certification/master.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I will strongly encourage all the SharePoint experts to take this training and certification as it will help them in their professional career and also enhance their knowledge and skills.&lt;/P&gt;
&lt;P&gt;Tajeshwar&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9848289" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/Microsoft+Certified+Master/default.aspx">Microsoft Certified Master</category><category domain="http://blogs.msdn.com/taj/archive/tags/MCM/default.aspx">MCM</category><category domain="http://blogs.msdn.com/taj/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>Problem mapping user profile properties</title><link>http://blogs.msdn.com/taj/archive/2009/07/04/problem-mapping-user-profile-properties.aspx</link><pubDate>Sat, 04 Jul 2009 07:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9817270</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9817270.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9817270</wfw:commentRss><description>&lt;P&gt;One of my colleague pinged&amp;nbsp;me with a strange problem he was encountering in user profile property mapping.&amp;nbsp;He wasn't able to add or edit user profile property import mappings because the 'Data source field to map' drop down and the 'Enter field to map' text box were missing from the 'User Profile Property' page in SSP. The page was coming without the dropdowns and showing &lt;STRONG&gt;&lt;FONT color=#cc0000&gt;'The selection of directory service properties is disabled because the portal is in an untrusted domain or no directory service import is configured yet';&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I initially thought it to be some issue with security permissions on reading some specific AD attributes. But that was not the case as he has succesfully imported the profiles from AD. Later on it was realized that the account under which he was running the SSP was a local box account and not a domain account. While importing profile he was prompted for domain account for importing profiles, that's why he was able to succesfully import the profiles. But when the profile property page tried to connect using the SSP account, it failed and hence disabled the drop downs.&lt;/P&gt;
&lt;P&gt;So if you are facing this issue, just make sure that the account used for import has read access to the directory store which generally the domain accounts will have.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9817270" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/User+Profile/default.aspx">User Profile</category></item><item><title>Update on FBA support with Office Client</title><link>http://blogs.msdn.com/taj/archive/2009/06/11/update-on-fba-support-with-office-client.aspx</link><pubDate>Thu, 11 Jun 2009 09:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9725947</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9725947.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9725947</wfw:commentRss><description>&lt;P&gt;If you have worked with SharePoint FBA and have seen the issues with Office client, there is some good news for you. In a new patch for client there is support added to make the client work properly with SharePoint and provide better user experience. Steve, the Master Ranger has blogged the process very nicely in sharepoint team blog &lt;A title=here. href="http://blogs.msdn.com/sharepoint/archive/2009/05/13/update-on-sharepoint-forms-based-authentication-fba-and-office-client.aspx" mce_href="http://blogs.msdn.com/sharepoint/archive/2009/05/13/update-on-sharepoint-forms-based-authentication-fba-and-office-client.aspx"&gt;here&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9725947" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/FBA/default.aspx">FBA</category></item><item><title>BlobCache Demystified</title><link>http://blogs.msdn.com/taj/archive/2009/06/09/blobcahe-demystified.aspx</link><pubDate>Tue, 09 Jun 2009 05:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9711491</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/9711491.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9711491</wfw:commentRss><description>&lt;P&gt;Just read Stefan's &lt;A title=post href="http://blogs.technet.com/stefan_gossner/archive/2009/05/02/moss-2007-blob-caching-and-it-s-limitations.aspx" target=_blank mce_href="http://blogs.technet.com/stefan_gossner/archive/2009/05/02/moss-2007-blob-caching-and-it-s-limitations.aspx"&gt;post&lt;/A&gt;&amp;nbsp;on blob caching. Very interesting to know that it's not a publishing only feature. Other site types like team sites can also use it. This can help to squeeze out some extra perf benefit from these site types.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9711491" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/BlobCache/default.aspx">BlobCache</category></item><item><title>Updating Content Types Custom Edit, View Displayforms</title><link>http://blogs.msdn.com/taj/archive/2009/06/09/updating-content-types-custom-edit-view-displayforms.aspx</link><pubDate>Tue, 09 Jun 2009 04:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9711436</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/taj/comments/9711436.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=9711436</wfw:commentRss><description>&lt;P&gt;I spent whole day yesterday to update the custom edit forms for a content type. Well, I was writing a workflow and wanted to write custom UI for my tasks editing. There are couple of ways, using aspx forms or InfoPath. I tried to go via aspx route. To do it via aspx you need to basically create a content type for your task type and create the edit pages for the content type. When you click the task for editing, SharePoint opens the edit form for the content type. Neat! The process is well documented &lt;A title=Here href="http://msdn.microsoft.com/en-us/library/ms438856.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/ms438856.aspx"&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Now the problem I was facing was that even though I specified a new task edit form aspx page, on clicking the edit link I was still getting the OOB dispform.aspx page while viewing the task. This was weird as I tried all different options including deactivate and&amp;nbsp;uninstalling feature. I wrote a small console app to loop through the SPContentType and see whats the props set in that. It showed that the props for &lt;STRONG&gt;editformurl&lt;/STRONG&gt; and &lt;STRONG&gt;displayformurl props &lt;/STRONG&gt;are still having empty string as their value. I just wrote following lines of code to update them to the urls for my custom forms and updated the content type. And it all started working fine&lt;/P&gt;
&lt;P&gt;SPContentType ct=web.Lists["ListName"].ContentTypes["ContentTypeName"];&lt;/P&gt;
&lt;P&gt;ct.EditFormUrl="_layouts/youreditpage.aspx";&lt;/P&gt;
&lt;P&gt;ct.Update();&lt;/P&gt;
&lt;P&gt;What I interpreted&amp;nbsp;is that deploying the task content type using feature is not properly associating the formurls with the contenttype properties.&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9711436" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/WSS+v3/default.aspx">WSS v3</category><category domain="http://blogs.msdn.com/taj/archive/tags/content+types/default.aspx">content types</category><category domain="http://blogs.msdn.com/taj/archive/tags/workflow/default.aspx">workflow</category></item><item><title>SharePoint Exams..Passed!</title><link>http://blogs.msdn.com/taj/archive/2007/03/04/sharepoint-exams-passed.aspx</link><pubDate>Sun, 04 Mar 2007 07:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1801267</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/taj/comments/1801267.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=1801267</wfw:commentRss><description>&lt;P&gt;Just passed the two new SharePoint IT Pro exams... &lt;STRONG&gt;&lt;FONT color=#006bad&gt;70-630 &lt;/FONT&gt;&lt;/STRONG&gt;WSS 3.0&amp;nbsp;Configuring and &lt;STRONG&gt;&lt;FONT color=#006bad&gt;70-631 &lt;/FONT&gt;&lt;/STRONG&gt;MOSS 2007 "Configuring" Technology Specialist (TS)&amp;nbsp;exams.&lt;/P&gt;
&lt;P&gt;It was a productive week at TR4. Since I was a speaker also so it was a little busy for me to prepare for the exams. But I really enjoyed the exams and fortunately was able to pass both of them. Though I found WSS a little tough compared to MOSS because of lot of deployment questions.&lt;/P&gt;
&lt;P&gt;Tajeshwar Singh&lt;/P&gt;
&lt;P&gt;MCSD.Net, MCTS: (WSS 3.0 Configuring, MOSS 2007 Configuring)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1801267" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/taj/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/WSS+v3/default.aspx">WSS v3</category></item><item><title>Extending Stsadm Command</title><link>http://blogs.msdn.com/taj/archive/2006/11/10/extending-stsadm-command.aspx</link><pubDate>Fri, 10 Nov 2006 21:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1054929</guid><dc:creator>Tajeshwar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/taj/comments/1054929.aspx</comments><wfw:commentRss>http://blogs.msdn.com/taj/commentrss.aspx?PostID=1054929</wfw:commentRss><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;While going through the WSS v3 Object Model, I came across an important interface ISPStsAdmCommand. Initially, I&amp;nbsp;wasn't able to find any documentation as product is about to RTM and doc is not complete. After some&amp;nbsp; research and thankfully to an excellent post by Tony Bierman at &lt;A href="http://sharepointsolutions.blogspot.com/" mce_href="http://SharePointSolutions.blogspot.com"&gt;&lt;A title=http://sharepointsolutions.blogspot.com/2006/09/extending-stsadmexe-with-custom.html href="http://sharepointsolutions.blogspot.com/2006/09/extending-stsadmexe-with-custom.html" mce_href="http://sharepointsolutions.blogspot.com/2006/09/extending-stsadmexe-with-custom.html"&gt;http://sharepointsolutions.blogspot.com/2006/09/extending-stsadmexe-with-custom.html&lt;/A&gt;&lt;/A&gt;,&amp;nbsp;got lot of information about this Interface.&lt;/P&gt;
&lt;P&gt;I am not going to dig much into the API as it has been well covererd by Tony's blog. At high level, this allows you to extend the operations provided by StsAdm command and use it to do common&amp;nbsp;repetitive tasks like taking backups, giving rights etc. &lt;/P&gt;
&lt;P&gt;ISPStsadmCommand has two interfaces&lt;/P&gt;
&lt;P&gt;1. string GetHelpMessage ( string command )&lt;/P&gt;
&lt;P&gt;which shows the help for how to use the operation. &lt;/P&gt;
&lt;P&gt;Usage stsadm -help [operation]&lt;/P&gt;
&lt;P&gt;2. int Run ( string command, StringDictionary keyValues, out string output )&lt;/P&gt;
&lt;P&gt;which is called to run the logic of user implemented operation.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT color=#0000ff&gt;keyValues&lt;/FONT&gt;&lt;/EM&gt; is the dictionary containing command line parameters and their value passed&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;EM&gt;output&lt;/EM&gt; &lt;/FONT&gt;is of type out parameter and used to show the message to be shown on command line as a result of running the command.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To test and extend this interface, I created an operation to delete all Webs below a&amp;nbsp;SPWeb recursively.&amp;nbsp;There were some posts on forums that on deleting a child web (which is not a top level site), if it contains subwebs, deletion is not allowed. This becomes a pain as user has to delete all the subwebs individually and then only the child web can be deleted. I decided to provide this functionality as a stsadm command.&lt;/P&gt;
&lt;P&gt;The implemented operation recursively get all the sites one by one and delete them, finally followed by the child site. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Command syntax&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;c:\&amp;gt; stsadm.exe&lt;/STRONG&gt; -o &lt;STRONG&gt;DeleteWebRecursive&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;-url&lt;/FONT&gt; &lt;A href="http://sitename/webname" mce_href="http://sitename/webname"&gt;http://sitename/webname&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This will delete all the webs under web names "webname"&lt;/P&gt;
&lt;P&gt;I am attaching the solution for this custom extended command without any warranties :).&lt;/P&gt;
&lt;P&gt;Copy following content&lt;/P&gt;
&lt;P&gt;- Copy the SiteDelete.dll present in bin directory to GAC.&lt;/P&gt;
&lt;P&gt;- Copy the stsadmcommands.customsitedelete.xml file in root folder to "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\CONFIG" folder&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's all to start using the extended operation. Let me know in case of bugs or improvements.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1054929" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/taj/attachment/1054929.ashx" length="11439" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/taj/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/taj/archive/tags/STsadm/default.aspx">STsadm</category><category domain="http://blogs.msdn.com/taj/archive/tags/Customization/default.aspx">Customization</category><category domain="http://blogs.msdn.com/taj/archive/tags/WSS+v3/default.aspx">WSS v3</category></item></channel></rss>