<?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>Subhajit's Blog : SharePoint</title><link>http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx</link><description>Tags: SharePoint</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Tip: The untold story of Audit Logs in SharePoint</title><link>http://blogs.msdn.com/subhajitc/archive/2009/05/20/tip-the-untold-story-of-audit-logs-in-sharepoint.aspx</link><pubDate>Wed, 20 May 2009 11:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9631870</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/9631870.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=9631870</wfw:commentRss><description>&lt;P&gt;Auditing&amp;nbsp;events is an important feature of SharePoint.&amp;nbsp;Read &lt;A href="http://technet.microsoft.com/en-us/library/cc824909.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc824909.aspx"&gt;this&lt;/A&gt;&amp;nbsp;article to understand&amp;nbsp;more around the list of events that can be audited&amp;nbsp;when audit logging is enabled.&amp;nbsp;Audit settings can be configured at the site collection level only. The logs&amp;nbsp;are maintained&amp;nbsp;in the &lt;STRONG&gt;dbo.&lt;EM&gt;AuditData&lt;/EM&gt;&lt;/STRONG&gt; table of the respective content database.&lt;/P&gt;
&lt;P&gt;However, what is interesting to know is that these logs can&amp;nbsp;bloaten the content&amp;nbsp;database significantly especially for internet based WCM sites. If&amp;nbsp;"&lt;EM&gt;&lt;STRONG&gt;Opening or downloading documents, viewing items in lists, or viewing item properties&lt;/STRONG&gt;&lt;/EM&gt;" audit setting has been turned on, then for every hit to&amp;nbsp;a page&amp;nbsp;more than 100 entries could be&amp;nbsp;recorded in the dbo.AuditData table. This figure would typically depend on the count of images, stylesheets, UI elements that fetch data from lists, etc that are&amp;nbsp;available on the page. &lt;/P&gt;
&lt;DIV style="PADDING-BOTTOM: 5px; BACKGROUND-COLOR: yellow; MARGIN: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: black; PADDING-TOP: 5px"&gt;&lt;U&gt;Some statistics around this!&lt;/U&gt; 
&lt;P&gt;The &lt;STRONG&gt;&lt;EM&gt;dbo.AuditData&lt;/EM&gt;&lt;/STRONG&gt;&amp;nbsp;table can grow at&amp;nbsp;a rate&amp;nbsp;&amp;gt; 64 KB (approx)&amp;nbsp;per page hit. &lt;/P&gt;
&lt;P&gt;Assuming that&amp;nbsp;we have 10,000 hits to the site(/page) in a day, the&amp;nbsp;growth in size would be 10000 * 64 KB&amp;nbsp;~ 645 MB/day. &lt;/P&gt;
&lt;P&gt;This means that even if we do not add any content to the site, the content database&amp;nbsp;will still grow by 15 GB&amp;nbsp;(approx) per month. This is quite a large growth and would impose manageability issues especially if&amp;nbsp;there are&amp;nbsp;constraints around database storage infrastructure.&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Organizations planning to enable auditing for their internet facing sites&amp;nbsp;should consider these statistics and come up with archival policies for audit logs.&lt;/P&gt;
&lt;P&gt;Post&amp;nbsp;Infrastructure&amp;nbsp;Update release of MOSS, the &lt;A href="http://technet.microsoft.com/en-us/library/cc706879.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc706879.aspx"&gt;&lt;STRONG&gt;TrimAuditLog&lt;/STRONG&gt;&lt;/A&gt;&amp;nbsp;STSADM command is&amp;nbsp;available for farm administrators to&amp;nbsp;truncate the audit logs. This command may be executed periodically&amp;nbsp;to delete old entries from the audit logs.The content database&amp;nbsp;should be shrunk (using &lt;EM&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ms190488.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/ms190488.aspx"&gt;DBCC SHRINKDATABASE&lt;/A&gt;&lt;/EM&gt; command)&amp;nbsp;post execution of this command to release the freed up space.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9631870" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/subhajitc/archive/tags/Audit+Logs/default.aspx">Audit Logs</category></item><item><title>Interesting Read: SharePoint "Farm Communications"</title><link>http://blogs.msdn.com/subhajitc/archive/2009/04/20/interesting-read-sharepoint-farm-communications.aspx</link><pubDate>Mon, 20 Apr 2009 15:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9556616</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/9556616.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=9556616</wfw:commentRss><description>&lt;P&gt;A SharePoint farm is&amp;nbsp;an extremely "chatty" environment.&amp;nbsp;A lot of inter server communications keeps on happening all the time. I had been looking for a consolidated list of such things, when I came across &lt;A href="http://blogs.msdn.com/uksharepoint/archive/2009/01/05/sharepoint-ports-proxies-and-protocols-an-overview-of-farm-communications.aspx" target=_blank mce_href="http://blogs.msdn.com/uksharepoint/archive/2009/01/05/sharepoint-ports-proxies-and-protocols-an-overview-of-farm-communications.aspx"&gt;this&lt;/A&gt; blog of the MCS (U.K) SharePoint Team. This blog talks about how the various servers in a SharePoint Farm communicate with each other, what ports, protocols and proxies are involved.&amp;nbsp;A must read for all budding SharePoint solution architects!&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=9556616" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/subhajitc/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Tip: Avoid "bloating" of log files for large content databases during a MOSS upgrade</title><link>http://blogs.msdn.com/subhajitc/archive/2009/03/16/tip-avoid-bloating-of-log-files-for-large-content-databses-during-a-moss-upgrade.aspx</link><pubDate>Mon, 16 Mar 2009 12:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9481097</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/9481097.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=9481097</wfw:commentRss><description>&lt;P&gt;While&amp;nbsp;upgrading a SharePoint farm to the December Cumulative update,&amp;nbsp;there was&amp;nbsp;an unprecendented growth&amp;nbsp;of the databse log file&amp;nbsp;for&amp;nbsp;a large&amp;nbsp;content database (size ~200GB) during the upgrade process. The database upgrade was failing as there was no space in the log file partition. Also, the log file could not be truncated to free up the space.&lt;/P&gt;
&lt;P&gt;This was overcome by changing the &lt;STRONG&gt;Database Recovery&lt;/STRONG&gt; model from &lt;STRONG&gt;Full&lt;/STRONG&gt; to &lt;STRONG&gt;Simple&lt;/STRONG&gt;. Under &lt;EM&gt;&lt;STRONG&gt;Full Recovery Model, &lt;/STRONG&gt;&lt;/EM&gt;log files&lt;STRONG&gt; &lt;/STRONG&gt;are not truncated untill a log backup has been completed. With Simple recovery model this problem can be avoided as transactions are flushed out automatically till the last committed&amp;nbsp; point.&lt;/P&gt;
&lt;P&gt;Product team recommends that the recovery model for content&amp;nbsp;databases&amp;nbsp;should&amp;nbsp;be set to full. However, during upgrades,&amp;nbsp;it might be a good idea to change it to simple and revert that back to full once the upgrade completes. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9481097" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Just Released: 10 Best Practices For Building SharePoint Solutions</title><link>http://blogs.msdn.com/subhajitc/archive/2009/03/03/just-released-10-best-practices-for-building-sharepoint-solutions.aspx</link><pubDate>Tue, 03 Mar 2009 09:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9456041</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/9456041.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=9456041</wfw:commentRss><description>&lt;P&gt;The March 09 &lt;A href="http://msdn.microsoft.com/en-us/magazine/dd458798.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/magazine/dd458798.aspx"&gt;issue&lt;/A&gt; of MSDN magazine contains a very interesting article on "&lt;STRONG&gt;&lt;A href="http://msdn.microsoft.com/en-us/magazine/dd458798.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/magazine/dd458798.aspx"&gt;SharePoint: 10 Best Practices For Building SharePoint Solutions&lt;/A&gt;&lt;/STRONG&gt;". This is a must read for all SharePoint developers. It contains a summary of key practices that should be followed for building solutions on SharePoint.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9456041" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>How To: Delete corruption/orphaned records from the content databases</title><link>http://blogs.msdn.com/subhajitc/archive/2008/09/14/how-to-delete-corruption-orphaned-records-from-the-content-databases.aspx</link><pubDate>Sun, 14 Sep 2008 21:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8951817</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8951817.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8951817</wfw:commentRss><description>&lt;P&gt;Orphaned records can cause a lot of trouble. The content databses should be&amp;nbsp;inspected on a&amp;nbsp;periodic basis to check for orphaned records. &lt;/P&gt;
&lt;P&gt;The following STSADM command may be used to check for corruption,-&lt;/P&gt;
&lt;P&gt;stsadm -o databaserepair -url {&lt;A href="http://servername/" mce_href="http://servername"&gt;&lt;EM&gt;http://servername&lt;/EM&gt;&lt;/A&gt;} -databasename {&lt;EM&gt;DBname}&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The results of&amp;nbsp;the above operation will display the list of all orphaned records. The same command may be executed&amp;nbsp;with an addtional parameter&amp;nbsp;to delete the orphaned records,-&lt;/P&gt;
&lt;P&gt;stsadm -o databaserepair -url {&lt;A href="http://servername/" mce_href="http://servername/"&gt;&lt;EM&gt;http://servername&lt;/EM&gt;&lt;/A&gt;} -databasename {&lt;EM&gt;DBname} &lt;STRONG&gt;-deletecorruption&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;DIV style="COLOR: blue; BACKGROUND-COLOR: yellow; FONT-COLOR: blue"&gt;
&lt;P style="COLOR: blue"&gt;&lt;STRONG&gt;&lt;EM&gt;Note:-&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;Sometimes the Configuration DB can contain orphaned records especially for the list of sites&amp;nbsp;associated with&amp;nbsp;a content DB. A simple detach and attach of the Content DB (using the deletecontentDB/addcontentDB STSADM commands) will help in deleting those orphaned records as well.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="COLOR: black; BACKGROUND-COLOR: lightgreen; FONT-COLOR: black"&gt;&lt;STRONG&gt;&lt;EM&gt;Update!!&lt;/EM&gt;&lt;BR&gt;&lt;EM&gt;Just came across another interesting blog,- &lt;A title="SharePoint Orphans Explained" style="COLOR: blue; FONT-COLOR: blue" href="http://blogs.technet.com/corybu/archive/2007/05/31/sharepoint-orphans-explained.aspx" target=_blank mce_href="http://blogs.technet.com/corybu/archive/2007/05/31/sharepoint-orphans-explained.aspx"&gt;SharePoint Orphans Explained&lt;/A&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8951817" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Just released - Best practices for MOSS</title><link>http://blogs.msdn.com/subhajitc/archive/2008/08/31/just-released-best-practices-for-moss.aspx</link><pubDate>Sun, 31 Aug 2008 21:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8914061</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8914061.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8914061</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Prescriptive guidance&amp;nbsp;around the best "design and operational practices" for SharePoint environments is now&amp;nbsp;at &lt;A class="" title=Technet href="http://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx"&gt;Technet&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&amp;nbsp;The guidance is&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;based on real-world experience&amp;nbsp;of SharePoint consultants across various customer engagements. &lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8914061" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Provision Central Admin into another machine in the same Farm</title><link>http://blogs.msdn.com/subhajitc/archive/2008/08/29/provision-central-admin-into-another-machine-in-the-farm.aspx</link><pubDate>Fri, 29 Aug 2008 08:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8904524</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8904524.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8904524</wfw:commentRss><description>&lt;P&gt;Recently, I&amp;nbsp;came across&amp;nbsp;a scenario where in&amp;nbsp;the "Central Admin" site had become unresponsive. The server might have developed a temporary snag which could have resulted in this. If you would know, during&amp;nbsp;any farm setup, the Central Admin web site is created only on the first server (by default).&amp;nbsp;The&amp;nbsp;site is not avaialble on the other servers which are later joined to the farm.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you think that you are stuck...read below,-&lt;/P&gt;
&lt;DIV style="PADDING-RIGHT: 4pt; PADDING-LEFT: 4pt; PADDING-BOTTOM: 2pt; COLOR: green; PADDING-TOP: 2pt; BACKGROUND-COLOR: yellow"&gt;
&lt;P&gt;Tip to provision the Central Admin site on another box/machine joined in the same farm.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Execute &lt;STRONG&gt;&lt;EM&gt;psconfig.exe -cmd adminvs -provision&lt;/EM&gt; &lt;/STRONG&gt;command&lt;STRONG&gt; &lt;/STRONG&gt;to provision the central admin web site.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Then use &lt;EM&gt;&lt;STRONG&gt;stsadm.exe -o addzoneurl&lt;/STRONG&gt;&lt;/EM&gt; to set the new URL for the Central Admin site.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8904524" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint Training</title><link>http://blogs.msdn.com/subhajitc/archive/2008/08/12/sharepoint-end-user-training.aspx</link><pubDate>Tue, 12 Aug 2008 21:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8852731</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8852731.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8852731</wfw:commentRss><description>&lt;P&gt;Let's spread the word of &lt;STRONG&gt;"SharePoint"&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;There is a whole set of&amp;nbsp;trainings targetted for&amp;nbsp;all kinds&amp;nbsp;of audiences&amp;nbsp;on the various features of Microsoft Office SharePoint Server 2007. Thought of providing a consolidated list for the benefit of one and all (explore them at your convenience&amp;nbsp;and understand why&amp;nbsp;MOSS 2007&amp;nbsp;is being deemed as a "killer application").&amp;nbsp;&lt;/P&gt;
&lt;P&gt;End user training&amp;nbsp;videos&amp;nbsp;: &lt;A class="" href="http://office.microsoft.com/en-us/sharepointserver/HA102488011033.aspx" target=_blank mce_href="http://office.microsoft.com/en-us/sharepointserver/HA102488011033.aspx"&gt;http://office.microsoft.com/en-us/sharepointserver/HA102488011033.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Virtual Labs @ Technet&amp;nbsp; : &lt;A class="" href="http://technet.microsoft.com/en-us/bb499670.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/bb499670.aspx"&gt;http://technet.microsoft.com/en-us/bb499670.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Virtual Labs @ MSDN&amp;nbsp;&amp;nbsp; : &lt;A class="" href="http://msdn.microsoft.com/en-us/cc707678.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/cc707678.aspx"&gt;http://msdn.microsoft.com/en-us/cc707678.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;SharePoint Tutorials&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;A class="" href="http://blog.sharepointhosting.com/Downloads/SharePoint-Tutorials.aspx" target=_blank mce_href="http://blog.sharepointhosting.com/Downloads/SharePoint-Tutorials.aspx"&gt;http://blog.sharepointhosting.com/Downloads/SharePoint-Tutorials.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;SharePoint Screencasts: &lt;A class="" href="http://www.sharepoint-screencasts.com/" target=_blank mce_href="http://www.sharepoint-screencasts.com/"&gt;http://www.sharepoint-screencasts.com/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8852731" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Document Property Promotion and Demotion</title><link>http://blogs.msdn.com/subhajitc/archive/2008/08/12/document-property-promotion-and-demotion.aspx</link><pubDate>Tue, 12 Aug 2008 15:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8850779</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8850779.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8850779</wfw:commentRss><description>&lt;P&gt;Ever wondered why the custom properties (such as author,&amp;nbsp;title,&amp;nbsp;subject, etc)&amp;nbsp;associated with a file are automatically picked up during the upload process?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;This is due to the&amp;nbsp;&lt;STRONG&gt;"Document Property Promotion and Demotion"&lt;/STRONG&gt; feature available in SharePoint.&lt;/P&gt;
&lt;P&gt;I quote from &lt;A class="" title=http://msdn.microsoft.com/en-us/library/aa979617.aspx href="http://blogs.msdn.com/controlpanel/blogs/this" target=_blank mce_href="http://blogs.msdn.com/controlpanel/blogs/this"&gt;this&lt;/A&gt; MSDN article which talks about that,-&lt;/P&gt;
&lt;P style="PADDING-LEFT: 5px; MARGIN: 5px; COLOR: black; BACKGROUND-COLOR: yellow; FONT-BOLD: TRUE; FONT-ITALIC: TRUE"&gt;&lt;EM&gt;"Managing the metadata associated with your document is one of the most powerful advantages of storing your enterprise content in Windows SharePoint Services 3.0. However, synchronizing information between the document library level and the document is a challenge. Windows SharePoint Services provides the document parser infrastructure, which enables you to create and install custom document parsers that can parse your custom file types and update a document for changes made at the document library level, or update the document library with changes made at the document level. Using a document parser for your custom file types helps ensure that your document metadata is always current and synchronized between the document library and the document itself."&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8850779" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>How To: Construct absolute url for any item using the SPSite object</title><link>http://blogs.msdn.com/subhajitc/archive/2008/08/09/get-the-full-url-of-a-file.aspx</link><pubDate>Sat, 09 Aug 2008 11:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8844846</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8844846.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8844846</wfw:commentRss><description>&lt;P&gt;In the case when we need to&amp;nbsp;get the&amp;nbsp;absolute&amp;nbsp;url for any item, we&amp;nbsp;can&amp;nbsp;make use of the instance method &lt;STRONG&gt;SPSite.MakeFullUrl.&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;Example use,-&lt;/P&gt;
&lt;DIV style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: yellow; FORE-COLOR: black"&gt;
&lt;P style="COLOR: black"&gt;using(SPSite site = new SPSite(mysiteurl))&lt;BR&gt;{ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using(SPWeb web = site.OpenWeb())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//.. Other lines of code&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string absoluteURL = site.MakeFullUrl(serverRelativeURL);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8844846" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint Database Schema Information</title><link>http://blogs.msdn.com/subhajitc/archive/2008/08/09/sharepoint-database-schema-information.aspx</link><pubDate>Sat, 09 Aug 2008 11:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8844840</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8844840.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8844840</wfw:commentRss><description>&lt;P&gt;Lot of us might be interested to know the schema information for SharePoint configuration and content databases. Read the documentation &lt;A class="" title=here href="http://msdn.microsoft.com/en-us/library/ms998452.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/ms998452.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P style="COLOR: black; BACKGROUND-COLOR: yellow"&gt;&lt;STRONG&gt;Warning!&lt;/STRONG&gt; &lt;BR&gt;&lt;STRONG&gt;Do not modify&amp;nbsp;any of the tables in the database directly. It is strictly not supported by Microsoft.&lt;/STRONG&gt;&amp;nbsp; &lt;BR&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=8844840" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint Best Practices Analyzer 2.0</title><link>http://blogs.msdn.com/subhajitc/archive/2008/07/17/sharepoint-best-practices-analyzer-2-0.aspx</link><pubDate>Thu, 17 Jul 2008 13:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8743299</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8743299.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8743299</wfw:commentRss><description>&lt;P&gt;SharePoint best practices analyzer (available for download from &lt;A class="" title=here href="http://www.microsoft.com/downloads/details.aspx?FamilyID=CB944B27-9D6B-4A1F-B3E1-778EFDA07DF8&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=CB944B27-9D6B-4A1F-B3E1-778EFDA07DF8&amp;amp;displaylang=en"&gt;here&lt;/A&gt;) is an interesting tool that provides a quick preview of which of the best practices have not been followed in the MOSS environment. It typically executes a set of rules to check the environment and generates a HTML report. This tool also provides capability to add our own set of rules as explained in this &lt;A class="" title=blog href="http://blogs.technet.com/wbaer/archive/2007/04/17/understanding-the-microsoft-best-practices-analyzer-for-windows-sharepoint-services-3-0-and-the-2007-microsoft-office-system-rule-file.aspx" mce_href="http://blogs.technet.com/wbaer/archive/2007/04/17/understanding-the-microsoft-best-practices-analyzer-for-windows-sharepoint-services-3-0-and-the-2007-microsoft-office-system-rule-file.aspx"&gt;blog&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8743299" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Optimized Object model API code for uploading large files to a SharePoint document library</title><link>http://blogs.msdn.com/subhajitc/archive/2008/04/29/optimized-object-model-api-code-for-uploading-large-files-to-a-sharepoint-document-library.aspx</link><pubDate>Tue, 29 Apr 2008 15:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8437436</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8437436.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8437436</wfw:commentRss><description>&lt;P&gt;The following code block contains an optimized code for uploading large files (&amp;gt;500 MB) to a SharePoint document library. This code may be used to circumvent Out of Memory exceptions when the process loads the entire file in memory for uploading. &lt;/P&gt;
&lt;DIV style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; COLOR: black; BACKGROUND-COLOR: white"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;//Get the FileName from the fully qualified path &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 class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;string&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; strFileName = &lt;SPAN style="COLOR: teal"&gt;Path&lt;/SPAN&gt;.GetFileName(strFileFullName);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;// siteURL = URL of the web on which the file will be uploaded&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; (&lt;SPAN style="COLOR: teal"&gt;SPSite&lt;/SPAN&gt; sitecollection = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SPSite&lt;/SPAN&gt;(siteURL))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; (&lt;SPAN style="COLOR: teal"&gt;SPWeb&lt;/SPAN&gt; site = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;SPSite&lt;/SPAN&gt;(siteURL).OpenWeb())&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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 class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;site.AllowUnsafeUpdates = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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: teal"&gt;StreamReader&lt;/SPAN&gt; reader = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;StreamReader&lt;/SPAN&gt;(strFileFullName);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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: green"&gt;//docLibGuid = GUID of the Document Library where the file will be uploaded&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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: teal"&gt;SPDocumentLibrary&lt;/SPAN&gt; targetDocLib = (&lt;SPAN style="COLOR: teal"&gt;SPDocumentLibrary&lt;/SPAN&gt;)site.Lists[docLibGuid];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;string&lt;/SPAN&gt; libraryRelativePath = targetDocLib.RootFolder.ServerRelativeUrl;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;string&lt;/SPAN&gt; libraryPath = sitecollection.MakeFullUrl(libraryRelativePath);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;string&lt;/SPAN&gt; documentPath = libraryPath + &lt;SPAN style="COLOR: maroon"&gt;"/"&lt;/SPAN&gt; + strFileName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;strFolderUrl = libraryPath + &lt;SPAN style="COLOR: maroon"&gt;"/"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;site.Files.Add(documentPath, reader.BaseStream, &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;site.AllowUnsafeUpdates = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;reader.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&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;reader.Dispose();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&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="VERTICAL-ALIGN: top; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8437436" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Hide "Upload Multiple" toolbar menu item</title><link>http://blogs.msdn.com/subhajitc/archive/2008/04/04/how-to-hide-a-toolbar-menu-item-for-a-list.aspx</link><pubDate>Fri, 04 Apr 2008 17:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8357143</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8357143.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8357143</wfw:commentRss><description>&lt;P&gt;Came across a requirement where we needed to hide&amp;nbsp;the "Upload Multiple" toolbar&amp;nbsp;menu item from the default view of document libraries.&lt;/P&gt;
&lt;P&gt;Observed that using the&amp;nbsp;"HideCustomAction" section in a custom feature file doesn't work for this.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Workaround - Edit the DefaultTemplate.ascx file which renders the menu&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Go to the 12\Template\ControlTemplates folder&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Take a copy of the DefaultTemplate.ascx file and rename the file as DefaultTemplate.ascx.backup (just to ensure a smooth rollback)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Edit the file in notepad&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Remove the following section from the file,-&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P style="COLOR: black; BACKGROUND-COLOR: white" mce_keep="true"&gt;&amp;nbsp;&amp;lt;SharePoint:MenuItemTemplate&lt;BR&gt;&amp;nbsp;ID="MultipleUpload"&lt;BR&gt;&amp;nbsp;Text="&amp;lt;%$Resources:wss,ToolBarMenuItemMuliUpload%&amp;gt;"&lt;BR&gt;&amp;nbsp;Description="&amp;lt;%$Resources:wss,ToolBarMenuItemMuliUploadDescription%&amp;gt;"&lt;BR&gt;&amp;nbsp;Sequence="200"&lt;BR&gt;&amp;nbsp;ImageUrl="/_layouts/images/MenuUploadMultiple.gif"&lt;BR&gt;&amp;nbsp;HiddenScript="!browseris.ie55up"&lt;BR&gt;&amp;nbsp;UseShortId="true"&lt;BR&gt;&amp;nbsp;runat="server"/&amp;gt;&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Save the changes to the file.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Do an IIS Reset&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8357143" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Avoid enumerating SPListItemCollection object</title><link>http://blogs.msdn.com/subhajitc/archive/2008/03/28/avoid-enumerating-splistitemcollection-object.aspx</link><pubDate>Fri, 28 Mar 2008 07:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8341044</guid><dc:creator>Subhajit.Chatterjee</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/subhajitc/comments/8341044.aspx</comments><wfw:commentRss>http://blogs.msdn.com/subhajitc/commentrss.aspx?PostID=8341044</wfw:commentRss><description>&lt;P mce_keep="true"&gt;Enumerating a SPListItemCollection object should be avoided for data querying purposes.&lt;/P&gt;
&lt;P mce_keep="true"&gt;for e.g. in the following code is not optimal,&lt;/P&gt;
&lt;DIV style="WIDTH: 80%; BACKGROUND-COLOR: white"&gt;
&lt;P style="WIDTH: 80%; COLOR: black; BACKGROUND-COLOR: white" mce_keep="true"&gt;using(SPSite site = new SPSite(siteURL))&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; using(SPWeb web = site.OpenWeb())&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPList tasksList = web.Lists["Tasks"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: red"&gt; foreach(SPListItem item in tasksList.Items)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Code &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;}&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;This is because each step will invoke a separate call to the DB. Instead the foreach loop should be used on a DataTable object which can derived as mentioned below. This will&amp;nbsp;reduce multiple calls to the&amp;nbsp;content DB&amp;nbsp;with just one.&lt;/P&gt;
&lt;DIV style="WIDTH: 80%; backgorund-color: white"&gt;
&lt;P style="WIDTH: 80%; COLOR: green; BACKGROUND-COLOR: white" mce_keep="true"&gt;DataTable dt = tasksList.Items.GetDataTable();&lt;BR&gt;foreach(DataRow dr in dt.Rows)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; //code&lt;BR&gt;}&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8341044" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/subhajitc/archive/tags/SharePoint/default.aspx">SharePoint</category></item></channel></rss>