<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15621323</id><updated>2011-11-19T01:50:37.676-08:00</updated><category term='SharePoint'/><category term='Large files'/><title type='text'>Microsoft SharePoint  2007</title><subtitle type='html'>My experiments with Microsoft Office SharePoint Server (MOSS) 2007.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://office12.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15621323.post-2450062254894316</id><published>2008-03-21T09:14:00.000-07:00</published><updated>2008-03-21T09:49:16.087-07:00</updated><title type='text'>CustomAction and {ListId} token bug : JavaScript to the rescue</title><content type='html'>This bug is widely blogged.  You can checkout entries here&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chrissyblanco.blogspot.com/2007/12/bug-with-customaction-in-actions-menu.html"&gt;http://chrissyblanco.blogspot.com/2007/12/bug-with-customaction-in-actions-menu.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stephenkaye.blogspot.com/2008/02/bug-with-customactions.html"&gt;http://stephenkaye.blogspot.com/2008/02/bug-with-customactions.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; if you define a CustomAction as part of a feature and use tokens in the URL e.g. &lt;urlaction url="~site/Test.aspx?List={ListId}"&gt;, the custom action will work fine in a Lists and Document Libraries . However, if you add a web part representing the same List to another page the tokens in the url do not get replaced.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I am a big believer in javascript. So here is the Javascript solution.  After inspecting the page, it turns out that SharePoint creates a ctx javascript object for the list. This object contains a property listName, which holds the ListId property&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) If the MenuItem is yours and you have luxary to change the feature XML code, you coul&lt;br /&gt;construct your &lt;urlaction&gt; element something like&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&amp;lt;UrlActionUrl="javacript:window.location='~site/_layouts/pageaspx?List'+ctx.listName"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) If you  are using third party feature or if you have issue with out of the box menuitems, you can insert the following Javascript, either by adding a "Content Editor WebPart" or by modifying the aspx page&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;var __menus = document.getElementsByTagName('ie:menuitem');&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;      for (var i = 0; i &lt;&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;           itm = __menus(i)           &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt; var str  = itm.getAttribute("onMenuClick");     &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;       if (str &amp;amp;&amp;amp; ctx &amp;amp;&amp;amp; str.match('ListId') != null )         &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;   {             str = str.replace("ListId", ctx.listName)        &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;     itm.setAttribute('onMenuClick', str);            &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This code will replace the {ListId} token on all menus items where token is not replaced.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note : This solution will only work if you have single list on a page. For multiple lists you need to get hold of "ctx" array object in those cases&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-2450062254894316?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/2450062254894316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=2450062254894316' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/2450062254894316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/2450062254894316'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2008/03/customaction-and-listid-token-bug.html' title='CustomAction and {ListId} token bug : JavaScript to the rescue'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-9188090711425321351</id><published>2007-12-09T17:49:00.000-08:00</published><updated>2007-12-09T18:06:29.512-08:00</updated><title type='text'>SharePoint designer workflow and Activity Duration report</title><content type='html'>If you design a workflow from SharePoint designer and try to view the"Activity Duration Report", you are most likely to see the following error&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_fSYLng6EyHE/R1yck73CcwI/AAAAAAAAAHo/ssG8_UoTYAY/s1600-h/SPD_error.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5142157032908026626" style="CURSOR: hand" height="115" alt="" src="http://4.bp.blogspot.com/_fSYLng6EyHE/R1yck73CcwI/AAAAAAAAAHo/ssG8_UoTYAY/s320/SPD_error.JPG" width="335" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Report contains no data. at Microsoft.Office.RecordsManagement.Reporting.Report.Generate(Hashtable query) at Microsoft.Office.RecordsManagement.Reporting.ApplicationPages.GenerateReport.Generate(String strReportId) at Microsoft.Office.RecordsManagement.Reporting.ApplicationPages.GenerateReport.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Workaround&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;After lot of frustrations and trials and errors, I discovered that this report is only get generated if you have some entries in the hidden "Workflow history" list. The only way to put something int he history list from SharePoint designer is to have a "Log to History" list action item as shown below&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_fSYLng6EyHE/R1yeH73CcxI/AAAAAAAAAHw/hF4_TOHVWuM/s1600-h/workflow+audit+report.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5142158733715075858" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_fSYLng6EyHE/R1yeH73CcxI/AAAAAAAAAHw/hF4_TOHVWuM/s320/workflow+audit+report.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The assembly responsible for generating these reports are mostly obfuscated.  I have a support ticket open with Microsoft with no luck.  So far can not figure out how this report is suppose to be generated and why this report is available for Visual studio generated workflow and NOT for SharePoint designer&lt;br /&gt;&lt;br /&gt;If someone know  the solution, please  send me an email&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-9188090711425321351?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/9188090711425321351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=9188090711425321351' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/9188090711425321351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/9188090711425321351'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/12/sharepoint-designer-workflow-and.html' title='SharePoint designer workflow and Activity Duration report'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fSYLng6EyHE/R1yck73CcwI/AAAAAAAAAHo/ssG8_UoTYAY/s72-c/SPD_error.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-5165284581110497737</id><published>2007-11-09T13:35:00.000-08:00</published><updated>2007-11-18T08:16:39.972-08:00</updated><title type='text'>&lt;CustomAcion&gt;/&lt;UrlAction&gt; and opening a link in a new window</title><content type='html'>The &amp;lt;customelement&amp;gt; &lt;customaction&gt;element &lt;strong&gt;&lt;customaction&gt;&lt;/strong&gt;lets you build a custom menu item for various SharePoint UIs and you can easily deploy your menus using Feature framework.&lt;br /&gt;&lt;br /&gt;If you need to include a custom hyper link - You need to use &lt;strong&gt;&lt;urlaction&gt;&lt;/strong&gt;- The problem with &lt;strong&gt;&lt;urlaction&gt;&lt;/strong&gt;is that there is no attribute to open it in a new window - There is no equivalent of "target" attribute of an Anchor - I guess whoever designed this feature must have thought hmmm...since there are lot of pop-blockers who would want to open a hyper link in a new window - So why bother putting this feature :) Well pop-blocker are good for blocking ad windows but at a time you do want to open a link in a new window for usability purpose -&lt;br /&gt;&lt;br /&gt;So in order to open a link in a new window you can use the good old &lt;em&gt;javascript:window.open(url)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;br /&gt;&amp;lt;urlaction url="javascript:window.open('url')" &amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is wrong with the above line ???&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Well, the above line works when deployed in SharePoint - The target link in fact does opened in in a new window but while IE opens the link in a new window, it also replaces the current window with &lt;strong&gt;[Object]&lt;/strong&gt; message (IE tries to open the javascript as a link in the current window) - This is pretty annoying - You need to click the back button to go back to the previous screen in the current window...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to solve the&lt;span style="color:#3366ff;"&gt; &lt;/span&gt;problem in IE ?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Well , you can trick IE to think this is not a window.open() command and you are executing a custom script - So just replace the above url with something like&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&amp;lt;urlaction url="javasscript:void window.open('url')"&amp;gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;And now IE will only open the link in a new window - &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I hope Microsoft fixes this during SP1 time frame by providing a "&lt;em&gt;target&lt;/em&gt;" attribute on UrlAction element&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-5165284581110497737?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/5165284581110497737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=5165284581110497737' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/5165284581110497737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/5165284581110497737'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/11/and-opening-link-in-new-window.html' title='&amp;lt;CustomAcion&amp;gt;/&amp;lt;UrlAction&amp;gt; and opening a link in a new window'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-4232471085647811271</id><published>2007-09-27T13:12:00.000-07:00</published><updated>2007-10-15T19:44:42.957-07:00</updated><title type='text'>Content Query WebPart(CopyUtil.aspx)  and Anonymous Access on your site</title><content type='html'>Content Query WebPart (CQWP) is a great little webpart, which lets you display any content from any level of your site on a webpart page. The problem with this webpart is that it was not designed for anonymous access, at least not completely. O.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you have a site enabled with anonymous access and if you drop this web part on a page. you will notice that this webpart shows the contents to anonymous user correctly however when you click on any of the list item(hyperlink), It will challenge you to enter windows credentials or you will get "403" forbidden error. &lt;br /&gt;&lt;br /&gt;After examines I found that Content Query Webpart usages  copyutil.aspx page in layouts folder which in turn redirects to appropriate edit form depending on the type of the list. That's where the problem lies.&lt;br /&gt;&lt;br /&gt;The "CopyUtil" class inherits from a generic class called "&lt;a class="bold" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint:12.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.WebControls.UnsecuredLayoutsPageBase"&gt;UnsecuredLayoutsPageBase&lt;/a&gt;". This class has a property called &lt;a class="bold" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Microsoft.SharePoint:12.0.0.0:71e9bce111e9429c/Microsoft.SharePoint.WebControls.UnsecuredLayoutsPageBase/property:AllowAnonymousAccess:Boolean"&gt;AllowAnonymousAccess&lt;/a&gt; . Which the inheriting class should override and set it to the true or false based on how web application is configured&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_fSYLng6EyHE/RxQiNXoX9oI/AAAAAAAAAGw/LKwvs7nhSC8/s1600-h/copyutils.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5121756289304098434" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_fSYLng6EyHE/RxQiNXoX9oI/AAAAAAAAAGw/LKwvs7nhSC8/s320/copyutils.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Workaround:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) Override the ContentQuery Web Part's XSLT and instead of using copyutils.aspx  use the "dispform.aspx"&lt;br /&gt;&lt;br /&gt;2) Create a cusotm copyutil.aspx page and override the &lt;strong&gt;AllowAnonymous&lt;/strong&gt;  property&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-4232471085647811271?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/4232471085647811271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=4232471085647811271' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/4232471085647811271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/4232471085647811271'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/09/content-query-webpartcopyutilaspx-and.html' title='Content Query WebPart(CopyUtil.aspx)  and Anonymous Access on your site'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fSYLng6EyHE/RxQiNXoX9oI/AAAAAAAAAGw/LKwvs7nhSC8/s72-c/copyutils.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-8295909291028923101</id><published>2007-09-17T07:15:00.001-07:00</published><updated>2007-09-27T13:11:29.709-07:00</updated><title type='text'>FBA and friendly display name in SharePoint 2007</title><content type='html'>If you have ever implemented the form authentication(FBA) in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SharePoint&lt;/span&gt;, you will soon experience that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SharePoint&lt;/span&gt; treats non AD authentication as a step child. Though , its very simple and straight forward to implement a form based authentication however it is not the same user experience as you would expect or see with Active Directory based authentication.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;One thing &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;immediately&lt;/span&gt; becames visible is the user name. When you log with Active Directory you see a friendly name like shown below. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_fSYLng6EyHE/RvwG23oX9nI/AAAAAAAAAGo/cTOVRrdtM1g/s1600-h/blog_page1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5114970816502036082" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_fSYLng6EyHE/RvwG23oX9nI/AAAAAAAAAGo/cTOVRrdtM1g/s320/blog_page1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However , with the form authentication you see the loginId and NOT the FirstName &amp;amp; Last Name, you would like to see.The reason is simple. The standard &lt;strong&gt;MembershipUser&lt;/strong&gt; interface, only has one property called "&lt;strong&gt;UserName&lt;/strong&gt;", This properly holds the fully qualified user name ( domain/username) or (membershipprovider/userId) . &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;So how do we display a friendly name? After investigating, I came up with two options. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1) &lt;strong&gt;User Profile (MOSS Only)&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;It appears that SharePoint read the friendly display name from the user profile of a user if one exists. By default there is no user profile created for FBA. You can manually create a user profile for all users via SSP or programmatically create for all users.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I found following utility by Sahil , which takes a xml file and does bulk user profile import. Sahils' also shows a code snippet on how to programmatically create user profile&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blah.winsmarts.com/2007-1-SharePoint_2007_Utility_-2_-_PI_-_Utility_to_Import-Export_actual_user_profiles.aspx" target="_blank"&gt;http://blah.winsmarts.com/2007-1-SharePoint_2007_Utility_-2_-_PI_-_Utility_to_Import-Export_actual_user_profiles.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;2) &lt;strong&gt;UserInfo table (WSS and MOSS)&lt;/strong&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; This solution requires direct update to SharePoint table but does work. So I recommend carefully planning before any update.&lt;br /&gt;&lt;br /&gt;At every site collection level, SharePoint stores the firstname + last name in the &lt;strong&gt;userInfo&lt;/strong&gt; table . The friendly name is appears to be picked up from the &lt;strong&gt;tp_title&lt;/strong&gt; column. I believe SharePoint creates entry in this table, the first time you add a user in any list or a site ACL. Look for your form authenticatation (FBA) userId in this table and replace it with a friendly name. &lt;/div&gt;&lt;br /&gt;I think this is a good enhancement request for MembershipProvider and SharePoint team&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-8295909291028923101?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/8295909291028923101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=8295909291028923101' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/8295909291028923101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/8295909291028923101'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/09/fba-and-friendly-display-name-in.html' title='FBA and friendly display name in SharePoint 2007'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fSYLng6EyHE/RvwG23oX9nI/AAAAAAAAAGo/cTOVRrdtM1g/s72-c/blog_page1.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-4695900676913034592</id><published>2007-09-01T09:20:00.001-07:00</published><updated>2007-09-17T07:12:15.177-07:00</updated><title type='text'>Microsoft breaking its own rules of cookie security</title><content type='html'>In order to minimize the XSS vulnarabilites, Microsoft had implemented a "HttpOnly" cookie feature in IE 5.0 and above versions. This feature prevents other scripts or applications (e.g. applets) from directly accessing the cookie marked as "&lt;strong&gt;HttpOnly&lt;/strong&gt;". Fair enough, though not everyone agrees that this really prevents any attack but I think its a good idea. ( &lt;a href="http://www.gnucitizen.org/blog/why-httponly-wont-protect-you"&gt;http://www.gnucitizen.org/blog/why-httponly-wont-protect-you&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is the relation of HttpOnly cookies with SharePoint? Well, as you know SharePoint 2007 is a ASP.NET 2.0 application, which means its utilizes all underlying features of ASP.NET 2.0 such as authentication and authorization. When ASP.NET authenticate user via form, it generates a cookie called ".ASPXAUTH" cookie. This cookie by default is marked as httpOnly, which mean no other applications should be able to access this cookie, including windows call such as &lt;strong&gt;InternetGetCookie (&lt;/strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa384710.aspx"&gt;&lt;strong&gt;http://msdn2.microsoft.com/en-us/library/aa384710.aspx&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; which gets all cookies stored on your computer for a given site but respects the "HttpOnly" flag..&lt;br /&gt;&lt;br /&gt;Office applications such as Word, Excel and SharePoint designer does not work well with Form Authentication but you can make it by setting the authentication cookie to persistent cookie. When you set the form authentication, the SharePoint login page has a check box to remember the userId/Password, this creates a persistent cookie, After this setting, if you open the Office applications, you are not prompted for authentication. If the Office applications are playing by rule and using the InternetGetCookie() method to get the cookies for a given url then they should not be getting the ASPXAuth cookie as this cookie is set as "HttpOnly" cookie by SharePoint/ASP.NET Form Authentication Handler? After monitoring the office appliations, I noticed that I office applications directly access the local cookie folder to read the cookies files.&lt;br /&gt;&lt;br /&gt;My only guess is they are bypassing any standard windows call s and reading the temporary internet folder for cookies and parsing the cookies using undocumented features:) . Agreed, its a good feature to support the form authentication with office applications but directly accessing cookies is not something I expected specially after all the preaching they did on the securities&lt;br /&gt;&lt;br /&gt;Your thoughts please?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-4695900676913034592?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/4695900676913034592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=4695900676913034592' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/4695900676913034592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/4695900676913034592'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/09/microsoft-breaking-its-own-rules-of.html' title='Microsoft breaking its own rules of cookie security'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-7090887894249897338</id><published>2007-07-20T18:12:00.000-07:00</published><updated>2007-07-20T19:12:31.689-07:00</updated><title type='text'>ChangePassword page for FBA(Form based Authentication) for SharePoint 2007</title><content type='html'>One of the nice features of SharePoint is its pluggable authentication. Its actually a ASP.NET 2.0 feature. Since SharePoint 2007 is an ASP.NET application,  SharePoint inherits it for free.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;SharePoint provides an out-of-the-box login.aspx page , located in 12 hives /layouts folder, which is automatically enabled when you turn on FBA on any  of the Zone.  There are plenty of postings on the web on how to get your forms authentication working in WSS and MOSS&lt;/div&gt;&lt;br /&gt;&lt;div&gt;What I didn't find is change password . Once you enable the form authentication, how a user can change the password? There is a  ASP.NET control but nothing out-of-the-box in SharePoint,  to support this &lt;/div&gt;&lt;br /&gt;&lt;div&gt;So I decided to write a custom ASPX page to handle changepassword  and provision it via "Feature" . It is very simple &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Here is what the final output look like. You can download the entire sample from here.&lt;br /&gt;&lt;/div&gt;Change Password Menu Item in Welcome menu (&lt;strong&gt;PersonalActions&lt;/strong&gt;)&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_fSYLng6EyHE/RqFiNGGL6UI/AAAAAAAAAFA/zbhQdp4PsAg/s1600-h/changepwdblog.JPG"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_fSYLng6EyHE/RqFiNGGL6UI/AAAAAAAAAFA/zbhQdp4PsAg/s1600-h/changepwdblog.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_fSYLng6EyHE/RqFihGGL6VI/AAAAAAAAAFI/G-FnmM04Uh4/s1600-h/changepwdblog.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5089457374617135442" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_fSYLng6EyHE/RqFihGGL6VI/AAAAAAAAAFI/G-FnmM04Uh4/s320/changepwdblog.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Change Password aspx page&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_fSYLng6EyHE/RqFixGGL6WI/AAAAAAAAAFQ/r-vsCj8-1HE/s1600-h/changepwd2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5089457649495042402" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_fSYLng6EyHE/RqFixGGL6WI/AAAAAAAAAFQ/r-vsCj8-1HE/s320/changepwd2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Here is what I did &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1) Created a simple aspx page and  inherited "application.master" master page.  Application.Master is located in /layouts folder . You can use any of the master pages from the /layouts folder  or create a custom one. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;2) Drop asp:changepassword control in the content area&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#990000;"&gt;&amp;lt;asp:changepassword id="ChangePassword1" newpasswordregularexpressionerrormessage="Error: Your password must be at least 7 characters long, and contain at least one number and one special character." newpasswordregularexpression=""&gt;&amp;lt;/asp:changepassword&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#990000;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="color:#990000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#cc0000;"&gt;&lt;?xml:namespace prefix = asp /&gt;&lt;asp:changepassword id="ChangePassword1" newpasswordregularexpressionerrormessage="Error: Your password must be at least 7 characters long,     and contain at least one number and one special character." newpasswordregularexpression=""&gt;&lt;/asp:changepassword&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#cc0000;"&gt;&lt;asp:changepassword newpasswordregularexpressionerrormessage="Error: Your password must be at least 7 characters long,     and contain at least one number and one special character." newpasswordregularexpression=""&gt;&lt;/asp:changepassword&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;asp:changepassword id="ChangePassword1" newpasswordregularexpressionerrormessage="Error: Your password must be at least 7 characters long,     and contain at least one number and one special character." newpasswordregularexpression=""&gt;&lt;/asp:changepassword&gt;&lt;/div&gt;&lt;div&gt;&lt;asp:changepassword newpasswordregularexpressionerrormessage="Error: Your password must be at least 7 characters long,     and contain at least one number and one special character." newpasswordregularexpression=""&gt;&lt;/asp:changepassword&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#3333ff;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;3) Copy this page to 12 hives /layouts folder&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;4) Create a &lt;&lt;span style="color:#cc0000;"&gt;CustomAction&lt;/span&gt;&gt; Feature set the feature URL to /_layouts/changepassword.aspx page&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#990000;"&gt;&amp;lt;customaction id="ChangePasswordMenuId" title="Change Password" description="Change Password control" sequence="2000" location="&lt;strong&gt;Microsoft.SharePoint.StandardMenu&lt;/strong&gt;" groupid="&lt;strong&gt;PersonalActions&lt;/strong&gt;" &lt;/span&gt;&lt;urlaction url="~site/_layouts/ChangePassoword.aspx"&gt;&gt; &amp;lt;UrlAction Url="~site/_layouts/changepassword.aspx"/&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;span style="font-size:0;"&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;5) Install the feature using STSADM.exe&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;And there you go!! You have the changepassword page with very little effort.&lt;br /&gt;&lt;br /&gt;May be Microsoft can include this as a out of the box feature in the next version of SharePoint :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-7090887894249897338?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/7090887894249897338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=7090887894249897338' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/7090887894249897338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/7090887894249897338'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/07/changepassword-page-for-fbaform-based.html' title='ChangePassword page for FBA(Form based Authentication) for SharePoint 2007'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fSYLng6EyHE/RqFihGGL6VI/AAAAAAAAAFI/G-FnmM04Uh4/s72-c/changepwdblog.JPG' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-7292496219483436773</id><published>2007-06-29T07:24:00.001-07:00</published><updated>2007-07-07T19:38:28.613-07:00</updated><title type='text'>InfoPath Forms  vs.  ASPX Pages in SharePoint Designer</title><content type='html'>&lt;span style="font-family:'Georgia','serif';"&gt;Marketing is such a wonderful thing; it makes you believe in something which doesn't exist.&lt;br /&gt;Now, why am I taking about marketing on a SharePoint blog??? Well, lately, I have been asked by many of my customers on using InfoPath 2007 for all their form developments. Now that’s a great idea. InfoPath 2007 is designed for efficient forms management and very powerful tools if used properly. What is not clear to me is that somehow Microsoft have sold this idea that InfoPath is for non-geek, you need absolutely no coding or programming knowledge to design&lt;br /&gt;InfoPath. Again this may be true for simple forms or handful of non-geeky folks who were born to be curious and dare to try new things but Majority of computer users are not geeky. I have yet to find a average computer user or a knowledge worker who can design following InfoPath form (with calculation and data lookup and posting back to SharePoint ) Or someone who can understand What "Data Connection" or "Repeater" means.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_fSYLng6EyHE/RoZxmHPO4qI/AAAAAAAAAE0/g-WD8vztxis/s1600-h/timecard.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5081874129126089378" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_fSYLng6EyHE/RoZxmHPO4qI/AAAAAAAAAE0/g-WD8vztxis/s320/timecard.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;When it comes to SharePoint 2007, one always has to make a choice whether to use InfoPath 2007 or design ASPX page. Here is a comparison I came up with on when It make sense to use InfoPath vs. design an ASPX&lt;br /&gt;&lt;/span&gt;&lt;table style="BORDER-COLLAPSE: collapse" width="100%" border="0"&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 20%"&gt;&lt;col style="WIDTH: 40%"&gt;&lt;col style="WIDTH: 40%"&gt;&lt;tbody valign="top"&gt;&lt;tr style="BACKGROUND: #9bbb59"&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: white 1pt solid; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 3pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;SharePoint forms&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: white 1pt solid; BORDER-LEFT: medium none; BORDER-BOTTOM: white 3pt solid"&gt;&lt;p style="TEXT-ALIGN: center"&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;InfoPath 2007 form&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: white 1pt solid; BORDER-LEFT: medium none; BORDER-BOTTOM: white 3pt solid"&gt;&lt;p style="TEXT-ALIGN: center"&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;ASPX Page ( using SharePoint Designer)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Design tools&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;InfoPath 2007- a Desktop application, part of Office Suite.&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Since InfoPath forms are XML based, Programmers can theoretically design the InfoPath form in notepad&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Can be designed in Microsoft© SharePoint Designer 2007 (aka Microsoft© FrontPage)&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;For programmers: Dependingonthe choice of tools, ASPX pages can be designed in notepad to Microsoft Visual Studio, &lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;No-code design&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 0.75pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Drag and drop support for form controls, table layouts etc. This is by far the best feature I have seen in InfoPath&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;SharePoint designer does provide drag and drop, simple validation and business logic without  writting a code. However as far as User experience is concern, SharePoint designer is subpar compare to InfoPath 2007&lt;/span&gt;&lt;/p&gt;&lt;tr style="HEIGHT: 5px"&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Integration&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;You can submit an InfoPath forms to variety of sources including web services and SharePoint. Lookup data can also be brought from simple xml file to any line of business application and databases.&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;The built-in integration components to pull data from other sources are not as rich as InfoPath 2007. &lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Advanced design&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 0.75pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;This is big differential point. InfoPath 2007 forms out of the box look very nice. However does not support advanced scenarios&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Tabs&lt;br /&gt;&lt;/span&gt;&lt;li&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Custom AJAX/DHTML&lt;br /&gt;&lt;/span&gt;&lt;li&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Show multiple/nested forms&lt;br /&gt;&lt;/span&gt;&lt;li&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Hand &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;SharePoint designer allows you to design advanced ASPX Page by direct coding html and JavaScript &lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Master Page&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Out of the box, InfoPath forms are hosted in a new page without a master page. If you need to put a master page around your form for consistency, this require some work&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;1) Design a InfoPath form&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;2) Design a ASPX Page with master page&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;3) Drop &amp;lt;&lt;span style="color:#f79646;"&gt;&lt;strong&gt;XMLFormView&amp;gt;&lt;/strong&gt;&lt;/span&gt; control in the ASPX page and point to InfoPath&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Complete Master page support&lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Compatibility &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 0.75pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;By design, a InfoPath form can be opened in&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;1) Any browser (e.g. IE, Firefox, Safar etc.)&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;2) Desktop App&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;You can optimize for Desktop, but you cannot optimize for a specific browser or an environment. This is a limitation with any form tools which support variety of tools. The choice of controls are limited to&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;This &lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Unfortunately, an ASPX pages can only be designed for browsers. But you have lot of choices to optimize for a specific browser. &lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 0.75pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Publishing to SharePoint&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;In spite of Microsoft's best efforts, the publishing to SharePoint is not as smooth as you would have expected from a non-programmers tool.&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;I love the "Blogging" feature of Word 2007; it's simple and intuitive for non-technical folks. I would have liked to see a similar approach in InfoPath 2007&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Nonetheless with some training, I think InfoPath offers a great capability for publishing forms&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #cdddac; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;In my personal opinion, designing an ASPX page and publishing to SharePoint is lot simpler in SharePoint designer than in InfoPath 2007&lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: white 3pt solid; BORDER-TOP: medium none; BACKGROUND: #9bbb59; BORDER-LEFT: white 1pt solid; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;color:white;"&gt;&lt;strong&gt;Error handling&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 0.75pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Because InfoPath is designed for knowledge workers AKA non-programmers, the error handling is some what poor.&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Most exceptions only make sense to the technical folks. But if you get some cryptic exceptions such as "Unknown error" or "exception occurred" , you are really out of luck unless you find some clues in the /12 hive log or the Event log&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;td style="BORDER-RIGHT: white 1pt solid; BORDER-TOP: medium none; BACKGROUND: #e6eed5; BORDER-LEFT: medium none; BORDER-BOTTOM: white 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Georgia;font-size:12;"&gt;Pretty friendly and intuitive, you can do better error handling. You have more control on the flow compare to InfoPath 2007. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-7292496219483436773?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/7292496219483436773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=7292496219483436773' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/7292496219483436773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/7292496219483436773'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/06/infopath-web-forms-vs-aspx.html' title='InfoPath Forms  vs.  ASPX Pages in SharePoint Designer'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fSYLng6EyHE/RoZxmHPO4qI/AAAAAAAAAE0/g-WD8vztxis/s72-c/timecard.JPG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-428230296519219021</id><published>2007-06-20T18:53:00.000-07:00</published><updated>2007-06-23T07:09:01.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Large files'/><title type='text'>SharePoint and Large files ( &gt; 1GB) in a Document Library ?</title><content type='html'>I have been repetitively asked if SharePoint can be used as an alternative to FTP or Network Share. SharePoint does offer strong capabilities for document management but it by NO means is an alternative to FTP or Network Share&lt;br /&gt;&lt;br /&gt;As you probably know, SharePoint stores all documents in database as a blob. Which, in itself is not an bad idea. I know you probably thinking I am smoking !. But the truth is that in SQL SERVER 2005 BLOB performance is vastly improved. Also SharePoint 2007 does smart caching on Web Front ends (WFEs) for most frequently used files ( e.g. JavaScript, CSS and images etc) .&lt;br /&gt;&lt;br /&gt;However because its a web application and does not use special controls for most files ( except for Office documents, which are downloaded via FPRPC over HTTP - discussed later) it suffers with all following limitation if you try to upload or download&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1) Your browser could timeout while uploading a large file &lt;/p&gt;&lt;p&gt;2) Your browser could run out of memory due to spooling&lt;/p&gt;&lt;p&gt;3) If lots of users are downloading or uploading large files,  it could impact your web server performance&lt;/p&gt;&lt;p&gt;4) If your download fails for any of above reasons, Your download will not resume itself, You will need to start all over again...&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;So, what are your choices ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1) &lt;span style="color:#990000;"&gt;&lt;strong&gt;Store File on a Network Share&lt;/strong&gt; &lt;strong&gt;or SAN devices&lt;/strong&gt;&lt;/span&gt;:&lt;/span&gt; One solution is to store the actual file on a fast network device and only keep the path  in the document library (or create a simple list item and store the link) . You need to make sure that only  the process account has direct access to network access and you may also need to write custom event to prevent unauthorised access.&lt;br /&gt;&lt;br /&gt;This way you can take advantage of SharePoint UI,  Security, Target Audience and Search feature  and also optimise the user experience and performace&lt;br /&gt;&lt;br /&gt;However,  using this solution requires careful planning, coding and security testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;2) &lt;strong&gt;&lt;span style="color:#990000;"&gt;Create custom download activeX control or Windows App&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; : If you are building an application for a controlled environment, you could also write a custom ActiveX control or a Windows application and use WCF / MTOM with SharePoint Web services to download files asynchronously and chunk by chunk ( streaming) -&lt;br /&gt;&lt;br /&gt; In case of an error, you can resume the download where you left before the error occured. You can also notify server on a successful download using custom hash.&lt;br /&gt;&lt;br /&gt;Basically you have lot more choices in this approach then the  first approach  for download&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;3) &lt;strong&gt;&lt;span style="color:#990000;"&gt;Wait for SQL SERVER 2008&lt;/span&gt;&lt;/strong&gt; :&lt;/span&gt; Well, if you can wait, there is a rumor that SQL Server 2008 will have an alternative storage mechanism for BLOB. After all you  might a get choice to store BLOB in a file. Does the name WinFS ring a bell?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-428230296519219021?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/428230296519219021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=428230296519219021' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/428230296519219021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/428230296519219021'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/06/sharepoint-and-large-files-1gb-in.html' title='SharePoint and Large files ( &gt; 1GB) in a Document Library ?'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-788288062477798418</id><published>2007-05-29T14:15:00.001-07:00</published><updated>2007-05-29T14:48:05.193-07:00</updated><title type='text'>Custom Workflow , SPWorkflowActivationProperties  and "Current user"</title><content type='html'>Today, I saw an interesting post in one of the newsgroups where someone was looking for a way get the identity of the current logged in user. The user tried getting the current user's Id by &lt;strong&gt;SPWorkflowActivationProperties .Web.CurentUser&lt;/strong&gt; which in normal circumstances make sense but not in  the case of the windows workflow. Why? Lets try to break down this problem.&lt;br /&gt;&lt;br /&gt;First of all SharePoint is a hosting windows workflow which means its running the windows workflow runtime possibly in the same process as the current web application, however it is NOT necessarily sharing the same session or context, moreover , there is no sequence or direct corelation in the execution of a workflow activity and and a browser session. Also, a workflow activity can be invoked from any external program, it does NOT have to be the current session. E.g. If you are writing a workflow to approve an item, it can be triggered by Outlook, Word, SharePoint or any custom application for that matter.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#cc0000;"&gt;Why SPWorkflowActivationProperties .Web.CurentUser returns SharePoint/System user ??&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;The simple answer is SPWeb and SPSite properties of SPWorkFlowActivationProperties are instantiated by the workflow runtime and workflow runtime impersonate the current "Process account" to create SharePoint objects, hence the "SharePoint\System" user &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;&lt;em&gt;&lt;span style="color:#cc0000;"&gt;But I want the current logged-in user&lt;/span&gt; ?&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;I think the question should be rephrased, Instead of the currently logged in user, you may want to access the user who last edited one of the list item on which you are executing the workflow. If that's what your use case then there are multiple ways to get it. The simplest way is to use "Modified By" column of SPListItem. All SPListItems has this properties. This will give you the Id of the user who last touched your item in question. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-788288062477798418?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/788288062477798418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=788288062477798418' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/788288062477798418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/788288062477798418'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/custom-workflow-spworkflowactivationpro.html' title='Custom Workflow , SPWorkflowActivationProperties  and &quot;Current user&quot;'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-2567146983582684790</id><published>2007-05-21T19:35:00.000-07:00</published><updated>2007-05-31T10:34:26.857-07:00</updated><title type='text'>"Policy for web application" and Form Based Authentication (FBA)</title><content type='html'>The authentication scheme in SharePoint 2007 is very flexible. Out of the box SharePoint supports multiple authentication schemes and also lets you build a custom one. Now every flexible thing comes at a price, The over-flexibility also increases complexity, specially if you start mixing Intranet and Extranet applications with different authentication.&lt;br /&gt;&lt;br /&gt;One of the features in SharePoint is called "Policy for Web Application" (Personally I think they could have chosen a better name). What this feature allows you to do is define the top level security for a "web application" in central admin. This is really neat if specially if you are creating a new application and what to give certain groups or users access to an application before creating an Site collection or login into the application. This comes very handy in case of an Form authentication. N&lt;br /&gt;&lt;br /&gt;Now, you should be very careful when you add a group in the web application policy screen. The minimum (assertive) access you can give in this screen is "&lt;em&gt;&lt;span style="color:#cc0000;"&gt;Read all"&lt;/span&gt;&lt;/em&gt; . Now this literally means "Read all". Any user or group given "Read All" permission will always have "&lt;span style="color:#cc0000;"&gt;Read&lt;/span&gt;" access to all site collections, lists and items in that Application, That's right, even if you break the inheritance model, and put Item level security. And the most annoying thing I found is those users/groups are not visible in the "&lt;em&gt;&lt;span style="color:#cc0000;"&gt;All People&lt;/span&gt;&lt;/em&gt;" screen from the site.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_fSYLng6EyHE/RlJdtsZZ4rI/AAAAAAAAAD8/uW2XJF2Zpxc/s1600-h/allusers.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5067215570338439858" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_fSYLng6EyHE/RlJdtsZZ4rI/AAAAAAAAAD8/uW2XJF2Zpxc/s320/allusers.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So next time, when you planning to use "&lt;em&gt;&lt;span style="color:#cc0000;"&gt;Policy for Web Application&lt;/span&gt;&lt;/em&gt;" remember that any user you add here  &lt;strong&gt;&lt;span style="color:#ff6600;"&gt;ALWAYS&lt;/span&gt;&lt;/strong&gt; has  minimum access to the entire application regardless of your security policies within the site .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-2567146983582684790?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/2567146983582684790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=2567146983582684790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/2567146983582684790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/2567146983582684790'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/policy-for-web-application-and-form.html' title='&quot;Policy for web application&quot; and Form Based Authentication (FBA)'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fSYLng6EyHE/RlJdtsZZ4rI/AAAAAAAAAD8/uW2XJF2Zpxc/s72-c/allusers.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-1194839429128430941</id><published>2007-05-20T17:38:00.000-07:00</published><updated>2007-05-23T10:08:50.645-07:00</updated><title type='text'>"People Search" and My Site / SSP configuration</title><content type='html'>When you crawl  the &lt;span style="color:#000000;"&gt;&lt;strong&gt;Local Office SharePoint Server sites&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;  content source and if you  are getting the following error,   you may want to check your SSP configuration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;sps3://SERVERNAME ( MySite Application URL)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Error in PortalCrawl Web Service&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;What I discovered is while creating a new SSP,  I did not create seperate web application for "Mysite" and "SSP Admin" ( as recommended by Microsoft), instead I created a single web application with two site collections - one for MySite and other for SSP admin .  Now if you do this, SharePoint is not going to create a root Site Collection ie.. &lt;a href="http://SERVERNAME:PORT"&gt;http://SERVERNAME:PORT&lt;/a&gt; (my site application) will be empty. This for whatever reasons causes stomach ache for SharePoint Indexer.   If you go back and create a dummy Site Collection in the root of My Site Web application and then reindex your content source, the above error will go away ( at least it did for me) &lt;/p&gt;&lt;p&gt;Now, if you are still using SPS 2003 and getting similar error, you may want to check out MS Support article on this &lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/835521"&gt;http://support.microsoft.com/kb/835521&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-1194839429128430941?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/1194839429128430941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/1194839429128430941'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/people-search-and-my-site-ssp.html' title='&quot;People Search&quot; and My Site / SSP configuration'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-6843545111713702879</id><published>2007-05-17T06:51:00.000-07:00</published><updated>2007-05-20T17:12:38.158-07:00</updated><title type='text'>Different User profile screens</title><content type='html'>Recently, I was playing with  user profiles in SSP and noticed something very strange. When you edit a profile of an admin user (userprofile automatically added by SharePoint) the screen is slightly different than that of a regular user ( Users  you import from LDAP or manually inserted).&lt;br /&gt;&lt;br /&gt;In case of an admin user, SharePoint automatically populates  the MySite URL and shows browse button to import a picture. In case of a regular user both MySite URL and Picture fields are plain text with no picker control.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Admin User Profile Screen ( &lt;a href="http://server/ssp/admin/_layouts/ProfAdminEdit.aspx"&gt;http://server/ssp/admin/_layouts/ProfAdminEdit.aspx&lt;a href="http://ws03r2ee:10118/ssp/admin/_layouts/ProfAdminEdit.aspx"&gt;dmin/_layouts/ProfAdminEdit.aspx&lt;/a&gt;&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_fSYLng6EyHE/RkxfRsZZ4pI/AAAAAAAAADk/zWRpobRWFKM/s1600-h/admin.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5065528438465094290" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_fSYLng6EyHE/RkxfRsZZ4pI/AAAAAAAAADk/zWRpobRWFKM/s320/admin.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regular User&lt;br /&gt; &lt;a href="http://server/ssp/admin/_layouts/ProfAdminEdit.aspx"&gt;http://server/ssp/admin/_layouts/ProfAdminEdit.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_fSYLng6EyHE/RkxfcMZZ4qI/AAAAAAAAADs/LLZfGUNbX5g/s1600-h/normal.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5065528618853720738" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_fSYLng6EyHE/RkxfcMZZ4qI/AAAAAAAAADs/LLZfGUNbX5g/s320/normal.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Its a minor difference but I am not able to figure out why?? I  like the admin UI. Not sure why SharePoint team decided to implement it differently.   I am curious to know, If anyone has  any idea, please share with me&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-6843545111713702879?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/6843545111713702879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=6843545111713702879' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/6843545111713702879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/6843545111713702879'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/different-user-profile-screens.html' title='Different User profile screens'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fSYLng6EyHE/RkxfRsZZ4pI/AAAAAAAAADk/zWRpobRWFKM/s72-c/admin.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-8473835059128422865</id><published>2007-05-06T18:55:00.000-07:00</published><updated>2007-05-07T06:48:29.172-07:00</updated><title type='text'>When SharePoint  2007 "Restore" fails</title><content type='html'>If you are a developer, "backup" and "restore" are not something you spell every often, most of the time we leave it up to the IT to take care of such jobs&lt;br /&gt;&lt;br /&gt;Recently, I had to move one of demo web applications to a different machine. Well, I could have ghosted the whole image and restore it on other side then it stuck me that may be I can take a backup of my web application from the current machine and restore it on the new machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The backup process was smooth. SharePoint created a folder structure with all necessary .bak files. While restoring on the other machine, I ran into some issues. The restore process started  fine but then I saw some errors in the restore.log file in my backup folder.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#ff6600;"&gt;[5/6/2007 8:35:11 PM]: Error: Object WSS_Content_37a0332fb0794e7eb29b164e68d16910 failed in event OnPostRestore. For more information, see the error log located in the backup directory. SPException: Cannot attach database to Web application. Use the command line tool or Central Administration pages to attach the database manually to the proper Web Application.[5/6/2007 8:35:11 PM]: Debug: at Microsoft.SharePoint.Administration.SPContentDatabase.OnPostRestore(Object sender, SPRestoreInformation args)&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;When I checked the SQL server, it did attach the content database however because of the above error it failed to join my web application entry to the content database. Also, because the restore process abrupted, it did not created the IIS web application on the new machine. To resolve this issue, I had to do the following&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;1) From Central Admin Applications Add Content Database screen --&gt; Add the newly atttached content database. By default, this screen will show values from backup machine&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_fSYLng6EyHE/Rj8qV27M9vI/AAAAAAAAADQ/fGFPFrRHvcQ/s1600-h/addcontent.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5061811061197174514" alt="" src="http://1.bp.blogspot.com/_fSYLng6EyHE/Rj8qV27M9vI/AAAAAAAAADQ/fGFPFrRHvcQ/s320/addcontent.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) Next, I had to restart the Windows SharePoint Services Web Application" Service . This service is responsible for creating IIS application on local web -front end and also to keep in sync with other servers in the farm.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_fSYLng6EyHE/Rj8rc27M9wI/AAAAAAAAADY/eJlQZVCWJeA/s1600-h/services.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5061812280967886594" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_fSYLng6EyHE/Rj8rc27M9wI/AAAAAAAAADY/eJlQZVCWJeA/s320/services.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After this, I was able to see my old application on the new machine.  I had to copy my aspx customization from \_layout folder,  some features and legacy COM controls  to  the new machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#ff6600;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-8473835059128422865?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/8473835059128422865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=8473835059128422865' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/8473835059128422865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/8473835059128422865'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/when-sharepoint-2007-restore-fails.html' title='When SharePoint  2007 &quot;Restore&quot; fails'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fSYLng6EyHE/Rj8qV27M9vI/AAAAAAAAADQ/fGFPFrRHvcQ/s72-c/addcontent.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-102171876967867987</id><published>2007-05-06T07:32:00.000-07:00</published><updated>2007-05-06T17:59:33.746-07:00</updated><title type='text'>When not to use SharePoint Designer (AKA Microsoft FrontPage)</title><content type='html'>SharePoint designer is a great tool to edit SharePoint sites and pages without detail knowledge of ASP.NET or HTML. But like everything else in life this is not the perfect tool for everything, specially if you are modifying an aspx or a master page from "_layouts" folder.&lt;br /&gt;&lt;br /&gt;In SharePoint the relative path to the page is represented using tilda (~) sign e.g. &lt;span style="color:#cc0000;"&gt;&lt;strong&gt;~&lt;/strong&gt;&lt;/span&gt;/_layouts/simple.master, which means the &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;~&lt;/span&gt;&lt;/strong&gt; will be replaced at runtime with appropriate site name. This is where the problem begin, when you open a page which is on a file systel e.g. _layout folder, SharePoint tries to resolve all relative path to the site (thinking its a "Ghosted" page) and end up replacing with &lt;span style="color:#ff0000;"&gt;"_layouts"&lt;/span&gt; . You don't get any error until you start using that page. At runtime, SharePoint will try to resolve all path to &lt;span style="color:#ff0000;"&gt;"absolute" _layout&lt;/span&gt; folder - which does not exists, as oppose to a&lt;span style="color:#ff0000;"&gt; relative ~/_layouts&lt;/span&gt; path . Wish there was a better way to handle this. I ended up editing these page the old fashied way - e.g. Notepad . Hopefully in SharePoint 2007 Service Pack1 this might get resolved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-102171876967867987?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/102171876967867987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=102171876967867987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/102171876967867987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/102171876967867987'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/when-not-to-use-sharepoint-designer-aka.html' title='When not to use SharePoint Designer (AKA Microsoft FrontPage)'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-6684497871574050492</id><published>2007-05-06T05:56:00.000-07:00</published><updated>2007-05-06T09:48:24.242-07:00</updated><title type='text'>Things to keep in mind when implementing Custom Authentication Provider for SharePoint 2007</title><content type='html'>Recently I had to implement a custom authentication provider for one of my clients. From the surface, it looked easy since SharePoint 2007 is an ASP.NET 2.0 application so all you need to do is implement - &lt;strong&gt;&lt;span style="color:#cc0000;"&gt;MembershipProvider&lt;/span&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;span style="color:#cc0000;"&gt;&lt;em&gt;RoleProvider&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;. Well, that part was easy but the hard part was to figure out how SharePoint make calls to your custom provider, which calls need to be optimised, what data can be cached.&lt;br /&gt;&lt;br /&gt;Here are some findings&lt;br /&gt;&lt;br /&gt;1) &lt;span style="color:#cc0000;"&gt;&lt;strong&gt;&lt;em&gt;RoleProvider :&lt;/em&gt;&lt;/strong&gt; &lt;span style="color:#000000;"&gt;Although this is optional, you are better of implementing this one. One biggest problem I ran into without implementing this one was "Admin" user, How do you add a user to Admin role? and Without a admin user, how to login and add other users ? Chicken and Egg problem. Though via Central admin you can give a user full access to a virtual user but when you try to login into your application(site), SharePoint will throw "Access denied" error&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2)&lt;strong&gt;&lt;em&gt;&lt;span style="color:#009900;"&gt;User Lookup and Addressbook&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;&lt;span style="color:#cc0000;"&gt;&lt;sharepoint&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;: Anywhere in SharePoint, when you click these two icons &lt;img src="http://2.bp.blogspot.com/_fSYLng6EyHE/Rj3Tkm7M9uI/AAAAAAAAADI/zcE9JtOkfq8/s320/addressbook.gif" border="0" /&gt; &lt;img src="http://2.bp.blogspot.com/_fSYLng6EyHE/Rj3Tcm7M9tI/AAAAAAAAADA/YFT7dYFLxPo/s320/checknames.gif" border="0" /&gt;, They call your Custom Authentication Provider. Interestingly both these button call the &lt;em&gt;&lt;span style="color:#cc0000;"&gt;FindUsersByEmail&lt;/span&gt;&lt;/em&gt; method. If you are expecting a wildcard user search, the default wildchar character SharePoint usages is &lt;span style="color:#ff0000;"&gt;%&lt;/span&gt;, though this can be replaced to a different character by modifying your Authentication provider entry in web.config file&lt;br /&gt;&lt;br /&gt;3) &lt;span style="color:#cc0000;"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#009900;"&gt;Editing Master Page&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; :&lt;/span&gt; One problem I ran to was that I had to update default master page, Because I was using CustomAuthentication Provider, I could not open it directly from SharePoint designer ( though there is a way to achieve this - e.g. persistent cookie) I had to edit it the old fashioned way aka - Notepad. Well I made couple of syntax errors but I forgot to test it locally and directly check-in via "Masterpages Gallery" - Bomb!, I could not get my default page to load, It keep giving me - "Resource not found" ASP.NET generic error. I could not see any error either in SharePoint log or in Event log. The only way I could roll it back was by changing my authentication provider back to "Windows" and then loading my master page in "SharePoint designer". I wish there was a better way to do this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am still having fun with it. I will post more findings later. If you are looking for how to implement an custom authentication provider, here is a great MSDN article&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/f1kyba5e.aspx"&gt;http://msdn2.microsoft.com/en-us/library/f1kyba5e.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-6684497871574050492?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/6684497871574050492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=6684497871574050492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/6684497871574050492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/6684497871574050492'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/05/things-to-keep-in-mind-when.html' title='Things to keep in mind when implementing Custom Authentication Provider for SharePoint 2007'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fSYLng6EyHE/Rj3Tkm7M9uI/AAAAAAAAADI/zcE9JtOkfq8/s72-c/addressbook.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-3045359450456509718</id><published>2007-04-11T19:47:00.000-07:00</published><updated>2007-04-11T19:54:38.377-07:00</updated><title type='text'>"Domain\User" vs "User" What's the difference if the user is local?</title><content type='html'>Well, in SharePoint land its a big difference.  SharePoint will throw all kinds of weird errors if you forget to include a "domain\" prefix for a windows user when you create a "site collection" or web application. &lt;br /&gt;&lt;br /&gt;The best practice is to alway use "domain\user" to avoid any confusion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-3045359450456509718?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/3045359450456509718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=3045359450456509718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/3045359450456509718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/3045359450456509718'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/04/domainuser-vs-user-whats-difference-if.html' title='&quot;Domain\User&quot; vs &quot;User&quot; What&apos;s the difference if the user is local?'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-741650268558919134</id><published>2007-03-21T18:52:00.000-07:00</published><updated>2007-03-21T19:15:31.226-07:00</updated><title type='text'>Custom Protocol Handler vs BDC</title><content type='html'>I&lt;span style="font-family:verdana;"&gt; get this question a lot. If I have SharePoint 2007 enterprise version, I can index any repository with Business Data Catalog (BDC). Why should I care about Protocol Handler? Writting Protocol Handler is anyway is a pain in neck, even the experienced C++ developers find it hard to write &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;So the simple answer is the BDC was designed for knowledge workers (those who Microsoft consider pseudo-programmers) to be able to extract busienss information from Line of Business Application using declarative langauge (XML) as oppose to a regular programing language.&lt;br /&gt;&lt;br /&gt;Since the target audience of BDC are knowledge workers and not programmers, its NOT designed to scale or for complex scenerios. Its a very much black box design. You don't really know what happpens behind the close door ( and you probably don't care, if you are not a programmer)&lt;br /&gt;&lt;br /&gt;This is what you don't get in BDC&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;You have no control over what type of IFITLER ares applied. Agreed, you don't really care if this is just a matter of text extaction from binary documents, but if you really want to emit custom metadata, or links, you do need a good control on how its being handled&lt;br /&gt;&lt;li&gt;You can not do any kind of custom throttling or optimization. Everything is a black box. SharePoint provides some throttling options for content-source, but thats as far as you can go&lt;br /&gt;&lt;li&gt;You have no way to do any network optimization, custom error handling or debugging. If your document is not indexed, well you will in the gatherer log but with standard error message&lt;br /&gt;&lt;li&gt;You can not emit custom security ACL for your document/items to BDC &lt;/li&gt;&lt;li&gt;You can not control the incremental indexing, new items or deleted items.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can certainly specify in BDC definition but nothing compare to protocol handler&lt;/li&gt;&lt;li&gt;Finally, putting PH developer on the resume is totally different than putting BDC developer :)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-741650268558919134?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/741650268558919134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=741650268558919134' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/741650268558919134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/741650268558919134'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/03/custom-protocol-handler-vs-bdc.html' title='Custom Protocol Handler vs BDC'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-186403351429491250</id><published>2007-03-19T17:34:00.000-07:00</published><updated>2007-03-21T18:18:33.661-07:00</updated><title type='text'>SharePoint SDK = .NET (Managed Code) + COM ( Unmanaged code)</title><content type='html'>&lt;div align="justify"&gt;Ever since I used reflector(a freeware tool to examine any .NET assembly) I check most third party assemblies before using in my code. SharePoint was no exception. I wanted to see how SharePoint communicates with SQL Server. So I started digging but to my disappointment, I couldn't find any references to database related code. But to my surprise, I discovered something entirely different (See the class below) &lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://1.bp.blogspot.com/_fSYLng6EyHE/Rf84CiVZGCI/AAAAAAAAACo/fGm8nG4zHwI/s1600-h/dotnetreflector.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5043811723905669154" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_fSYLng6EyHE/Rf84CiVZGCI/AAAAAAAAACo/fGm8nG4zHwI/s320/dotnetreflector.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Most SharePoint data connection usages SPRequest class, which is in Microsoft.SharePoint.library.dll ( This dll gets copied in GAC on SharePoint machine, you will need to manually copy this DLL out of GAC if you want to see all interfaces). Now this assembly in turn usages OWSSVRLIB.DLL ( This dll is under 12\ISAPI folder). Interesting thing is, this is a COM (UNMANAGE CODE) dll, obviously reflector didn't work&lt;br /&gt;&lt;br /&gt;So I was disappointed in my quest but I indeed found something which makes me wonder is this an intelligent design decision or simply lack of time?&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-186403351429491250?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/186403351429491250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=186403351429491250' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/186403351429491250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/186403351429491250'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/03/sharepoint-sdk-net-managed-code-com.html' title='SharePoint SDK = .NET (Managed Code) + COM ( Unmanaged code)'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fSYLng6EyHE/Rf84CiVZGCI/AAAAAAAAACo/fGm8nG4zHwI/s72-c/dotnetreflector.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-2073108303669262608</id><published>2007-03-07T13:51:00.000-08:00</published><updated>2007-03-07T14:07:09.385-08:00</updated><title type='text'>Proof reading, usability or lack of time ?</title><content type='html'>I usually stay way from pointing out mistakes but I couldn't resist with this screen. This is in SharePoint 2007, one of the products that brings food on my table :)  &lt;br /&gt;&lt;br /&gt;So SharePoint 2007 supports multiple operations - Performing action on more than one items with a single button. If you go to "Site Action" | Portal Content and Structure, you will notice that all contents has a checkbox in front of it. You can select more than one content and then pick your action from the toolbar above. &lt;br /&gt;&lt;br /&gt;In my test environment, I had few sites, which I created as part of my stress testing and I wanted to get rid of them with a single command,  so multiple operation was  the perfect action for this kind of stuff.  Everthing worked nice and well but the confirmation message screen SharePoint displayed was funny... It appears someone either forget to test this or didnt bother :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_fSYLng6EyHE/Re82uZ--iJI/AAAAAAAAACg/XZUQJNb6qCc/s1600-h/docs.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_fSYLng6EyHE/Re82uZ--iJI/AAAAAAAAACg/XZUQJNb6qCc/s320/docs.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5039306678927788178" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-2073108303669262608?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/2073108303669262608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=2073108303669262608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/2073108303669262608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/2073108303669262608'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/03/proof-reading-usability-or-lack-of-time.html' title='Proof reading, usability or lack of time ?'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fSYLng6EyHE/Re82uZ--iJI/AAAAAAAAACg/XZUQJNb6qCc/s72-c/docs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-3962028589896113708</id><published>2007-02-12T11:29:00.000-08:00</published><updated>2007-02-12T14:42:47.024-08:00</updated><title type='text'>When and Where to use SharePoint SDK</title><content type='html'>&lt;span&gt;In addition to standard SDK, SharePoint supports web-services, front page rpc and webdav(on front page RPC). How do you decide, which one is appropriate for your application? . To make it simple, I have put together a following matrix&lt;br /&gt;&lt;/span&gt;&lt;table class="blog" cellpadding="2" valign="top" align="center"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="center"&gt;&lt;h3&gt;Type&lt;/h3&gt; &lt;td align="center"&gt;&lt;h3&gt;Purpose&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" align="middle"&gt;&lt;h3&gt;SDK&lt;/h3&gt;&lt;/td&gt;&lt;td&gt;When you application is hosted on the same box as SharePoint , it makes perfect sense to use SDK. SharePoint SDK requires the SharePoint to be installed on the same box.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td align="middle"&gt;&lt;h3&gt;WEB SERVICES&lt;/h3&gt;&lt;/td&gt;&lt;td&gt;Now a days, Web-services makes sense for any application.Most technical and non-technical folks seems to throw this key word to show off their grasp on latest happening in technology. In case of SharePoint, web services makes sense when application is interacting from a different machine or network. The appropriate applications would be &lt;ul&gt;&lt;br /&gt;&lt;li&gt;.NET application on a different machine&lt;br /&gt;&lt;li&gt;Interaction from non .net application such as Java or Perl&lt;br /&gt;&lt;li&gt;Access over internet (for SaaS)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td valign="top" align="middle"&gt;&lt;h3&gt;FrontPage RPC / WEBDAV &lt;/h3&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;SharePoint interacts with all Office clients mostly with Front Page Remote Procedure Call (FPRPC) and Webdav. If you are writtign a custom client or an integration for non-microsoft clients, this is your best choice.  If you need more information on how to create handle front page RPC calls  you you will find following links useful&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a  style="color:orange" href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=a4cc28b4-e626-4d0c-beb0-4c94d5bef88b" target="_blank"&gt;&lt;b&gt;SharePad&lt;/b&gt;&lt;/a&gt; : is an open source &lt;br /&gt;application, designed to give more inside into how one can consume FrontPage RPC. &lt;br /&gt;&lt;li&gt;&lt;a style="color:orange" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spsdk11/Intro/overview.asp" target="_blank"&gt; Overview of the SharePoint Team Services Architecture &lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-3962028589896113708?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/3962028589896113708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=3962028589896113708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/3962028589896113708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/3962028589896113708'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2007/02/when-and-where-to-use-sharepoint-sdk.html' title='When and Where to use SharePoint SDK'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15621323.post-113587349976692227</id><published>2005-12-29T08:23:00.000-08:00</published><updated>2005-12-29T08:24:59.766-08:00</updated><title type='text'>Office12 Beta1 is released!</title><content type='html'>Hold on ! This is only for selected partners and customers.  Beta2 is going to be for everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15621323-113587349976692227?l=office12.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://office12.blogspot.com/feeds/113587349976692227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15621323&amp;postID=113587349976692227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/113587349976692227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15621323/posts/default/113587349976692227'/><link rel='alternate' type='text/html' href='http://office12.blogspot.com/2005/12/office12-beta1-is-released.html' title='Office12 Beta1 is released!'/><author><name>Sheetal Jain</name><uri>http://www.blogger.com/profile/17996243408418033281</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
