<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Imagine Think Create Share</title><subtitle type="html" /><id>http://blogs.msdn.com/carloshm/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/carloshm/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-10-23T04:02:00Z</updated><entry><title>Once upon a time there was an activeX CDN :)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/09/22/once-upon-a-time-there-was-an-activex-cdn.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/09/22/once-upon-a-time-there-was-an-activex-cdn.aspx</id><published>2009-09-22T13:34:00Z</published><updated>2009-09-22T13:34:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Yesterday after my vacations, I&amp;nbsp;was reviwing&amp;nbsp;Scott posts and&amp;nbsp; I found that we have announced the &lt;A title="Microsoft Ajax CDN" href="http://weblogs.asp.net/scottgu/archive/2009/09/15/announcing-the-microsoft-ajax-cdn.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2009/09/15/announcing-the-microsoft-ajax-cdn.aspx"&gt;Microsoft Ajax CDN&lt;/A&gt;. A &lt;A title=Rido href="http://blogs.msdn.com/rido/" mce_href="http://blogs.msdn.com/rido/"&gt;collegue&lt;/A&gt;&amp;nbsp;then remembered me our &lt;A title="ActiveX CDN" href="http://support.microsoft.com/kb/190045" mce_href="http://support.microsoft.com/kb/190045"&gt;activex.microsoft.com&lt;/A&gt; url.&lt;/P&gt;
&lt;P&gt;Don't you feel we are walking in a wonderful circle :D&lt;/P&gt;
&lt;P&gt;Bye!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9897941" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="ActiveX" scheme="http://blogs.msdn.com/carloshm/archive/tags/ActiveX/default.aspx" /><category term="Ajax" scheme="http://blogs.msdn.com/carloshm/archive/tags/Ajax/default.aspx" /><category term="CDN" scheme="http://blogs.msdn.com/carloshm/archive/tags/CDN/default.aspx" /></entry><entry><title>JQuery Rating in SharePoint Lists</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/08/24/jquery-rating-in-sharepoint-lists.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/08/24/jquery-rating-in-sharepoint-lists.aspx</id><published>2009-08-24T11:22:00Z</published><updated>2009-08-24T11:22:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Last week I was asked to create a sample to include in a SharePoint list rating functionality without any server code. That means only SharePoint Designer and client script.&lt;/P&gt;
&lt;P&gt;First was how to store those ratings. Based on experience the &lt;EM&gt;obvious &lt;/EM&gt;solution was to store scores in a separate list, and aggregate afterwards totals. This avoids locks at list level and improve scalability (at the end the aggregation was done from the self user).&lt;/P&gt;
&lt;P&gt;So to accomplish this demo, you will need:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Create a list that will have the totals and the items being scored (own columns and score column). &lt;/LI&gt;
&lt;LI&gt;Create a list to store user ratings (item_id, score, user_id)&lt;/LI&gt;
&lt;LI&gt;Create a view in the first list to show the rating control and allow the actions &lt;/LI&gt;
&lt;LI&gt;Modified that view with SharePoint Designer to &lt;EM&gt;customized&lt;/EM&gt; it: 
&lt;OL&gt;
&lt;LI&gt;Change list to XSLT view (through right click WebPartPages:listViewWebPart in order to get a WebPartPages:DataFormWebPart) &lt;/LI&gt;
&lt;LI&gt;Add a new layout column with the values to read (Item Id and aggregated score) and a style to apply (class=”rating”)&lt;/LI&gt;
&lt;LI&gt;Add JQuery library, web service library and rating library (to be included in the header adding script reference in additional page head placeholder) &lt;/LI&gt;
&lt;LI&gt;Add necessary styles and images to show the functionality &lt;/LI&gt;
&lt;LI&gt;Add custom code. You can check Jan &lt;A title="querying sharepoint list items using jquery" href="http://weblogs.asp.net/jan/archive/2009/05/06/querying-sharepoint-list-items-using-jquery.aspx" mce_href="http://weblogs.asp.net/jan/archive/2009/05/06/querying-sharepoint-list-items-using-jquery.aspx"&gt;posts&lt;/A&gt; and &lt;A title="JQuery addin rating" href="http://www.visualjquery.com/rating/rating_redux.html" mce_href="http://www.visualjquery.com/rating/rating_redux.html"&gt;rating samples&lt;/A&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title="ListViewWebPart to DataFormWebPart" border=0 alt="ListViewWebPart to DataFormWebPart" src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb.png" width=294 height=307 mce_src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb.png"&gt;&lt;/A&gt;&lt;FONT size=1&gt;Step 4.1&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE style="BORDER-BOTTOM: #cecece 1px solid; BORDER-LEFT: #cecece 1px solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fbfbfb; MIN-HEIGHT: 40px; PADDING-LEFT: 5px; WIDTH: 480px; PADDING-RIGHT: 5px; OVERFLOW: auto; BORDER-TOP: #cecece 1px solid; BORDER-RIGHT: #cecece 1px solid; PADDING-TOP: 5px"&gt;&lt;PRE style="BACKGROUND-COLOR: #fbfbfb; MARGIN: 0em; WIDTH: 100%; FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 12px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;TD&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;Class&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"{$IDAEG2RE}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;PRE style="BACKGROUND-COLOR: #ffff00; MARGIN: 0em; WIDTH: 100%; FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 12px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;DIV&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;ALIGN&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"RIGHT"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;class&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"rating"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;title&lt;/SPAN&gt;=&lt;SPAN style="COLOR: #0000ff"&gt;"{@ID}_{@Puntos}"&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;DIV&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;PRE style="BACKGROUND-COLOR: #fbfbfb; MARGIN: 0em; WIDTH: 100%; FONT-FAMILY: consolas,'Courier New',courier,monospace; FONT-SIZE: 12px"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;TD&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/PRE&gt;
&lt;P align=center mce_keep="true"&gt;&lt;FONT size=1&gt;Step 4.2&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT size=2&gt;This will give us the ability to build the UI through JQuery and associate the code to manage list items. Final result:&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;A href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb_1.png" width=202 height=135 mce_src="http://blogs.msdn.com/blogfiles/carloshm/WindowsLiveWriter/JQueryRatinginSharePointLists_1F00/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=left&gt;Bye!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9882476" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="JQuery" scheme="http://blogs.msdn.com/carloshm/archive/tags/JQuery/default.aspx" /></entry><entry><title>Foxit PDF IFilter must be reinstalled after installing a software update or ... Microsoft Filter Pack</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/08/13/foxit-pdf-ifilter-must-be-reinstalled-after-installing-a-software-update-or-microsoft-filter-pack.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/08/13/foxit-pdf-ifilter-must-be-reinstalled-after-installing-a-software-update-or-microsoft-filter-pack.aspx</id><published>2009-08-13T12:18:00Z</published><updated>2009-08-13T12:18:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Testing search in a development environment, I faced that after installation of &lt;A title="Microsoft Filter Pack" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=60C92A37-719C-4077-B5C6-CAC34F4227CC&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=60C92A37-719C-4077-B5C6-CAC34F4227CC&amp;amp;displaylang=en"&gt;MS Filter Pack&lt;/A&gt;&amp;nbsp;you need to repair FoxIt ifilter installation. So it seems it behaves as a software update too ;)&lt;/P&gt;
&lt;P&gt;By the way, they got a &lt;A title="Microsoft Corporation" href="http://www.foxitsoftware.com/company/success_stories.html" mce_href="http://www.foxitsoftware.com/company/success_stories.html"&gt;success story&lt;/A&gt; in Microsoft Exchange Hosted Services. Great!&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;
&lt;P&gt;P.S. it is documented at &lt;A title="Foxit PDF IFilter must be reinstalled after installing a software update (Office SharePoint Server 2007)" href="http://technet.microsoft.com/en-us/library/cc298931.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc298931.aspx"&gt;technet too&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9867952" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="pdf" scheme="http://blogs.msdn.com/carloshm/archive/tags/pdf/default.aspx" /><category term="foxit" scheme="http://blogs.msdn.com/carloshm/archive/tags/foxit/default.aspx" /><category term="ifilter" scheme="http://blogs.msdn.com/carloshm/archive/tags/ifilter/default.aspx" /></entry><entry><title>How to: Programmatically read the ChangeLog in PowerShell </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/06/05/how-to-programmatically-read-the-changelog-in-powershell.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/06/05/how-to-programmatically-read-the-changelog-in-powershell.aspx</id><published>2009-06-05T15:33:00Z</published><updated>2009-06-05T15:33:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;When I was working to get &lt;A title="How to: Programmatically Export the Crawl History to a CSV File in PowerShell" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx" mce_href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx"&gt;powershell&lt;/A&gt; &lt;A title="How to: Programmatically Manage the Crawl of a Content Source in PowerShell " href="http://blogs.msdn.com/controlpanel/blogs/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell" mce_href="http://blogs.msdn.com/controlpanel/blogs/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell"&gt;scripts&lt;/A&gt; from MSDN samples to get/set information, I created&amp;nbsp;too one for reading the changelog. It was a bit tricky to build, but I manage to port &lt;A title="Querying for Specific Changes" href="http://msdn.microsoft.com/en-us/library/bb447550.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb447550.aspx"&gt;Querying for specific changes&lt;/A&gt; to PowerShell.&lt;/P&gt;
&lt;P&gt;You can review the changelog&amp;nbsp;API in the Microsoft SharePoint Developer Documentation Team Blog and MSDN (previous link):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/21/synchronizing-with-windows-sharepoint-services-part-1.aspx"&gt;http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/21/synchronizing-with-windows-sharepoint-services-part-1.aspx&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/22/synchronizing-with-windows-sharepoint-services-part-2.aspx"&gt;http://blogs.msdn.com/sharepointdeveloperdocs/archive/2008/01/22/synchronizing-with-windows-sharepoint-services-part-2.aspx&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;We wanted to monitor which changes were been read by the crawl process and been able to filter specific changes.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;## SharePoint Reference [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search.Administration") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search") [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") &lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Get-ChangeLog($url, $minutes, $changetype)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$startTime = [System.DateTime]::Now.Subtract([System.TimeSpan]::FromMinutes($minutes));&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$db_id = [Microsoft.SharePoint.Administration.SPContentDatabase].getmethod("get_Id");&lt;BR&gt;&amp;nbsp;$result_id = $db_id.Invoke($s.ContentDatabase, "instance,public", $null, $null, $null);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$db_CurrentChangeToken = [Microsoft.SharePoint.Administration.SPContentDatabase].getmethod("get_CurrentChangeToken");&lt;BR&gt;&amp;nbsp;$result_CurrentChangeToken = $db_CurrentChangeToken.Invoke($s.ContentDatabase, "instance,public", $null, $null, $null);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$startToken = New-Object Microsoft.SharePoint.SPChangeToken([Microsoft.SharePoint.SPChangeCollection+CollectionScope]::ContentDB, $result_id.ToString(), $startTime);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$changeQuery = New-Object Microsoft.SharePoint.SPChangeQuery($False, $False);&lt;BR&gt;&amp;nbsp;$changeQuery.User = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.ContentType = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Add = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Delete = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Field = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.File = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Folder = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Group = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.GroupMembershipAdd = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.GroupMembershipDelete = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Item = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.List = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Move = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Rename = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Site = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.SystemUpdate = $True;&lt;BR&gt;&amp;nbsp;$changeQuery.Update = $True;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$changeQuery.ChangeTokenStart = $startToken;&lt;BR&gt;&amp;nbsp;$changeQuery.ChangeTokenEnd = $result_CurrentChangeToken;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;$db_GetChanges = [Microsoft.SharePoint.Administration.SPContentDatabase].getmethod("GetChanges", [Microsoft.SharePoint.SPChangeQuery]);&lt;BR&gt;&amp;nbsp;$result_GetChanges = $db_GetChanges.Invoke($s.ContentDatabase, "instance,public", $null, $changeQuery, $null);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;write-Output $result_GetChanges | Where-Object { $_.ChangeType -eq $changetype };&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Get-ChangeLog -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -minutes 120 -changetype Add&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Take into account that the time will get changes based on UTC&lt;/P&gt;
&lt;P&gt;Bye!&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9701271" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Codeplex" scheme="http://blogs.msdn.com/carloshm/archive/tags/Codeplex/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="Powershell" scheme="http://blogs.msdn.com/carloshm/archive/tags/Powershell/default.aspx" /></entry><entry><title>Phrase of the week - ODF</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/05/21/phrase-of-the-week-odf.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/05/21/phrase-of-the-week-odf.aspx</id><published>2009-05-21T13:26:00Z</published><updated>2009-05-21T13:26:00Z</updated><content type="html">&lt;P&gt;&lt;EM&gt;To the point: can you point me to where it is stated that validity to the manifest schema is a ODF conformance requirement? No, I don't think you can, because such a requirement does not exist. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;A title="Notes on Document Conformance and Portability" href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_dbba4bb0-22e6-4b6e-9755-8dd71c318b0c" mce_href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_dbba4bb0-22e6-4b6e-9755-8dd71c318b0c"&gt;Rob Weir&lt;/A&gt;&amp;nbsp;- IBM / Chief ODF Architect&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Brilliant and simple answer&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;... I regard the schema as an equivalent case. It is a *grammar* which formally makes unambiguous formal provisions about the disposition of XML elements and attributes declared in a certain namespace. If the schema mandates that element x MUST contain element y, and an XML manifest makes use of element x but fails to use element y as mandated, then I say that document is as surely non-conformant as the one which disregards the ZIP format provisions mentioned above.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Notes on Document Conformance and Portability" href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_6dbc3401-4557-4a9f-b8d4-71181ccf718d" mce_href="http://adjb.net/post/Notes-on-Document-Conformance-and-Portability-4.aspx#id_6dbc3401-4557-4a9f-b8d4-71181ccf718d"&gt;&lt;EM&gt;Alex Brown&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&amp;nbsp;- &lt;/EM&gt;Griffin Brown Digital Publishing Ltd / Technical Director&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9633619" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="Open Document Format" scheme="http://blogs.msdn.com/carloshm/archive/tags/Open+Document+Format/default.aspx" /><category term="ODF" scheme="http://blogs.msdn.com/carloshm/archive/tags/ODF/default.aspx" /></entry><entry><title>Web Slices and SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/04/19/web-slices-and-sharepoint.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/04/19/web-slices-and-sharepoint.aspx</id><published>2009-04-19T23:36:00Z</published><updated>2009-04-19T23:36:00Z</updated><content type="html">&lt;P&gt;Hola,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Last week, I read in a DL a question about how to show something cool, provide value and without custom code. Well there are many scenarios in SharePoint that empower final users in order to do this.&lt;/P&gt;
&lt;P&gt;I instantly thought about WebSlices. As&amp;nbsp;a microformat you can "decorate" your markup and include fast and easy additional funcionality to yourself or your colleagues (or even your users! :)).&lt;/P&gt;
&lt;P&gt;What would I use to do it? Well I would start thinking in webparts that can be customized vis XSLT, or those that can render custom HTML. A quick list:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RSS Viewer WebPart&lt;/LI&gt;
&lt;LI&gt;Core Search Results WebPart (any other search webpart)&lt;/LI&gt;
&lt;LI&gt;Content By Query WebPart&lt;/LI&gt;
&lt;LI&gt;Content Web Editor&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Which will you choose? it will depend on your requirements (performance, data scope, skills). Here I will show the minimal &lt;EM&gt;implementation. &lt;/EM&gt;From here you can build a custom page that leverage updates and notifications.&lt;/P&gt;
&lt;P&gt;One MOSS challenge ;), would be to create a service that centralized these results!&lt;/P&gt;
&lt;P&gt;I will use the federated results webpart, but configured to render synchronously.&lt;BR&gt;Why?, because as you will face with the RSS Viewer webpart, you can't notifiy the client after "document ready" and you should implement "&lt;A title="Alternate Display Source" href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx#_refresh" mce_href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx#_refresh"&gt;Alternative Display Source&lt;/A&gt;". I tried without it, and I faced some strange behaviour (sometimes the webslices icon appeared, but the Favorites Bar is not capable of showing the preview).&lt;/P&gt;
&lt;P&gt;So it is just as easy as following the steps described at &lt;A title="Subscribing to Content with Web Slices" href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc196992(VS.85).aspx"&gt;Subscribing to Content with Web Slices&lt;/A&gt;&amp;nbsp;and (for this example) change:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Fixed KeyWord Query to Office 2010 (or whatever you want)&lt;/LI&gt;
&lt;LI&gt;Customized Display Properties (number of results and length)&lt;/LI&gt;
&lt;LI&gt;Add in the XSL Editor the classes required (in &lt;STRONG&gt;bold&lt;/STRONG&gt;):&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;MainTemplate&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;lt;div class="&lt;STRONG&gt;hslice&lt;/STRONG&gt; ms-searchsummarymain" id="LiveResults"&amp;gt;&lt;/LI&gt;
&lt;LI&gt;&amp;lt;div class="&lt;STRONG&gt;entry-title&lt;/STRONG&gt; ms-searchChannelTitle"&amp;gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;MainTemplate.body&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;lt;div class="&lt;STRONG&gt;entry-content&lt;/STRONG&gt; {$BodyClass}"&amp;gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;A picture is worth a thousand words:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://blogs.msdn.com/photos/carloshm/picture9555890.aspx"&gt;&lt;IMG style="WIDTH: 425px; HEIGHT: 331px" title="Web Slices SharePoint" border=0 alt="Web Slices SharePoint" src="http://blogs.msdn.com/photos/carloshm/images/9555890/425x331.aspx" width=425 height=331 mce_src="http://blogs.msdn.com/photos/carloshm/images/9555890/425x331.aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Other scenarios?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;People Search showing collegues.&lt;/LI&gt;
&lt;LI&gt;ChangeLog viewer&lt;/LI&gt;
&lt;LI&gt;TFS bugs/tasks assigned to you&lt;/LI&gt;
&lt;LI&gt;...&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;Finally, if we add code into the requirements, I would like to test a more dynamic solution:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title="Control Adapters Web Slices" href="http://blogs.microsoft.co.il/blogs/dorong/archive/2009/01/18/web-slice-control-adapter-for-moss-2007.aspx" mce_href="http://blogs.microsoft.co.il/blogs/dorong/archive/2009/01/18/web-slice-control-adapter-for-moss-2007.aspx"&gt;Control Adapters&lt;/A&gt; to include all my webparts&lt;/LI&gt;
&lt;LI&gt;EndPoints to get updates and notifications&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;Ciao!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9555905" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="IE8" scheme="http://blogs.msdn.com/carloshm/archive/tags/IE8/default.aspx" /><category term="Web Slices" scheme="http://blogs.msdn.com/carloshm/archive/tags/Web+Slices/default.aspx" /></entry><entry><title>Migration from Microsoft Access to SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/04/17/migration-from-microsoft-access-to-sharepoint.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/04/17/migration-from-microsoft-access-to-sharepoint.aspx</id><published>2009-04-17T10:54:00Z</published><updated>2009-04-17T10:54:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Yesterday I was asked about migration paths for Access applications. Yes, there are still a spread active&amp;nbsp;group (usually at the department level).&lt;/P&gt;
&lt;P&gt;I have worked with several alternatives, however at the end you should consider four main requirements:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Security (Custom, AD, Sec. trim.)&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;UI (Access, Web [native or host in SharePoint], Custom)&lt;/LI&gt;
&lt;LI&gt;App complexity (custom code, reports, linked data)&lt;/LI&gt;
&lt;LI&gt;Data (volume, API)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;and the requirements of your organization.&lt;/P&gt;
&lt;P&gt;I would recommend you create some Proof of concepts and&amp;nbsp;evaluate which is best for your enviornment.&lt;/P&gt;
&lt;P&gt;With this you may come to some conclusions:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Migrate Data to SQL and mantain Access UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;This will use, depending on versions, different &lt;A title="Migration for Microsoft Access Tools" href="http://www.microsoft.com/Sqlserver/2005/en/us/migration-access.aspx" mce_href="http://www.microsoft.com/Sqlserver/2005/en/us/migration-access.aspx"&gt;Migration for Microsoft Access Tools&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;After migration some review will be needed (issues).&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Migrate Data to SQL and develop new UI or stay with the current custom UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;You can find several Third party solution apart from our own tools [above]. I like the approach of &lt;A title=PCA href="http://www.pcapps.com/PcaMiscFiles/Documents/MS-Access-Migration-Guidelines-and-Procedures.pdf" mce_href="http://www.pcapps.com/PcaMiscFiles/Documents/MS-Access-Migration-Guidelines-and-Procedures.pdf"&gt;PCA&lt;/A&gt;&amp;nbsp;(not really the Oracle section) but you can find many more at &lt;A title="Solution Finder" href="https://solutionfinder.microsoft.com/" mce_href="https://solutionfinder.microsoft.com/"&gt;Solution Finder&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Migrate Data to SharePoint and mantain Access UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;This will require migration to MS Access 2007, and then follow &lt;A title="SharePoint Migration Wizard" href="http://office.microsoft.com/en-us/access/HA101314681033.aspx" mce_href="http://office.microsoft.com/en-us/access/HA101314681033.aspx"&gt;SharePoint Migration Wizard&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;This has some limitations and you need to review some changes in the &lt;A title="more info access to sharepoint" href="http://office.microsoft.com/en-us/access/CH010620031033.aspx" mce_href="http://office.microsoft.com/en-us/access/CH010620031033.aspx"&gt;data model&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Migrate Data to SharePoint and develop new UI or stay with the current custom UI.&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;It will depend on the complexity of your UI+Business Logic, but it will require extra work to do this as previous.&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;P&gt;In those scenarios, you may need other tools as &lt;A title="Import Access Reports into Reporting Services" href="http://msdn.microsoft.com/es-es/library/ms156375.aspx" mce_href="http://msdn.microsoft.com/es-es/library/ms156375.aspx"&gt;Reports migration into Reporting Services&lt;/A&gt; or &lt;A title="Migration considerations for Access 2000, Access 2002, and Access 2003" href="http://technet.microsoft.com/en-us/library/cc178973.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc178973.aspx"&gt;migration from previous versions&lt;/A&gt; of MS Access.&lt;/P&gt;
&lt;P&gt;Finally, you should think in coexistence, and look for strategies or third party solutions to get this.&lt;/P&gt;
&lt;P&gt;I received a question about &lt;A title=SLAM href="http://www.codeplex.com/SLAM" mce_href="http://www.codeplex.com/SLAM"&gt;SLAM&lt;/A&gt;, this may work well with some applications, mixing [1,2] and [3,4] scenarios; so you really design a SharePoint solution and sync with a database model.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Is there any third party tool that may help me to the overall process? &lt;/P&gt;
&lt;P mce_keep="true"&gt;There is no magic tool, so&amp;nbsp;besides the tools linked; you should review Partners directory.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Or pehaps just wait to some preview of &lt;A title="Office 2010 Announcement" href="http://www.microsoft.com/presspass/features/2009/Apr09/04-15Office2010.mspx" mce_href="http://www.microsoft.com/presspass/features/2009/Apr09/04-15Office2010.mspx"&gt;Office 2010&lt;/A&gt; and check if there are some specific improvement in the integration with MS Access.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;Namaste!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9553995" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="Reporting Services" scheme="http://blogs.msdn.com/carloshm/archive/tags/Reporting+Services/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Migration" scheme="http://blogs.msdn.com/carloshm/archive/tags/Migration/default.aspx" /><category term="Ms Access" scheme="http://blogs.msdn.com/carloshm/archive/tags/Ms+Access/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/carloshm/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>From app_offline.htm to Failover Farm. SharePoint High Availability Scenarios</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/04/01/app-offline-htm-sharepoint-upgrades.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/04/01/app-offline-htm-sharepoint-upgrades.aspx</id><published>2009-04-01T13:37:00Z</published><updated>2009-04-01T13:37:00Z</updated><content type="html">&lt;P&gt;Hi again,&lt;/P&gt;
&lt;P&gt;Last months this has been one of our main tracks we have been working on. As useful reading in order to get previous concepts, you may start reading the&amp;nbsp;&lt;A title="Plan for redundancy " href="http://technet.microsoft.com/en-us/library/cc263044.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc263044.aspx"&gt;Plan for redundancy&lt;/A&gt; guide. Here you will get the idea that there are several roles that can be redundant, and others not; and traditional ways to set up server redundancy.&lt;/P&gt;
&lt;P&gt;Here I will point out, that although it is said that Index rol is not redundant, you can achieve multiple index servers roles in different SSPs indexing the same content with a cost:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Double size for the same content (Property store - DB&amp;nbsp;and index catalog - File)&lt;/LI&gt;
&lt;LI&gt;Double size in your Query Servers (Both copies of the indexes)&lt;/LI&gt;
&lt;LI&gt;Additional capacity in your backup, IIS logs and network&amp;nbsp;planning&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(some details in the next guide [&lt;STRONG&gt;&lt;EM&gt;Single farm with two SSPs&lt;/EM&gt;&lt;/STRONG&gt;&amp;nbsp; section] and more complex scenarios)&lt;/P&gt;
&lt;P&gt;In this scenario you could move manually your Web Applications from one SSP to another, in order to get updates from that index server (remember that you really get results from your queries servers); under a power outage, server crash or index corrupt.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;How can you meet a specific level of availability?&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;We do have a &lt;A title="Plan for availability" href="http://technet.microsoft.com/en-us/library/cc748824.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc748824.aspx"&gt;guide&lt;/A&gt; on this (complemented with the &lt;A title="Case Study of High Availability for SharePoint using Database Mirroring (white paper)" href="http://technet.microsoft.com/en-us/library/cc531332.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc531332.aspx"&gt;whitepaper about mirroring&lt;/A&gt;), quite complete so I would not comment much on it. Just that content updates may be evil. In our scenario content was queued in order to update the main farm after failover.&lt;/P&gt;
&lt;P&gt;I would take the summary as my own: &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Carefully review your availability requirements. The higher the level of availability and the more systems you protect, the more complex and costly an availability solution is likely to be. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The costs of attaining availability should be evaluated based on business needs. Not all solutions within an organization are likely to require the same level of availability. You can offer different levels of availability for different sites, different services (for example, search and business intelligence), or different farms."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Yes, but I would like something easier, is it possible?&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;One of the many good things of our platform, is that we boost an &lt;A title="Partner Program" href="https://partner.microsoft.com/" mce_href="https://partner.microsoft.com"&gt;ecosystem of partners&lt;/A&gt;&amp;nbsp;so you will find a lot of scenarios extended. I have not deployed myself these solutions (I did more on the backup scenario), but you may contact each of them and find the best for your needs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title="everRun® for Microsoft® Office SharePoint Server 2007" href="http://www.marathontechnologies.com/sharepoint-high-availability.html" mce_href="http://www.marathontechnologies.com/sharepoint-high-availability.html"&gt;everRun for Microsoft Office SharePoint Server 2007&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title="DocAve SharePoint High Availability" href="http://www.avepoint.com/products/sharepoint-high-availability" mce_href="http://www.avepoint.com/products/sharepoint-high-availability"&gt;DocAve SharePoint High Availability&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title="Neverfail for Microsoft® SharePoint" href="http://www.neverfailgroup.com/products/app-modules/sharepoint.aspx" mce_href="http://www.neverfailgroup.com/products/app-modules/sharepoint.aspx"&gt;Neverfail for Microsoft® SharePoint&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;and always a good reference, the &lt;A title="Replication and high availability" href="http://blogs.msdn.com/joelo/archive/2007/04/02/replication-and-high-availability.aspx" mce_href="http://blogs.msdn.com/joelo/archive/2007/04/02/replication-and-high-availability.aspx"&gt;old&lt;/A&gt; &lt;A title="Disaster Recovery" href="http://www.sharepointjoel.com/Lists/Categories/Category.aspx?Name=Disaster%20Recovery" mce_href="http://www.sharepointjoel.com/Lists/Categories/Category.aspx?Name=Disaster%20Recovery"&gt;Joel blog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Ok, but I would like something really easy...&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Well :) (not really HA), SharePoint is a ASP.NET application&amp;nbsp;at the end (yes SharePoint IS a platform, so if you are using it from within other technology this will not work for you), so you may follow ASP.NET steps to tell your users in a friendly way that you are updating or changing the platform.&lt;/P&gt;
&lt;P&gt;It is true that from the &lt;A title="Deploy software updates for Windows SharePoint Services 3.0" href="http://technet.microsoft.com/en-us/library/cc288269.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc288269.aspx"&gt;guides&lt;/A&gt; &lt;A title="Deploy software updates for Office SharePoint Server 2007" href="http://technet.microsoft.com/en-us/library/cc263467.aspx" mce_href="http://technet.microsoft.com/en-us/library/cc263467.aspx"&gt;available&lt;/A&gt;,&amp;nbsp;they indicate to stop the World Wide Web Publishing Service (W3SVC) on all Web servers; but as long as you achieve the objective (&lt;EM&gt;Disconnect users from the server farm&lt;/EM&gt;) with other options, why not using the app_offline.htm?&lt;/P&gt;
&lt;P&gt;What is the app_offline.htm option? it is a new feature &lt;A title=app_offline.htm href="http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx"&gt;included&lt;/A&gt; in ASP.NET 2.0 (time ago :)). This basically will let ASP.NET 2.0&amp;nbsp;to shut-down the application, unload the application domain from the server, and stop processing any new incoming requests for that application,&amp;nbsp;sending back all requests for dynamic pages in the application to the app_offline.htm page.&lt;/P&gt;
&lt;P&gt;Some reading I would recommend:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A title="Walkthrough: Deploying an ASP.NET Web Application Using XCOPY" href="http://msdn.microsoft.com/en-us/library/f735abw9.aspx" mce_href="http://msdn.microsoft.com/en-us/library/f735abw9.aspx"&gt;Walkthrough: Deploying an ASP.NET Web Application Using XCOPY&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title='App_Offline.htm and working around the "IE Friendly Errors" feature ' href="http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx"&gt;App_Offline.htm and working around the "IE Friendly Errors" feature &lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Finally, it would be great to have a solution to be deployed in order to be able to activate a feature in your sharepoint farm and copy that file in your web applications. isn't it?&lt;/P&gt;
&lt;P mce_keep="true"&gt;Bye!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9457640" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="app_offline" scheme="http://blogs.msdn.com/carloshm/archive/tags/app_5F00_offline/default.aspx" /><category term="redundancy" scheme="http://blogs.msdn.com/carloshm/archive/tags/redundancy/default.aspx" /><category term="high availability" scheme="http://blogs.msdn.com/carloshm/archive/tags/high+availability/default.aspx" /></entry><entry><title>Sharepoint: supportability scenarios</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/sharepoint-supported-scenarios.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/03/31/sharepoint-supported-scenarios.aspx</id><published>2009-04-01T00:41:00Z</published><updated>2009-04-01T00:41:00Z</updated><content type="html">&lt;P&gt;Today I posted some samples about Search and Powershell integration. I mention about the supportability of querying sharepoint tables. I thought about it and I wanted to clarify my point of view and what is public &amp;amp; published.&lt;/P&gt;
&lt;P&gt;I have listed the main areas (I'm primarly&amp;nbsp;focusing on Office12) where I have seen supportability questions. If you have any question, please call your support contact or access &lt;A href="http://support.microsoft.com/"&gt;http://support.microsoft.com/&lt;/A&gt; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Support for changes to the databases that are used by Office server products and by Windows SharePoint Services" href="http://support.microsoft.com/kb/841057" mce_href="http://support.microsoft.com/kb/841057"&gt;Support for changes to the databases that are used by Office server products and by Windows SharePoint Services&lt;/A&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Information about the Maintenance Plan Wizard in SQL Server 2005 and about tasks that administrators can perform against SharePoint databases" href="http://support.microsoft.com/kb/932744/" mce_href="http://support.microsoft.com/kb/932744/"&gt;Information about the Maintenance Plan Wizard in SQL Server 2005 and about tasks that administrators can perform against SharePoint databases&lt;/A&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Hardware virtualization support for SharePoint products and technologies" href="http://support.microsoft.com/kb/909840" mce_href="http://support.microsoft.com/kb/909840"&gt;Hardware virtualization support for SharePoint products and technologies&lt;/A&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A title="Supported and unsupported scenarios for working with custom site definitions and custom area definitions in Windows SharePoint Services, in SharePoint Portal Server 2003, and in Office SharePoint Server 2007" href="http://support.microsoft.com/kb/898631" mce_href="http://support.microsoft.com/kb/898631"&gt;Supported and unsupported scenarios for working with custom site definitions and custom area definitions in Windows SharePoint Services, in SharePoint Portal Server 2003, and in Office SharePoint Server 2007&lt;/A&gt;&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;On the other hand, there are articles as &lt;A title="SharePoint Database Access" href="http://msdn.microsoft.com/en-us/library/bb861829.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb861829.aspx"&gt;SharePoint Database Access&lt;/A&gt;&amp;nbsp;where it is recommended to not query database but instead use the object model.&lt;/P&gt;
&lt;P&gt;Looking back to the scenario of my &lt;A title=reference href="http://blogs.msdn.com/controlpanel/blogs/htt%20p://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx#comment01_carloshm" mce_href="htt p://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx#comment01_carloshm"&gt;original comment&lt;/A&gt;&amp;nbsp;if you are debugging with the SQL Profiler your SSP Database and at the same time running the powershell script or getting the crawl history, you will see something like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SP:Starting Event&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;exec dbo.proc_MSS_GetCrawlHistory @ContentSourceID=NULL,@MaxRecords=NULL,@BeginTime=NULL,@EndTime=NULL,@CrawlStatus=NULL &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;SP:StmtCompleted&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;SELECT A.CrawlID,A.CrawlType,B.ContentSourceID,A.Status,A.StartTime,A.EndTime,CAST(A.SuccessCount as int) as SuccessCount,A.ErrorCount,A.WarningCount from MSSCrawlHistory as A inner join (select distinct CrawlID,ContentSourceID from MSSCrawlContent) as B on A.CrawlID = B.CrawlID WHERE A.ProjectID = 1 AND DATEDIFF([Day], A.StartTime, GETDATE()) &amp;lt;= 7 ORDER BY A.EndTime DESC&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;So you may think: "as these tables are not heavy used, a directly querying with some changes may&amp;nbsp;have less locking, we should follow that", something that you may test only in you lab/dev environment.&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlType&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;B&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ContentSourceID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Status&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;StartTime&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;EndTime&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;CAST&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;SuccessCount &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SuccessCount&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ErrorCount&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;WarningCount &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MSSCrawlHistory &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;with&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;nolock&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;inner&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;join&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;select&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;distinct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; CrawlID&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ContentSourceID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;from&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MSSCrawlContent &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;with&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;nolock&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; B &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;on&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; B&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;CrawlID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;WHERE&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;ProjectID &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 1 &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;AND&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;DATEDIFF&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;[Day]&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;StartTime&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;,&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;FONT color=#ff00ff size=2&gt;GETDATE&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;())&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;=&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 7 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ORDER&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;BY&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; A&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;EndTime &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;DESC&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;Just thinking in the task, this may seems better, but think about the possibility that committed data may be a requirement.&lt;/P&gt;
&lt;P&gt;Finally,&amp;nbsp;should you&amp;nbsp;&lt;EM&gt;TSQL&lt;/EM&gt; your sharepoint database? I would say no, as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You may affect overall response of your environment&lt;/LI&gt;
&lt;LI&gt;Unless you have enough information through our &lt;A title="Open Specification Program" href="http://msdn.microsoft.com/en-us/library/cc339473.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc339473.aspx"&gt;open specification program&lt;/A&gt;&amp;nbsp;you may conflict with you EULA acceptance.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;What would be better, querying or using the object model?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Working with the object model gives you supportability for your &lt;STRONG&gt;&lt;EM&gt;code &lt;/EM&gt;&lt;/STRONG&gt;as you won't have breaking changes (backward compatibility) or you will be advised about deferred/obsolete code and have migration paths. something that using TSQL you won't have.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Namaste!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9524442" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="support" scheme="http://blogs.msdn.com/carloshm/archive/tags/support/default.aspx" /></entry><entry><title>How to: Programmatically Manage the Crawl of a Content Source in PowerShell </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-manage-the-crawl-of-a-content-source-in-powershell.aspx</id><published>2009-03-31T19:53:00Z</published><updated>2009-03-31T19:53:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If you have read my &lt;A title="How to: Programmatically Export the Crawl History to a CSV File in PowerShell " href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx" mce_href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx"&gt;previous post&lt;/A&gt; you may think, why did you stop there? Well, that is what I thought too&amp;nbsp;:), and started with &lt;A title="How to: Programmatically Manage the Crawl of a Content Source" href="http://msdn.microsoft.com/en-us/library/aa679491.aspx" mce_href="http://msdn.microsoft.com/en-us/library/aa679491.aspx"&gt;this article&lt;/A&gt; from MSDN.&lt;/P&gt;
&lt;P&gt;We wanted to start managing the crawling of our content source more programmatically, as we have seen that running several at the same time affects the overall process.&lt;/P&gt;
&lt;P&gt;So running these powershell scripts as scheduled task and monitoring the status can improve in crawling.&lt;/P&gt;
&lt;P&gt;You may improve them reusing the context and content sources and&amp;nbsp;doing some &lt;EM&gt;pipeline&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;to be included in the overall file:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;## SharePoint Reference&lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") &lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To start an incremental crawl of the content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:StartIncremental-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.StartIncrementalCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;StartIncremental-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To start a full crawl of the content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:StartFull-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.StartFullCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;StartFull-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To pause a crawl in process&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Pause-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.PauseCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Pause-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To resume a paused crawl&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Resume-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.ResumeCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Resume-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To stop a crawl of the content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Stop-Crawl($url, $csname)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs = $sc.ContentSources[$csname];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$cs.StopCrawl();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Stop-Crawl -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; -csname "your content source name"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;To check the crawl status values for a content source&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;function global:Get-CrawlStatus($url)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$sc = new-Object Microsoft.Office.Server.Search.Administration.Content($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Write-Output $sc.ContentSources;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Get-CrawlStatus -url &lt;A href="http://your_site_url/"&gt;http://your_site_url&lt;/A&gt; | Format-Table -property CrawlStatus, CrawlStarted, CrawlCompleted&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9523361" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Codeplex" scheme="http://blogs.msdn.com/carloshm/archive/tags/Codeplex/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="HowTo" scheme="http://blogs.msdn.com/carloshm/archive/tags/HowTo/default.aspx" /><category term="Powershell" scheme="http://blogs.msdn.com/carloshm/archive/tags/Powershell/default.aspx" /></entry><entry><title>How to: Programmatically Export the Crawl History to a CSV File in PowerShell</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/03/31/how-to-programmatically-export-the-crawl-history-to-a-csv-file-in-powershell.aspx</id><published>2009-03-31T18:51:00Z</published><updated>2009-03-31T18:51:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;When I came across the article at MSDN &lt;A title="Crawl History to a CSV" href="http://msdn.microsoft.com/en-us/library/cc789570.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc789570.aspx"&gt;How to: Programmatically Export the Crawl History to a CSV File&lt;/A&gt;&amp;nbsp;I thought I would never create such a tool just for that specific feature, as you end up with additional requirements in order to create an admin tool.&lt;/P&gt;
&lt;P&gt;But today I needed to get data from crawl history, and I didn't want to get them from SQL (remember it is not supported ;)&lt;A title=comment01_carloshm name=comment01_carloshm&gt;&lt;/A&gt;), so I started to write down a simple powershell script to do it. And then I realized that for this atomic actions, indeed it is a great options!: you give admin people multiple commands that they can use/combine to monitor/get information about the environment (and yes many, many things more)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;## SharePoint Reference&lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search.Administration") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search") &lt;BR&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;function global:Get-CrawlHistory($url)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;trap [Exception] {&lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.GetType().FullName); &lt;BR&gt;&amp;nbsp;&amp;nbsp;write-error $("ERROR: " + $_.Exception.Message); &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;continue;&amp;nbsp; &amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s = new-Object Microsoft.SharePoint.SPSite($url);&lt;BR&gt;&amp;nbsp;$c = [Microsoft.Office.Server.Search.Administration.SearchContext]::GetContext($s);&lt;BR&gt;&amp;nbsp;$h = new-Object Microsoft.Office.Server.Search.Administration.CrawlHistory($c);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Write-OutPut $h.GetCrawlHistory();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;$s.Dispose();&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Then you can just execute: Get-CrawlHistory -url &lt;A href="http://your_site_url/"&gt;http://your_site_url/&lt;/A&gt; | &lt;A title=Export-Csv href="https://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/export-csv.mspx" mce_href="https://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/export-csv.mspx"&gt;Export-Csv&lt;/A&gt; your_path_and_file_name&lt;/P&gt;
&lt;P&gt;Then you can import to excel and make some charts.&lt;/P&gt;
&lt;P&gt;In order to filter the information some useful columns should be denormalized: CrawlType, ContentSourceID, Status.&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9523116" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Codeplex" scheme="http://blogs.msdn.com/carloshm/archive/tags/Codeplex/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="HowTo" scheme="http://blogs.msdn.com/carloshm/archive/tags/HowTo/default.aspx" /><category term="Powershell" scheme="http://blogs.msdn.com/carloshm/archive/tags/Powershell/default.aspx" /></entry><entry><title>Use jQuery to make FrontPage requests</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2009/01/22/use-jquery-to-make-frontpage-rpc-request.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2009/01/22/use-jquery-to-make-frontpage-rpc-request.aspx</id><published>2009-01-22T19:56:00Z</published><updated>2009-01-22T19:56:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;Hi,&lt;/P&gt;
&lt;P mce_keep="true"&gt;It is interesting to see JQuery growing in the SharePoint space. For sure client APIs will enrich the ecosystem of SharePoint applications.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Some time ago, we needed a way to get some information we were storing in the property bag of our SPWebs. As the process to store the values were automated and the tests done programmatically; we really didn't care about any tool to manually check its values.&lt;/P&gt;
&lt;P mce_keep="true"&gt;But, the day arrived and we needed to review them in&amp;nbsp;preproduction environment. So how will you do it? well there are several ways to do it:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a console/web&amp;nbsp;application and implement it through the &lt;A title="SPWeb.Properties Property (Microsoft.SharePoint)" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx" mce_href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx"&gt;OM&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Open SharePoint Designer and read &lt;A title="Viewing Property Bag Values with SharePoint Designer " href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/06/24/viewing-property-bag-values-with-sharepoint-designer.aspx" mce_href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/06/24/viewing-property-bag-values-with-sharepoint-designer.aspx"&gt;them&lt;/A&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Install &lt;A title="SharePoint Property Bag Settings " href="http://www.codeplex.com/pbs" mce_href="http://www.codeplex.com/pbs"&gt;third&lt;/A&gt; &lt;A title=PropertyBagFeature href="http://www.codeplex.com/SPWCMUtils/Release/ProjectReleases.aspx?ReleaseId=5040" mce_href="http://www.codeplex.com/SPWCMUtils/Release/ProjectReleases.aspx?ReleaseId=5040"&gt;party&lt;/A&gt; solution to do the job&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;They are all good candidates, but we couldn't neither install nor run a SPD instance or custom code; so I decided to run a web page :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;Here it is when JQuery comes to the rescue:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Download JQuery library from jquery.com and upload it to a (test) document library&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a webpartpage in the same document library&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Drop a content web editor webpart on any webpartzone&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Update the contents of html with something similar to the following snippet, where the path starts from the web you want information from:&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;
&lt;P mce_keep="true"&gt;&amp;lt;script type="text/javascript" src="jquery-1.3.1.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR&gt;&amp;lt;script&amp;gt;&lt;BR&gt;$.ajaxSetup({&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beforeSend: function(xhr) {xhr.setRequestHeader("Accept", "auth/sicily");xhr.setRequestHeader("X-Vermeer-Content-Type", "application/x-www-form-urlencoded");}&lt;BR&gt;}); 
&lt;P mce_keep="true"&gt;$.post("/site/_vti_bin/_vti_aut/author.dll", { method: "open service"},&lt;BR&gt;&amp;nbsp; function(data){&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("#vermeer_content").append(data);&lt;BR&gt;&amp;nbsp; });&lt;BR&gt;&amp;lt;/script&amp;gt;&lt;BR&gt;&amp;lt;div id="vermeer_content"&amp;gt;&lt;BR&gt;&amp;lt;/div&amp;gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;you will get something like this:&lt;/P&gt;
&lt;P&gt;&lt;A title="JQuery Response FRPC" href="http://blogs.msdn.com/photos/carloshm/picture9432735.aspx" mce_href="http://blogs.msdn.com/photos/carloshm/picture9432735.aspx"&gt;&lt;IMG style="WIDTH: 352px; HEIGHT: 425px" title="JQuery Response FRPC" border=0 alt="JQuery Response FRPC" align=middle src="http://blogs.msdn.com/photos/carloshm/images/9432735/352x425.aspx" width=352 height=425 mce_src="http://blogs.msdn.com/photos/carloshm/images/9432735/352x425.aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;the sample just sends a request with a method that&amp;nbsp;provides meta-information for a Web site, in this case to&amp;nbsp;our client application.&lt;/P&gt;
&lt;DIV id=syntaxSection class=section&gt;
&lt;DIV id=ctl00_rs1_mainContentContainer_ctl01_other&gt;
&lt;DIV class=CodeSnippetTitleBar&gt;
&lt;DIV class=CodeDisplayLanguage&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV dir=ltr&gt;&lt;PRE style="WORD-WRAP: break-word; WORD-BREAK: break-all" id=ctl00_rs1_mainContentContainer_ctl01other class=libCScode space="preserve"&gt;method=open service:server_extension_version&amp;amp;service_name=/[&amp;amp;effective_protocol_version=version]&lt;/PRE&gt;&lt;PRE style="WORD-WRAP: break-word; WORD-BREAK: break-all" class=libCScode space="preserve"&gt;References:&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;A title="open service Method" href="http://msdn.microsoft.com/en-us/library/ms446353.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms446353.aspx"&gt;open service Method&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="[MS-FPSE]: FrontPage Server Extensions Remote Protocol Specification" href="http://msdn.microsoft.com/en-us/library/cc231828(PROT.13).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc231828(PROT.13).aspx"&gt;[MS-FPSE]: FrontPage Server Extensions Remote Protocol Specification&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=9369338" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="JQuery" scheme="http://blogs.msdn.com/carloshm/archive/tags/JQuery/default.aspx" /><category term="FrontPage RP" scheme="http://blogs.msdn.com/carloshm/archive/tags/FrontPage+RP/default.aspx" /></entry><entry><title>Inside SharePoint - Customize the Mobile Home Page</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2008/12/30/inside-sharepoint-customize-the-mobile-home-page.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2008/12/30/inside-sharepoint-customize-the-mobile-home-page.aspx</id><published>2008-12-30T02:22:00Z</published><updated>2008-12-30T02:22:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P mce_keep="true"&gt;These days I've been reviewing different ideas I wrote down in the last months. One of those was about how to extend mobile sharepoint features. So I started re-reading the SDK, landing at &lt;A title="How to: Customize the Mobile Home Page through Redirection" href="http://blogs.msdn.com/controlpanel/blogs/How%20to:%20Customize%20the%20Mobile%20Home%20Page%20through%20Redirection" mce_href="http://blogs.msdn.com/controlpanel/blogs/How to: Customize the Mobile Home Page through Redirection "&gt;How to: Customize the Mobile Home Page through Redirection&lt;/A&gt;&amp;nbsp;article. It certainly&amp;nbsp;describes in depth the mechanism of the redirection and indeed it is a great extensibility option, however I found that there are some scenarios where it would need to implement a different approach. Some of those could be:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Use a different name for the redirection&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Differentiate the redirection process from the site definition&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Customize different home pages for sites with the same site definition&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Customize OOB sites, avoiding duplicates names&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;OOB Feature Redirection&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;From the article we can see how&amp;nbsp;this&amp;nbsp;(bi-level) redirection mechanism works:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;The mobile home page has a short URL with an "m" folder appended to the end of the regular URL (for example, &lt;A href="http://server/sites/Site/m/"&gt;http://Server/sites/Site/m/&lt;/A&gt;) that redirects the request to the mobile &lt;CODE&gt;default.aspx&lt;/CODE&gt; page.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;The default.aspx page then redirects the user to the actual home page, according to the current site definition type&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;The first step uses the &lt;SPAN class=tx&gt;&lt;STRONG&gt;Mobility Shortcut URL &lt;/STRONG&gt;feature&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;EM&gt;(FeatureID: &lt;/EM&gt;&lt;SPAN class=tx&gt;&lt;EM&gt;f41cc668-37e5-4743-b4a8-74d1db3fd8a4 - Name:&lt;/EM&gt;&lt;SPAN class=tx&gt;&lt;EM&gt;MobilityRedirect Scope:Web)&lt;/EM&gt;&lt;STRONG&gt; &lt;/STRONG&gt;creating a &lt;A title="Module - CAML" href="http://msdn.microsoft.com/en-us/library/ms460356.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms460356.aspx"&gt;Module&lt;/A&gt; that specifies the virtual path of the folder for the redirection. &lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Module Name="mobile" Url="m" Path=""&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;File Url="default.aspx" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Module&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;This will create a folder at the root level of the Site (from a virtual point of view). &lt;/P&gt;
&lt;P mce_keep="true"&gt;In order to test the OOB funcionality, you will need to:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Activate MobilityRedirect feature (it is not activated by default) through the command line as it is hidden.&lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;stsadm -o activatefeature -name MobilityRedirect -url &lt;A href="http://server/sites/Site"&gt;http://Server/sites/Site&lt;/A&gt; &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;To test if it is activated browse to &lt;A href="http://server/sites/Site/m/"&gt;http://Server/sites/Site/m/&lt;/A&gt; &lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;If it is working it will redirect yout to a page that looks like figure 1, otherwise it will give you a 404 error&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;P&gt;figure 1&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 371px; HEIGHT: 352px" title="Mobile View Sample from Publishing SharePoint Portal" alt="Mobile View Sample from Publishing SharePoint Portal" src="http://blogs.msdn.com/photos/carloshm/images/9256362/original.aspx" width=371 height=352 mce_src="http://blogs.msdn.com/photos/carloshm/images/9256362/original.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Custom Shortcut Feature Redirection&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;So to solve the scenarios mentioned, the new approach will use a feature to redirect to the final home page, instead of an intermediate&amp;nbsp;redirection page. The feature itself would use a custom control to read the actual final page&amp;nbsp;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;As the OOB feature uses /m/ I would not recommend the same name, as there will be collisions in activating and deactivating processes. Indeed you may find that after deactivating the feature it is still working. This would need to be resolved as part of a complete deactivation in the deactivation event.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So in order to accomplish our solution, we would need to create a feature with a custom shortcut url and a custom file redirect.This scenario would be possible following these steps:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a folder at %PROGRAMFILES%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES called SharePoint.Search.Extensions.MobileRedirect or any name you choose&lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a file inside this folder called &lt;STRONG&gt;feature.xml&lt;/STRONG&gt; with the following content:&lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;BR&gt;&amp;lt;Feature Id="&lt;STRONG&gt;[GUID]&lt;/STRONG&gt;" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Mobile Redirector"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description="Mobile Redirector" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version="1.0.0.0"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scope="Web"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hidden="FALSE"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DefaultResourceFile="core"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;A href="http://schemas.microsoft.com/sharepoint/"&gt;http://schemas.microsoft.com/sharepoint/&lt;/A&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ElementManifests&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ElementManifest Location="elements.xml" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ElementManifests&amp;gt;&lt;BR&gt;&amp;lt;/Feature&amp;gt;&lt;/CODE&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Change [GUID] with a valid GUID. Something similar to 00000000-0000-0000-0000-000000000000. I would recommend you the &lt;A title=guidgen href="http://msdn.microsoft.com/en-us/library/ms241442.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms241442.aspx"&gt;guidgen&lt;/A&gt; tool from Visual Studio&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a file inside this folder called elements.xml with the folllowing content:&lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;BR&gt;&amp;lt;Elements xmlns="&lt;A href="http://schemas.microsoft.com/sharepoint/"&gt;http://schemas.microsoft.com/sharepoint/&lt;/A&gt;"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Module Name="mobile" Url="mob" Path=""&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;File Url="default.aspx" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Module&amp;gt;&lt;BR&gt;&amp;lt;/Elements&amp;gt;&lt;/CODE&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a file inside this folder called default.aspx with the following content:&lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;&amp;lt;%@ Page Language="C#"&amp;nbsp;&amp;nbsp; EnableViewState="false" inherits="Microsoft.SharePoint.MobileControls.SPMobilePage, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%&amp;gt; &amp;lt;%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&amp;gt; &amp;lt;%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %&amp;gt; &amp;lt;%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&amp;gt; &amp;lt;%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&amp;gt;&lt;BR&gt;&amp;lt;SPMobile:SPMobileForm RunAt="Server"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;SPMobile:SPMobileUrlRedirection Runat="Server" PageFileName="&lt;STRONG&gt;[DestinationPage]&lt;/STRONG&gt;" /&amp;gt;&lt;BR&gt;&amp;lt;/SPMobile:SPMobileForm&amp;gt;&lt;/CODE&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Change [DestinationPage] with your desired destination page&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Create a file at %PROGRAMFILES%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\MOBILE with the [DestinationPage] name.Something similar to MyNewHomePage.aspx&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Install the feature running: stsadm -o installfeature -name SharePoint.Search.Extensions.MobileRedirect&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Activate through the command line or through the UI&lt;/DIV&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;stsadm -o activatefeature -name SharePoint.Search.Extensions.MobileRedirect -url &lt;A href="http://server/sites/Site"&gt;http://Server/sites/Site&lt;/A&gt; &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Browse to &lt;A href="http://server/sites/Site/_layouts/ManageFeatures.aspx"&gt;http://Server/sites/Site/_layouts/ManageFeatures.aspx&lt;/A&gt; and click Activate for our feature&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Browse to &lt;A href="http://server/sites/Site/mob/"&gt;http://Server/sites/Site/mob/&lt;/A&gt; and check the new HomePage&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P mce_keep="true"&gt;This can be extended with some functionality/Improvements:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Include a custom control and admin page to change the &lt;STRONG&gt;[DestinationPage]&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Add localization and custom images to the feature&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Change the redirection mechanism to choose between 301 or 302 (permanent or temporary)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Improve feature deactivation&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Of course, create a solution to deploy it&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Finally, you can have different shortcuts changing the Url attribute of the Module node in the elements.xml file:&lt;/P&gt;
&lt;P style="COLOR: blue" mce_keep="true"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Module Name="mobile" Url="i" Path=""&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;File Url="default.aspx" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Module&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;For example: Create a new shortcut called /i/ to redirect to a IPhone version, for a customized collaborative scenario.&lt;/P&gt;
&lt;P mce_keep="true"&gt;However, in the case of a publishing site you should implement &lt;A title=Variations href="http://msdn.microsoft.com/en-us/library/ms493894.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms493894.aspx"&gt;variations&lt;/A&gt;&amp;nbsp;to target different devices.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Bye!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9256348" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /><category term="Mobile" scheme="http://blogs.msdn.com/carloshm/archive/tags/Mobile/default.aspx" /><category term="HowTo" scheme="http://blogs.msdn.com/carloshm/archive/tags/HowTo/default.aspx" /></entry><entry><title>How to detect what .NET Framework X service pack is installed</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2008/10/28/how-to-detect-what-net-framework-x-service-pack-is-installed.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2008/10/28/how-to-detect-what-net-framework-x-service-pack-is-installed.aspx</id><published>2008-10-28T14:54:00Z</published><updated>2008-10-28T14:54:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Today I needed to find which versions+SP were installed, so this maybe helpful for anyone else:&lt;/P&gt;
&lt;P&gt;Lookup in the registry:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;KeyName&lt;/STRONG&gt;:&amp;nbsp; HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP and .NET Version &lt;A href="http://support.microsoft.com/default.aspx?kbid=318785" mce_href="http://support.microsoft.com/default.aspx?kbid=318785"&gt;http://support.microsoft.com/default.aspx?kbid=318785&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Value&lt;/STRONG&gt; &lt;EM&gt;(DataType REG_DWORD)&lt;/EM&gt;: SP&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Cheers!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9020116" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term=".net" scheme="http://blogs.msdn.com/carloshm/archive/tags/.net/default.aspx" /></entry><entry><title>Information Design for MOSS</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/carloshm/archive/2008/10/23/information-design-for-moss.aspx" /><id>http://blogs.msdn.com/carloshm/archive/2008/10/23/information-design-for-moss.aspx</id><published>2008-10-23T05:02:00Z</published><updated>2008-10-23T05:02:00Z</updated><content type="html">&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I was reading today Stephen&amp;nbsp;P. Anderson's &lt;A title="Information Design" href="http://apperceptive.com/infodesign.pdf" mce_href="http://apperceptive.com/infodesign.pdf"&gt;book&lt;/A&gt;&amp;nbsp;and then I realized that Information Architecture is to &lt;A title=Findability href="http://admincompanion.mindsharp.com/BillBlog/Lists/Posts/Post.aspx?ID=110" mce_href="http://admincompanion.mindsharp.com/BillBlog/Lists/Posts/Post.aspx?ID=110"&gt;Findability&lt;/A&gt;&amp;nbsp;what Information Design is to &lt;EM&gt;Understandability.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;We focus on the type of information we present to the user, in order to be completely relevant, but I do&amp;nbsp;not really see focus on innovative/automatic ways to "communicate ideas, illustrate information or express relationships".&lt;/P&gt;
&lt;P&gt;Microsoft, Yahoo or Google, as many start-ups work to improve this areas. There were &lt;A title="Yahoo shortcuts" href="http://tools.search.yahoo.com/newsearch/resources" mce_href="http://tools.search.yahoo.com/newsearch/resources"&gt;shortcuts&lt;/A&gt;, &lt;A title="timeline, map" href="http://www.google.com/experimental/" mce_href="http://www.google.com/experimental/"&gt;alternate views&lt;/A&gt;, or &lt;A title=photosynth href="http://photosynth.net/Default.aspx" mce_href="http://photosynth.net/Default.aspx"&gt;browsing experiences&lt;/A&gt;&amp;nbsp;and many more; but I would like to see Search Land to include this concept in depth.&lt;/P&gt;
&lt;P&gt;Imagine a future search product&amp;nbsp;that based on the user question shows, depending on the type of information, knowledge of the user, and relevant information; different type of representation in order to maximize the interaction with him/her.&lt;/P&gt;
&lt;P&gt;Would it be possible to build a PoC based on (MOSS/FAST) to manage that?&lt;/P&gt;
&lt;P&gt;How would it look like?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Federation webparts that shows information in a &lt;A title="Search Community Toolkit" href="http://blogs.msdn.com/enterprisesearch/archive/2008/04/01/add-virtual-earth-interactive-maps-to-your-search-server-site.aspx" mce_href="http://blogs.msdn.com/enterprisesearch/archive/2008/04/01/add-virtual-earth-interactive-maps-to-your-search-server-site.aspx"&gt;map&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;RSS Media exposed on video queries.&lt;/LI&gt;
&lt;LI&gt;DeepZoom Image with &lt;A title=NewsMap href="http://www.marumushi.com/apps/newsmap/" mce_href="http://www.marumushi.com/apps/newsmap/"&gt;size data blocks resizing&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A title=BurstLabs href="http://www.burstlabs.com/" mce_href="http://www.burstlabs.com/"&gt;Audio &lt;/A&gt;clustering&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Cheers!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9012242" width="1" height="1"&gt;</content><author><name>carloshm</name><uri>http://blogs.msdn.com/members/carloshm.aspx</uri></author><category term="Research" scheme="http://blogs.msdn.com/carloshm/archive/tags/Research/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/carloshm/archive/tags/SharePoint/default.aspx" /><category term="Search" scheme="http://blogs.msdn.com/carloshm/archive/tags/Search/default.aspx" /><category term="MOSS" scheme="http://blogs.msdn.com/carloshm/archive/tags/MOSS/default.aspx" /></entry></feed>