<?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>Michael O'Donovan's SharePoint and Stuff : Windows SharePoint Services</title><link>http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx</link><description>Tags: Windows SharePoint Services</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>ComponentOne Release 3 Web Parts for SharePoint</title><link>http://blogs.msdn.com/modonovan/archive/2009/02/19/componentone-release-3-web-parts-for-sharepoint.aspx</link><pubDate>Thu, 19 Feb 2009 22:10:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9434714</guid><dc:creator>modonovan</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/9434714.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=9434714</wfw:commentRss><description>&lt;p&gt;“ComponentOne Web Parts leverage the power of Microsoft's Silverlight technology for superior performance, styling, animation, and interactivity. Version 1 of ComponentOne SharePoint Web Parts includes three feature-packed web parts: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ComponentOne DataGrid™ for SharePoint &lt;/li&gt;    &lt;li&gt;ComponentOne Chart™ for SharePoint &lt;/li&gt;    &lt;li&gt;ComponentOne Maps™ for SharePoint &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These web parts access both SharePoint lists and SQL Server data. They are easily configurable by administrators and, if permissible, by end users alike” – &lt;a title="http://labs.componentone.com/WebParts/" href="http://labs.componentone.com/WebParts/"&gt;http://labs.componentone.com/WebParts/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9434714" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/WebParts/default.aspx">WebParts</category></item><item><title>WSRP Toolkit for SharePoint Released</title><link>http://blogs.msdn.com/modonovan/archive/2008/12/18/wsrp-toolkit-for-sharepoint-released.aspx</link><pubDate>Thu, 18 Dec 2008 15:49:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9236113</guid><dc:creator>modonovan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/9236113.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=9236113</wfw:commentRss><description>&lt;p&gt;I have been asked this question numerous times. “Does SharePoint produce WSRP compliant content, so that other portal technologies can render SharePoint content such as lists and web parts?” My answer would always be “No”, SharePoint is a WSRP consumer not a producer…well now there is some GREAT NEWS…..that has changed.&lt;/p&gt;  &lt;p&gt;Microsoft has released the &lt;a href="http://code.msdn.microsoft.com/WSRPToolkit"&gt;&lt;strong&gt;WSRP Toolkit for SharePoint&lt;/strong&gt;&lt;/a&gt; to &lt;a href="http://code.msdn.microsoft.com/WSRPToolkit"&gt;&lt;strong&gt;CodePlex&lt;/strong&gt;&lt;/a&gt;. This toolkit consists of sample code for producing WSRP conformant content for SharePoint lists and libraries.&lt;/p&gt;  &lt;p&gt;You can find the SharePoint Product Team announcement here &lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/12/05/announcing-the-wsrp-toolkit-for-sharepoint.aspx"&gt;&lt;strong&gt;http://blogs.msdn.com/sharepoint/archive/2008/12/05/announcing-the-wsrp-toolkit-for-sharepoint.aspx&lt;/strong&gt;&lt;/a&gt;, and &lt;/p&gt;  &lt;p&gt;2 Video Samples here:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=STP5ArdFlME"&gt;First example of WSRP Producer solution&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=xwetm92V89Q"&gt;Second example of the Producer using an ASP.NET&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/WSRPToolkitforSharePointReleased_B85F/clip_image001_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/WSRPToolkitforSharePointReleased_B85F/clip_image001_thumb.jpg" width="188" height="85" /&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;For many other great resources on interoperating with SharePoint, be sure not to miss the &lt;a href="http://technet.microsoft.com/en-us/office/sharepointserver/bb544954.aspx"&gt;Resources for Interoperability with SharePoint Site&lt;/a&gt; which has many interop resources.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9236113" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Integration/default.aspx">Integration</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Portlets/default.aspx">Portlets</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/WSRP/default.aspx">WSRP</category></item><item><title>SharePoint End-User Training Released</title><link>http://blogs.msdn.com/modonovan/archive/2007/12/10/sharepoint-end-user-training-released.aspx</link><pubDate>Mon, 10 Dec 2007 10:12:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6720436</guid><dc:creator>modonovan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/6720436.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=6720436</wfw:commentRss><description>&lt;p&gt;This is a great new resource to download and either install on a user's desktop or in you SharePoint environment for all users to access. It includes videos, tutorials, articles and more.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://office.microsoft.com/en-us/sharepointserver/HA102488011033.aspx" target="_blank"&gt;Download it now&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6720436" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services+3.0/default.aspx">Windows SharePoint Services 3.0</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Training/default.aspx">Training</category></item><item><title>SharePoint Pedia has Gone Live</title><link>http://blogs.msdn.com/modonovan/archive/2007/11/05/sharepoint-pedia-has-gone-live.aspx</link><pubDate>Mon, 05 Nov 2007 17:57:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5911076</guid><dc:creator>modonovan</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/5911076.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=5911076</wfw:commentRss><description>&lt;p&gt;Check it out at &lt;a href="http://sharepointpedia.com"&gt;http://sharepointpedia.com&lt;/a&gt;, looks pretty cool. Another awesome example of a solution built on MOSS.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5911076" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services+3.0/default.aspx">Windows SharePoint Services 3.0</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category></item><item><title>Use Windows Live Writer to create blog posts ... for MOSS</title><link>http://blogs.msdn.com/modonovan/archive/2007/09/14/use-windows-live-writer-to-create-blog-posts-for-moss.aspx</link><pubDate>Fri, 14 Sep 2007 14:54:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4909406</guid><dc:creator>modonovan</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/4909406.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=4909406</wfw:commentRss><description>&lt;p&gt;I have just recently downloaded Windows Liver Writer Beta (&lt;a title="http://get.live.com/betas/home" href="http://get.live.com/betas/home"&gt;http://get.live.com/betas/home&lt;/a&gt;), and have used it to create my previous blog post. The tool is very simple to use, and the best part about it is that it can be used to post entries to a MOSS hosted Blog site. And it Just Works, with proper in context previous, categories, uploading of images in the post and more!!! The screen shots below how simple it is to setup:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1: Choose SharePoint as the blog destination (other than Windows Live Space or Other)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/Live_1.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="298" alt="Live_1" src="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/Live_1_thumb.jpg" width="331" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 2: Specify the path the SharePoint Blog site where blog posts should be created&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/Live_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="303" alt="Live_2" src="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/Live_2_thumb.jpg" width="339" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 3: Configure the authentication mechanism&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/Live_3.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="316" alt="Live_3" src="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/Live_3_thumb.jpg" width="345" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 4: Create your blog post, preview it (this is really cool, check the image below of this blog post) and then hit &amp;quot;Publish&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#xA0;&lt;a href="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="323" alt="image" src="http://blogs.msdn.com/blogfiles/modonovan/WindowsLiveWriter/UseWindowsLiveWritertocreateblog.forMOSS_C19D/image_thumb_1.png" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4909406" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services+3.0/default.aspx">Windows SharePoint Services 3.0</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+Live+Writer/default.aspx">Windows Live Writer</category></item><item><title>MOSS 2007 and WSS 3.0 SDK's released</title><link>http://blogs.msdn.com/modonovan/archive/2007/01/23/moss-2007-and-wss-3-0-sdk-s-released.aspx</link><pubDate>Tue, 23 Jan 2007 10:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1512623</guid><dc:creator>modonovan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/1512623.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=1512623</wfw:commentRss><description>&lt;P&gt;The MOSS 2007 SDK includes the WSS 3.0 SDK, so you don't need to download both if you are going to download the MOSS 2007 SDK.&lt;/P&gt;
&lt;P&gt;Here are the links:&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en"&gt;SharePoint Server 2007 SDK: Software Development Kit and Enterprise Content Management Starter Kit&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=05e0dd12-8394-402b-8936-a07fe8afaffd&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=05e0dd12-8394-402b-8936-a07fe8afaffd&amp;amp;displaylang=en"&gt;Windows SharePoint Services 3.0: Software Development Kit (SDK)&lt;/A&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=1512623" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint+Portal+Server/default.aspx">SharePoint Portal Server</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category></item><item><title>ISA 2006 - SharePoint Publishing Wizard</title><link>http://blogs.msdn.com/modonovan/archive/2006/10/05/ISA-2006-_2D00_-SharePoint-Publishing-Wizard.aspx</link><pubDate>Thu, 05 Oct 2006 09:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:792943</guid><dc:creator>modonovan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/792943.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=792943</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I was recently made aware of the new &lt;A href="http://www.microsoft.com/technet/isa/2006/secure_web_publishing.mspx#SecureWebPublishing" mce_href="http://www.microsoft.com/technet/isa/2006/secure_web_publishing.mspx#SecureWebPublishing"&gt;SharePoint publishing wizard in ISA 2006&lt;/A&gt;, which essentially allows you to easily and securely&amp;nbsp;expose your SharePoint implementation to the internet / extranet. It also supports forms based authentication and SSO between other web applications sitting behind the ISA 2006 Server(s) e.g. Outlook Web Access.&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 mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://www.microsoft.com/technet/isa/2006/secure_web_publishing.mspx#SecureWebPublishing" mce_href="http://www.microsoft.com/technet/isa/2006/secure_web_publishing.mspx#SecureWebPublishing"&gt;View Technical Article ...&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=792943" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint+Portal+Server/default.aspx">SharePoint Portal Server</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/ISA+2006/default.aspx">ISA 2006</category></item><item><title>SharePoint Services and App Pool Account Permissions</title><link>http://blogs.msdn.com/modonovan/archive/2005/06/14/428862.aspx</link><pubDate>Tue, 14 Jun 2005 06:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:428862</guid><dc:creator>modonovan</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/428862.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=428862</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;Firstly &lt;a href="http://blogs.msdn.com/danielmcpherson"&gt;Daniel McPherson&lt;/A&gt; has contacted me and we seem to be talking again. Since moving to his "new" role he has become very distant, probably because he is spending so much time doing excellent work with our partners and customers. He of course has also been a big influence in the content of this blog.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;For some time I have been confused about the permissions required for service accounts in SPS and application pool accounts. Most of this confusion has been based on not actually understand exactly what these things do. I have tried to summarise my findings below. I still not 100% happy as I haven't answered the "why" questions e.g. why does the SPSAlert service account need the "Power User" role, surely all it does is talk to the DB and send emails. Therefore I am very happy to accept all comments that will help in this understanding.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;There are essentially 4 types of management&lt;/FONT&gt; user accounts (i.e. excluding business users) that need to be given permissions in an SPS solution. They are:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;
&lt;LI&gt;&lt;SPAN&gt;Account(s) which the SPS services will run as i.e. service accounts&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;Database configuration account&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;Content crawler access account&lt;/SPAN&gt; 
&lt;LI&gt;&lt;SPAN&gt;Application pool account&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Service Accounts:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;In order to understand the permissions required for service accounts, it is important to understand what the services actually do.&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;SharePointPSSearch (mssearch.exe) - Microsoft SharePoint Portal Server Search service provides indexing and searching over the portal and external content. Servers that run the Search Service will parse through the indexed data and return results to the users. It is also responsible for gathering and indexing all of the searchable portal content both internal and external. This service account should be a member of the “Power Users” group on all machines running Portal Server.&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt; SPS uses SMB to propagate the Indexes (from Index to Search server), the reason the service account needs the power user role will have to do with the fact that it needs to maintain a “share” for the copying.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;SPSAlert (SPSNotificationService.exe) - The purpose of the SharePoint Portal Alert service is to notify a user, when the user requests it, that there is a change to a designated item, document, list, or document library on the website. Alerts are managed by the job server. This service account should be a member of the “Power Users” group on all machines running Portal Server.&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;SPSAdmin (Spsadmin.exe) - SharePoint portal administration - SPSAdmin is a service that was written to maintain the configuration of each server in a SharePoint Portal Server deployment. Essentially, this service runs on each server in the farm and is responsible for checking the configuration database every 30 seconds to ensure that the local server is performing its assigned roles. E.g. SPSAdmin can stop and start services that SharePoint Portal Server needs, including SPSSearch. It can also add or delete catalogs and can add or delete search applications as needed. In the SharePoint Portal Server Central Administration/Component Selection area, each server in the farm must be assigned at least one role to perform in the farm. When a role is assigned to a server in the farm, it is recorded in the configuration database. The SharePoint Portal Administration service checks this database every 30 seconds to ensure that the server is performing its assigned role or roles. If the service discovers that there is a modification in the server’s roles, the service will “turn on” or “turn off” those portions of the server’s code to either stop performing a role or to start performing a role. Should run as an account that is a SharePoint Portal Server administrator i.e. member of “Power Users” group on all machines running Portal Server. There is a SQL Server database restore scenario (which can be found in the “Disaster Recovery in SharePoint Products and Technologies” chapter in the SPS resource kit) that in order to work dictates that the spsadmin service account must either be a member of the Administrator’s group on the Web front-end server or be a Windows SharePoint Services administrator. According to recommended security practices, you should not grant the spsadmin account administrator rights; on the server, the spsadmin account should be granted as few privileges as possible. By default, the content access account is granted Windows SharePoint Services administrator rights. You should create a new Windows security group, and add both the content access account and the spsadmin service account to this group. Then, using the Windows SharePoint Services administration Web pages, you should change the Windows SharePoint Services administrator account to be this Windows security group.&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;SSOSRV - &lt;/SPAN&gt;&lt;SPAN&gt;Single sign on service - Provides single sign-on services for line of business applications. T&lt;/SPAN&gt;&lt;SPAN&gt;his service should run as an account that is a member of the “Power Users” group on all machines running Portal Server.&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;SPTimer (OWSTIMER.EXE) – This is not actually a SPS service, but rather a WSS service. The SharePoint Timer Service sends notifications and performs scheduled tasks for Windows SharePoint Services. This service account should be a member of the “Power Users” group on all machines running Portal Server.&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Note: during the installation of SPS all services mentioned above are set to run as the account specific as the database configuration account. This can be changed afterwards but I haven’t found any documentation that steps you through this and hence don’t recommend changing it.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Database configuration account:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Used for administrative operations that create, modify, or grant access to the configuration or portal site databases. The configuration database administration account is the user name and password that SharePoint Portal Server uses when connecting to the configuration database or when propagating full-text indexes from index management servers to search servers. The SharePoint Central Administration web site’s application pool identity is also configured to run as this user account by default. There is some confusion here about permissions of the account used for this. In the SPS Admin guide and the during SPS installation it states “The account must be a member of the Power Users group on this server” and explicitly states “Specifying an account that is a member of the local Administrators group on the server on which you are installing SharePoint Portal Server is not recommended”, however the Microsoft Solution for Intranets Guide suggest that this be given “Local administrator rights on search and index servers”. I recommend going for the more secure option of just Power users and if this doesn’t work upgrade to Administrators.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;The account must have the Database Creators and Security Administrators server roles on this SQL Server instance. In addition, the account must be a domain account if you have more than one server in your configuration. The following user rights are granted automatically to this account (the configuration database administration account) on the local server: “Replace a process level token”, “Adjust memory quotas for a process”, and “Log on as a service.” Note: all services are also set to use this account during installation of SPS, and the SharePoint Central Administration web site’s application pool is also configured to run as this user account during installation, hence it will be added to all the local groups for an app pool account e.g. STS_WPG etc.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Content Access Crawler Account:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;This account is used as the default account for crawling content sources defined for a content index. &lt;/SPAN&gt;&lt;SPAN&gt;The account must have read access to the content being crawled. What is generally recommended, especially if there are several WSS virtual servers that need to be crawled, is to use a user account that has Windows SharePoint Services administrator rights. Otherwise you will need to give the account rights to every web site on every WSS virtual server that needs to be indexed. Remember; users who perform searches will only get results back that they have permissions to access. By default, the content access account is granted Windows SharePoint Services administrator rights, however as mentioned previously it is recommended that you create a new Windows security group, and add both the content access account and the spsadmin service account to this group. Then, using the Windows SharePoint Services administration Web pages, you should change the Windows SharePoint Services administrator account to be this Windows security group.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;You are prompted for the user name and password for this account immediately after SPS has been installed, during the initial configuration. This can be changed at any time by using the SPS administration web pages.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Application Pool Identity: &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;The application pool identity is essentially what the ASP .Net code of the portal site will be executing as. The user account used here must have the standard rights in order to run an application pool, and must obviously have rights to read and write to the SQL Server databases for the portal. When the portal is created the designated user account is given these permissions automatically, hence you shouldn’t need to change this. However, in the references section is a link to an article which describes how to change identity of existing application pool or change application on a portal site if needed. The following rights are required for the application pool identity:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Must be a member of the IIS_WPG, SPS_WPG, and STS_WPG groups on the web server&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Must be a Db_owner on these databases; portal site _SITE database, _SERV database, _PROF database, and for the configuration database (by default, this is SPS01_Config_db)&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;You are prompted for the user name and password for this account immediately after SPS has been installed, during the initial configuration to setup default IIS sites application pool to run as the chosen user.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;In summary, a recommended scenario would be:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;It may be easier to have a single user account as the service account for all SPS services, a single account for content crawling a single account for the configuration db access and then an account each for each application pool. E.g.:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Add “Domain\ServiceAcc” to “Power Users” group on all Portal Servers. This account will be used to run all SPS services, will be the database configuration account and will be the application pool identity for the SharePoint Central Administration web site. Grant this account the Database Creators and Security Administrators roles in SQL Server.&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;During SPS install specify the Domain\ServiceAcc as the database configuration account&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Just after SPS installation, during SPS configuration specify the Domain\ContentCrawlUserAcc as the content crawler account and Domain\PortalAppPoolUser as the application pool identity for the default portal application pool&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Create custom “SharePoint Administrators” group&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Add “Domain\ContentCrawlUserAcc” to the custom “SharePoint Administrators” Group&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Add “Domain\ServiceAcc” to the custom “SharePoint Administrators” Group&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Using the Windows SharePoint Services administration Web pages, you should change the Windows SharePoint Services administrator account to the custom “SharePoint Administrators” group&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;Ensure that user cannot change password and password never expires are selected for these user accounts in AD.&lt;/SPAN&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN&gt;A good practice is to ensure that "user user cannot change password" and "password never expires" are selected for these user accounts in AD&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=428862" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint+Portal+Server/default.aspx">SharePoint Portal Server</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category></item><item><title>How to add presence/pawn to SharePoint contacts list</title><link>http://blogs.msdn.com/modonovan/archive/2005/05/11/416376.aspx</link><pubDate>Wed, 11 May 2005 05:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:416376</guid><dc:creator>modonovan</dc:creator><slash:comments>23</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/416376.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=416376</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;I have often been asked to add the presence icon and functionality to custom developed web parts or SharePoint pages. As you are probably aware this is a very simple thing to do, the secrect lies in calling the IMNRC jscript function passing in an email address&amp;nbsp;in the rendered html. e.g. IMNRC(&lt;A href="mailto:'administrator@somewhere.com'"&gt;'administrator@somewhere.com'&lt;/A&gt;). You don't&amp;nbsp;really&amp;nbsp;need to know, or probably don't care how&amp;nbsp;this actually works behind the scenes, so in summary; the&amp;nbsp;IMNRC function calls an ActiveX control (called "name.dll")&amp;nbsp;on the users machine which&amp;nbsp;does the work,&amp;nbsp;this control is installed with Office 2003. So developing web parts of custom SharePoint web pages with presence support added is pretty easy. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;However, recently I had the requirement to show presence info on the email address field in the&amp;nbsp;out of the box contacts list for WSS sites. I am not 100% sure why this feature was not added by the product team, but I guess it's because your contact list may have email addresses from users outside of your organisation and hence the presence information wouldn't make much sense. Anyway, I set myself the challenge of adding this. In theory it is not that difficult, you need to modify the CAML in the schema.xml for the contacts&amp;nbsp;list to change the HTML that is rendered for the allitems view, i.e. inject the IMNRC function call for the email address field. In theory easy, in practice a little bit of a pain. I have therefore attached&amp;nbsp;the sample CAML&amp;nbsp;that I used in schema.xml for the contacts list. This is the viewbody section in the&amp;nbsp;all contacts view i.e.  &amp;lt;View BaseViewID="1"&amp;gt;. Remember, this is sample code that you must test fully before deploying. Good luck!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;lt;!-- for each field, if the field is called e-mail then spit out the imnrc function with the raw email address--&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;lt;ViewBody&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;TR&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Fields&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;TD Class="]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Expr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Property Select="ClassInfo" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Expr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Case Value="Menu"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;![CDATA[ms-vb-title" height="100%]]&amp;gt;&amp;lt;/HTML&amp;gt;&amp;lt;/Case&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Case Value="Icon"&amp;gt;ms-vb-icon&amp;lt;/Case&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Default&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Expr&amp;gt;&amp;lt;Property Select="Type" /&amp;gt;&amp;lt;PresenceEnabled /&amp;gt;&amp;nbsp;&amp;lt;/Expr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Case Value="UserTRUE"&amp;gt;ms-vb-user&amp;lt;/Case&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Default&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Expr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Property Select="Name" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Expr&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Case Value="Email"&amp;gt;ms-vb-user&amp;lt;/Case&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Default&amp;gt;ms-vb2&amp;lt;/Default&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Default&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Default&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA["&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FieldSwitch&amp;gt; &amp;lt;Expr&amp;gt;&amp;lt;Property Select="Name"/&amp;gt;&amp;lt;/Expr&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Case Value="Email"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;table cellpadding="0" cellspacing="0" ID="Tbl_]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ID/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;HTML&amp;gt;&amp;lt;![CDATA["&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style="padding-right: 3px;"&amp;gt;&amp;lt;img border="0" valign="middle" height="12" width="12" src="/_layouts/images/blank.gif" onload="IMNRC(']]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Column /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;HTML&amp;gt;&amp;lt;![CDATA[')" id="mnid]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ID/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;HTML&amp;gt;&amp;lt;![CDATA["&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style="padding-top: 1px;" class="ms-vb"&amp;gt; ]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;Field/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Case&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;Default&amp;gt;&amp;lt;Field/&amp;gt;&amp;lt;/Default&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/FieldSwitch&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;/TD&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Fields&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;/TR&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;&lt;BR&gt;&amp;lt;/ViewBody&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Use of included script samples are subject to the terms specified at &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/info/cpyright.htm"&gt;&lt;FONT face=Arial size=2&gt;http://www.microsoft.com/info/cpyright.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=416376" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint+Portal+Server/default.aspx">SharePoint Portal Server</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category></item><item><title>Web part caching options, how to choose</title><link>http://blogs.msdn.com/modonovan/archive/2005/04/27/412505.aspx</link><pubDate>Wed, 27 Apr 2005 06:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:412505</guid><dc:creator>modonovan</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/modonovan/comments/412505.aspx</comments><wfw:commentRss>http://blogs.msdn.com/modonovan/commentrss.aspx?PostID=412505</wfw:commentRss><description>&lt;P class=MsoNormal&gt;&lt;SPAN&gt;I don’t think there is a default answer to which caching technique you should use for your custom web parts. However it is important to understand the differences between using the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebcachingcacheclasstopic.asp"&gt;ASP .Net cache object&lt;/A&gt;, the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/smpxCaching_SV01031320.asp"&gt;Web Part cache memory and database&lt;/A&gt; stores and the Caching Application Block found in the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp"&gt;Enterprise Library&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;There is plenty of documentation on the asp .net cache object so I don’t want to go into too much detail. In summary:&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Allows you store objects in memory&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;When the web application is recycled the entire cache is lost&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;When items are added they can have an expiration policy based on time (a sliding window if needed) and/or dependencies on other objects e.g. if a file changes on disk, then the cache item becomes invalid&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Items are removed from cache when they expire or if memory pressures on the machine mean that items must be purged from the cache. ASP .Net will then remove items based on their priority, even if they haven’t expired.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;A web part is really just an ASP .Net server control and hence there is no reason why you cannot implement caching in the control like you would any other server control. Either caching objects used by the control or the html rendered by the control. There is nothing web part specific in this scenario. One advantage of using this model is that multiple instances of your control can share the same cache, for example on 200 web part pages you have the same web part with the same data irrespective of the user viewing it. Here you would like to cache the data only once, not 200 times or even more if you do it on a per user basis. Also, you are using the ASP .Net cache which is tried, tested and …and works!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;If you choose to use the built in caching functionality of the web part framework you have the option of storing the cache in memory or in SQL Server. This is designed to be configurable, i.e. changing an option in web.config will change the store for **&lt;B&gt;ALL**&lt;/B&gt; web parts for that web application. In some way you could say that this is something that an administrator can change at any stage, however the reality is that this is not the case.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Web part cache – in memory:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Actually this just uses the ASP .Net cache object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Items can be cached per user or per web part. In other words using this will not allow multiple instances of a web part to share the same cache, if you want this you must use ASP .net cache object directly or the caching app block. However, if you don’t want this type of uniqueness then this is great option.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;When items are added to the cache the web part framework adds extra text to the cache item key so that it will make the key unique for either the user, or the web part instance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Web part cache – in SQL Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;What happens here is that the object you choose to cache is serialised with the web part into the database, along with the rest of the web part properties. This is obviously not seen by the developer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;You object that you cache must be serialize-able. Obviously! And must be marked as such otherwise the web part framework will not attempt to write it into the DB.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Once again items can be cached per user or per instance of the web part, the same as the web part in memory option.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;There are a couple of really good reasons why you might choose to do this. Firstly, because the cached content is the database all the web servers in the farm share the same cache and application recycle won’t remove your cached data. Unlike the asp .net cache, if a user is load-balanced between web server the user will see the same cached data. Secondly, you probably have more database storage capacity than memory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Obviously this will be slower that an in-memory cache. How much really depends, you will need to do the appropriate testing. As mentioned earlier the downside of the choosing to cache web part data in SQL or in memory is that it applies to all web parts, therefore if you do this, you could have every web part cache living in the DB.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Caching application block&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Developed by PAG group at Microsoft and all source code is made available to you. You can change source code as needed, however for this discussion I am assuming this has not been done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;In some ways this is similar to the ASP .Net cache object, however it has been designed to work in any .Net application not just web apps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;It stores all cache items in a hashtable, which will be lost if the application recycles. This is where a backing store could be used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;If a backing store has been configured then every time an item is added to the hashtable it is also added to the backing store e.g. a SQL Server database table. If the application recycles, the hashtable is lost. When the application starts the hashtable is pre-populated with items from the backing store. The backing store is not used as cache store so that many web server can share the same cache; the backing store is there to recover cached data when an application recycles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;You get advanced time expiration policies e.g. when an item is added to the cache you can specify that is expires on Monday at 11pm. More info on this can be found in the docs for the block.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;You have control over the configuration of cache scavenging e.g. maximum number of items allowed in the cache, when items are scavenged etc&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;You can have multiple caches in one application with different settings e.g. one may have a backing store and the other may not.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;Like using the ASP .Net cache directly, your web part could use this as the cache store.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;LI class=MsoNormal&gt;&lt;SPAN&gt;In general I have not found this caching application block to be useful for web parts. If I was developing a smart client it would be something that I would look at.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Idea: have a configuration property on the web part that dictates where the cache will be stored, either the ASP .Net cache directly or using the web part cache framework. This means that you can have control over which web part items are stored in memory and which items are stored in the database.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Also, there are many other options&amp;nbsp;that you may come up with e.g. if using the smart part and asp .net user controls, then you could use asp .net output caching. Let me know your thoughts.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;If you want more specifics, give me a shout.&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=412505" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/modonovan/archive/tags/SharePoint+Portal+Server/default.aspx">SharePoint Portal Server</category><category domain="http://blogs.msdn.com/modonovan/archive/tags/Windows+SharePoint+Services/default.aspx">Windows SharePoint Services</category></item></channel></rss>