<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Wictor Wilén</title><link>http://www.wictorwilen.se/</link><description>The blog of Wictor Wilén</description><language>en-us</language><image><link>http://www.wictorwilen.se/</link><url>http://www.wictorwilen.se/images/wwicon_32.png</url><title>Wictor Wilén</title></image><copyright>Copyright 2006-2009, Wictor Wilén</copyright><managingEditor>wictor@wictorwilen.se (Wictor Wilén)</managingEditor><generator>WW</generator><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
      <atom:name>wictor@wictorwilen.se (Wictor Wilén)</atom:name>
    </atom:author><cf:listinfo xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"> 
      <cf:sort label="Date" element="pubDate" default="true" data-type="date" />
      <cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" />
      <cf:sort element="title" label="Title" data-type="text" />
      <cf:group element="category" label="Category/tag" />
    </cf:listinfo><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/WictorWilen" type="application/rss+xml" /><feedburner:emailServiceId>WictorWilen</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>SharePoint Virtualization Survey - results</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/5g32d4WUfu0/SharePoint-Virtualization-Survey-results.aspx</link><category>SharePoint</category><category>Virtual Server</category><category>Hardware</category><category>Virtual PC</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Sun, 21 Jun 2009 19:31:59 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Virtualization-Survey-results.aspx</guid><description>&lt;p&gt;About two months ago I tried to reach out to the &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; community with a small survey on how Virtualization is used with SharePoint. The survey was primarily for my own interest to benchmark what others are doing, but I also thought that I should share this with everyone. SharePoint and Virtualization is an interesting piece of discussion; some despise it and some love it. For more information on SharePoint and virtualization read &lt;a href="http://sharepointmagazine.net/technical/administration/sharepoint-farm-configuring-and-deployment-part-5-virtualization"&gt;this great article&lt;/a&gt; from &lt;a href="http://sharepointmagazine.net/" target="_blank"&gt;SharePointMagazine.net&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;And now the results&lt;/h3&gt;  &lt;p&gt;All but one answering this survey said that they were using virtualization in their SharePoint environment. Not that surprising - I guess that if you don't virtualize then you do not even bother to look at the survey.&lt;/p&gt;  &lt;h4&gt;Virtualization technology&lt;/h4&gt;  &lt;p&gt;Since this survey did not specify if it was for production, test, staging or development the answers on what virtualization technology that was used was quite spread. &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; Hyper-V and VMWare ESX Server was the two products that most survey participants used. Not surprisingly was Microsoft Virtual PC right behind those two.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveyresults_98E5/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveyresults_98E5/image_thumb.png" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;What is virtualized?&lt;/h4&gt;  &lt;p&gt;Almost everyone (95.7%) is virtualizing their development environment and half (50%) of the survey participants is virtualizing their production environment. This was a bit higher than I expected.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveyresults_98E5/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveyresults_98E5/image_thumb_1.png" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;But what is virtualized then? The Web Front End was the clear "winner" with the Query service as a runner up. A quite high number of respondents answered that they were virtualizing the database role (73,9%) but only half of them could really recommend it (37,2%). The Excel Services role was something that about half of the participants virtualized (47,8%) and recommended for virtualiztion (44,2%).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveyresults_98E5/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveyresults_98E5/image_thumb_2.png" width="244" height="145" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The majority did not recommend virtualizing the database role (80%) nor the Index role (43,3%).&lt;/p&gt;  &lt;h4&gt;Satisfaction!&lt;/h4&gt;  &lt;p&gt;Almost everyone was very satisfied (40%) or satisfied (53%) with virtualizing their SharePoint environments and only a few were dissatisfied (7%). 98% of the respondents do recommend virtualizing SharePoint.&lt;/p&gt;  &lt;h4&gt;&lt;/h4&gt;  &lt;h4&gt;Why?&lt;/h4&gt;  &lt;p&gt;One thing that I really wanted to find out was why SharePoint is virtualized and here are what the survey participants thought:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="447"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="167"&gt; &lt;/td&gt;        &lt;td valign="top" width="85" align="center"&gt;&lt;strong&gt;Agrees&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="85" align="center"&gt;&lt;strong&gt;Neutral&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;&lt;strong&gt;Does not agree&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="165"&gt;Lower hardware cost&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;82%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;14%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;5%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="163"&gt;Lower license costs&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;21%&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;47%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;33%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="163"&gt;Lower maintenance costs&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;62%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;29%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;9%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Better performance&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;7%&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;&lt;strong&gt;52%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;40%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Improves scalability&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;64%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;24%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;12%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Improved security&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;27%&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;&lt;strong&gt;56%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;17%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Improved redundancy&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;60%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;36%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;5%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Safe backup&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;55%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;31%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;14%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Simplifies development&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;86%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;14%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;0%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Simplifies deployment&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;73%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;20%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;7%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="162"&gt;Positive effect on the environment&lt;/td&gt;        &lt;td valign="top" width="86" align="center"&gt;&lt;strong&gt;74%&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="87" align="center"&gt;26%&lt;/td&gt;        &lt;td valign="top" width="108" align="center"&gt;0%&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Simplified development and lower hardware costs was the two ones that was quite expected. When looking at the license costs most people were neutral or thought that the license costs were higher with virtualization, probably due to the fact that you might need more (virtual) servers to have the same performance (only 7% thought performance was better with virtualization).&lt;/p&gt;  &lt;p&gt;The numbers speaks for themselves and I do like that 74% also thinks that this has a positive effect on the environment.&lt;/p&gt;  &lt;p&gt;Any other comments on this survey, pleas post a comment below.&lt;/p&gt;  &lt;p&gt;Have a nice summer&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U5r20kaKC0McwTdUbuMMdtnBrJE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U5r20kaKC0McwTdUbuMMdtnBrJE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U5r20kaKC0McwTdUbuMMdtnBrJE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U5r20kaKC0McwTdUbuMMdtnBrJE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=5g32d4WUfu0:qcv44srofJg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=5g32d4WUfu0:qcv44srofJg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=5g32d4WUfu0:qcv44srofJg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=5g32d4WUfu0:qcv44srofJg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=5g32d4WUfu0:qcv44srofJg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=5g32d4WUfu0:qcv44srofJg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=5g32d4WUfu0:qcv44srofJg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=5g32d4WUfu0:qcv44srofJg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/5g32d4WUfu0" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-06-22 02:31:59Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-22 02:31:59Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=487</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Virtualization-Survey-results.aspx</feedburner:origLink></item><item><title>70-630 passed! Do you really call this a certification!</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/-siQieDFocs/70630-passed-Do-you-really-call-this-a-certification.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Thu, 11 Jun 2009 07:24:16 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/70630-passed-Do-you-really-call-this-a-certification.aspx</guid><description>&lt;p&gt;Just in time for next version of &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; to arrive I just completed the final certification exam for SharePoint 2007, the &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-630&amp;locale=en-us"&gt;70-630 Microsoft Office SharePoint Server 2007, Configuring&lt;/a&gt;. As always I did think that it should be some tricky questions or problems to solve in the exam, I even installed a MOSS RTM last night just to walk through the admin interfaces before the infrastructure upgrade. But to my disappointment this certification was by no means any challenge. This was by far the easiest of the four exams.&lt;/p&gt;  &lt;p&gt;After taking the two developer (&lt;a href="http://www.wictorwilen.se/Post/70541-passed.aspx"&gt;70-541&lt;/a&gt; and &lt;a href="http://www.wictorwilen.se/Post/70542-passed.aspx"&gt;70-540&lt;/a&gt;) and the configuring exams (&lt;a href="http://www.wictorwilen.se/Post/70631-passed.aspx"&gt;70-631&lt;/a&gt; and now 70-630) I really think that &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; has failed in creating exams that has any kind of value as a certification. To have some kind of validity on these exams/certifications they should give you a challenge, it should be (must be) hard to pass them. I really hope that Microsoft totally changes how these certifications are outlined and put together for the certifications of the next version of SharePoint. Passing these exams today says nothing (and do not even mention if you failed them). Make the questions into more troubleshooting, especially the configuring exams, have questions on the best practices, make some kind of scenario with linked questions and perhaps even some kind of virtual lab I understand that all problems and best practices are not "invented" when the exams hits the streets, but why not having a level 2 exam coming a year or so later, that has some higher status.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.zimmergren.net/archive/2009/06/05/sweden-sharepoint-user-group-may-28th-re-cap.aspx"&gt;Last week&lt;/a&gt; at the SharePoint User Group meeting we had a session with Sweden's first SharePoint Master who told us about the Master certification program - and that is what I call certification. Ok, not everyone will be or even have the chance to be a Master (&lt;a href="http://www.harbar.net/archive/2009/05/07/reality-check-microsoft-certified-master-for-sharepoint-2007.aspx"&gt;read Spencer Harbars post&lt;/a&gt;) and I do not want the standard exams to be this hard/impossible. Those who passes the MCM are not only Masters they are immortals!&lt;/p&gt;  &lt;p&gt;Anyways, I know have the four ones and really looking forward to being acquainted with SharePoint 2010. Not all was bad with these exams though, they made me read through a set of books, making some labs on my own and with that I learned a whole lot.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qC4TeH6yPFRtdHBE8khlupCfn20/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qC4TeH6yPFRtdHBE8khlupCfn20/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qC4TeH6yPFRtdHBE8khlupCfn20/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qC4TeH6yPFRtdHBE8khlupCfn20/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=-siQieDFocs:ll-N9JcwAUI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=-siQieDFocs:ll-N9JcwAUI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=-siQieDFocs:ll-N9JcwAUI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=-siQieDFocs:ll-N9JcwAUI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=-siQieDFocs:ll-N9JcwAUI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=-siQieDFocs:ll-N9JcwAUI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=-siQieDFocs:ll-N9JcwAUI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=-siQieDFocs:ll-N9JcwAUI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/-siQieDFocs" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-06-11 14:24:16Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-11 14:24:16Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=486</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/70630-passed-Do-you-really-call-this-a-certification.aspx</feedburner:origLink></item><item><title>Six ways to store settings in SharePoint</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/GGCaWc3JEfE/Six-ways-to-store-settings-in-SharePoint.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Tue, 09 Jun 2009 05:15:39 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Six-ways-to-store-settings-in-SharePoint.aspx</guid><description>&lt;p&gt;When developing applications or custom solutions for &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; you will on several occasions have to store settings for you application of some kind. When developing database driven or other custom solutions you easily create a database table or make the settings in app/web.config file. You can of course use these approaches when developing for SharePoint, but there are some things to consider when doing this. This post will outline some approaches you can use to store your settings.&lt;/p&gt;&lt;p&gt;What I mean with application or solution settings is some kind of settings that you need for you application to work, such as a Url to a web service or a username and password. These settings are normally only editable by administrators, which requires you to have some security plans, and you need an interface to edit the settings.&lt;/p&gt;&lt;p&gt;Worth to have in mind is that SharePoint can span multiple servers and web applications, it also has the Site Collection and Site scopes which might need different settings if your application runs on several places.&lt;/p&gt;&lt;h3&gt;&lt;/h3&gt;&lt;h3&gt;Using a SharePoint List&lt;/h3&gt;&lt;p&gt;Creating a database table for storing settings is not the best way in a SharePoint solution - you would use a SharePoint list for this instead. This is the easiest way. Creating a custom list with Title and a Value allows you to store all your settings in one place. There is no need to create a user interface, since you use out-of-the-box functionality and you can secure the list by using permissions on it. The drawback is you need some information (read other setting) that tells you where this list is located, so you're back on square one.&lt;/p&gt;&lt;h3&gt;Using web.config&lt;/h3&gt;&lt;p&gt;Using web.config is another way to store your settings. It's easy to store information in the &lt;a href="http://msdn.microsoft.com/en-us/library/ms228154.aspx"&gt;appSettings&lt;/a&gt; element using a key/value combo. The .NET Framework have built-in functionality to read these settings and SharePoint has some (not so good working) features to deploy the settings in your farm with the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx"&gt;SPWebConfigModification&lt;/a&gt; class. This approach can only be applied if your settings are web-application wide and you either deploy the settings with the SharePoint object model, which can be quite cumbersome, or manually edit the web.config file on all WFE's.&lt;/p&gt;&lt;h3&gt;Using the SPWeb object&lt;/h3&gt;&lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.aspx"&gt;SPWeb&lt;/a&gt; object has a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx"&gt;Properties&lt;/a&gt; property that is persistable &lt;a href="http://msdn.microsoft.com/en-us/library/system.collections.specialized.stringdictionary.aspx"&gt;StringDictionary&lt;/a&gt; stored on the Site (SPWeb) level. This is a perfect solution when you have to store Site specific settings and have the setting available over all your farm. The Properties property is used like this:&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; SPWeb  web = ...;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #008000"&gt;// set the value&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; web.Properties[&lt;span style="color: #006080"&gt;&amp;quot;TheSetting&amp;quot;&lt;/span&gt;] = &lt;span style="color: #006080"&gt;&amp;quot;the value&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;// update the value&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; web.Properties.Update();&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt;// get the value&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; val = web.Properties[&lt;span style="color: #006080"&gt;&amp;quot;TheSetting&amp;quot;&lt;/span&gt;];&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Easy and simple when you have to store key/value combinations, but not so good when you have to store more complex objects, then you have to make some Xml serialization/deseralization yourself.&lt;/p&gt;&lt;p&gt;The permissions in this case is controlled by the MangedWeb permission and you have to build your custom interface.&lt;/p&gt;&lt;h3&gt;Using the SPSite object&lt;/h3&gt;&lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.aspx"&gt;SPSite&lt;/a&gt; object does not have any Properties property like the SPWeb object, so if you have to store your settings on the Site Collection level you just use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.rootweb.aspx"&gt;SPSite.RootWeb&lt;/a&gt; SPWeb object and use the approach above.&lt;/p&gt;&lt;h3&gt;Using SPWebApplication Properties&lt;/h3&gt;&lt;p&gt;If you need to store your settings on the Web Application level and you don't to make changes to the web.config, then you can use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebapplication.aspx"&gt;SPWebApplication&lt;/a&gt; object. The SPWebApplication object inherits from the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.sppersistedobject.aspx"&gt;SPPersistedObject&lt;/a&gt; which has a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.sppersistedobject.properties.aspx"&gt;Properties&lt;/a&gt; property. This property is a HashTable so you can store key/value combos here. The value can be of any type, as long as it can be serialized.&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; SPWebApplication webApp = ...&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; obj = ...&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;// set value&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; webApp.Add(&lt;span style="color: #006080"&gt;&amp;quot;TheSetting&amp;quot;&lt;/span&gt;, obj);&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;// persist it&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; webApp.Update();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This approach requires the user to be farm administrator and you have to build your own interface.&lt;/p&gt;&lt;h3&gt;Using custom SPPersistedObjects&lt;/h3&gt;&lt;p&gt;Perhaps the best (imho) way to store settings for your web application is to use custom SPPersistedObjects. This approach is very handy when you have to store multiple settings and more complex values. You create your own class that derives from the SPPersistedObject and add your settings as properties to the class and marks them with the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.persistedattribute.aspx"&gt;Persisted&lt;/a&gt; attribute.&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TheSettings: SPPersistedObject {&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; TheSettings() {}&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; TheSettings(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; name, SPPersistedObject parent, Guid id) &lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;         : &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;(name, parent, id) { }&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;     [Persisted]&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; WebServiceUrl;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Then you use the SPWebApplication &lt;a href="http://msdn.microsoft.com/en-us/library/aa543304.aspx"&gt;GetChild&lt;/a&gt; method to retrieve your settings.&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; TheSettings settigs = webApplication&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     .GetChild&amp;lt;TheSettings&amp;gt;(&lt;span style="color: #006080"&gt;&amp;quot;theSettings&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;I usually add two static methods to my settings class for easy creating and retrieval of settings:&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; TheSettings GetSettings(SPWebApplication webApplication) {&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     TheSettings settings = webApplication.GetChild&amp;lt;TheSettings&amp;gt;(&lt;span style="color: #006080"&gt;&amp;quot;theSettings&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(settings == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; TheSettings.CreateNew(webApplication);&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;     }&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; settings;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; TheSettings CreateNew(SPWebApplication webApplication) {&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TheSettings(&lt;span style="color: #006080"&gt;&amp;quot;theSettings&amp;quot;&lt;/span&gt;,  webApplication, Guid.NewGuid());&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This also requires farm administrator to persist and you have to create an interface&lt;/p&gt;&lt;h3&gt;&lt;/h3&gt;&lt;h3&gt;That's it&lt;/h3&gt;&lt;p&gt;There you have it; six different ways to store and retrieve settings for you SharePoint custom application. When to use which one is up to you and your needs.&lt;/p&gt;&lt;p&gt;What are you preferred ways or do you have any other suggestions or additions?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Q9gFLSaIHeuLt4Ei9bRL9vC3NEw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q9gFLSaIHeuLt4Ei9bRL9vC3NEw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Q9gFLSaIHeuLt4Ei9bRL9vC3NEw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q9gFLSaIHeuLt4Ei9bRL9vC3NEw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=GGCaWc3JEfE:HgmXSjYGmZk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=GGCaWc3JEfE:HgmXSjYGmZk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=GGCaWc3JEfE:HgmXSjYGmZk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=GGCaWc3JEfE:HgmXSjYGmZk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=GGCaWc3JEfE:HgmXSjYGmZk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=GGCaWc3JEfE:HgmXSjYGmZk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=GGCaWc3JEfE:HgmXSjYGmZk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=GGCaWc3JEfE:HgmXSjYGmZk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/GGCaWc3JEfE" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-06-09 12:15:39Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-09 12:15:39Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">6</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=485</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Six-ways-to-store-settings-in-SharePoint.aspx</feedburner:origLink></item><item><title>New release for SPExLib with SharePoint Linq extensions</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/Txi1tQ5nhwU/New-release-for-SPExLib-with-SharePoint-Linq-extensions.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Fri, 29 May 2009 18:00:39 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/New-release-for-SPExLib-with-SharePoint-Linq-extensions.aspx</guid><description>&lt;p&gt;I'm really glad that we have managed to get a really nice release of the &lt;a href="http://spexlib.codeplex.com/"&gt;SharePoint Extensions Lib&lt;/a&gt;, SPExLib, out. This &lt;a href="http://spexlib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28038"&gt;brand new release (12.0.0.0)&lt;/a&gt; has significantly been improved since the first release a couple of weeks ago.&lt;/p&gt;&lt;p&gt;&lt;a href="http://solutionizing.net/"&gt;Keith Dahlby&lt;/a&gt; has made some really nice Linq extensions for &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; which is available in this release. These extensions are also IDisposable safe when using on SPWeb and SPSite collections. &lt;/p&gt;&lt;p&gt;By referencing the SPExLib.dll and include the namespaces you can easily write code like this (taken directly from one of my current projects):&lt;/p&gt;&lt;div id="codeSnippetWrapper"&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; SPList regions = web.Lists[&lt;span style="color: #006080"&gt;&amp;quot;Regions&amp;quot;&lt;/span&gt;];         &lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; regions.GetItems(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;Where&amp;gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name='Customer'/&amp;gt;&amp;lt;Value Type='Lookup'&amp;gt;{0}&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&amp;lt;/Where&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;                     .FormatWith(lookupValue)&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;                 )&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;            .ForEach&amp;lt;SPListItem&amp;gt;(&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;                     item =&amp;gt; ddlRegion.Items.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ListItem(item[&lt;span style="color: #006080"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;].ToString(), item.ID.ToString()))&lt;/pre&gt;&lt;!--CRLF--&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;             );&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;As you can see the sample uses a number of extension methods; SPList.GetItems() can accept a CAML query directly, System.String has a FormatWith method, the SPListItemCollection has a ForEach method.&lt;/p&gt;&lt;p&gt;&lt;a href="http://spexlib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28038"&gt;Download it&lt;/a&gt; and try it out, you will find yourself more productive!&lt;/p&gt;&lt;p&gt;Have a nice weekend.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aDGredenEqqXmxymQpDQLG5Ey7s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aDGredenEqqXmxymQpDQLG5Ey7s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aDGredenEqqXmxymQpDQLG5Ey7s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aDGredenEqqXmxymQpDQLG5Ey7s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=Txi1tQ5nhwU:1gxfRNq3JfM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=Txi1tQ5nhwU:1gxfRNq3JfM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=Txi1tQ5nhwU:1gxfRNq3JfM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=Txi1tQ5nhwU:1gxfRNq3JfM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=Txi1tQ5nhwU:1gxfRNq3JfM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=Txi1tQ5nhwU:1gxfRNq3JfM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=Txi1tQ5nhwU:1gxfRNq3JfM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=Txi1tQ5nhwU:1gxfRNq3JfM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/Txi1tQ5nhwU" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-30 01:00:39Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-30 01:00:39Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=484</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/New-release-for-SPExLib-with-SharePoint-Linq-extensions.aspx</feedburner:origLink></item><item><title>SharePoint Online updated</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/EE8ZROgt1CE/SharePoint-Online-updated.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Wed, 27 May 2009 17:10:38 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Online-updated.aspx</guid><description>&lt;p&gt;&lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; has updated &lt;a href="http://www.microsoft.com/online/default.mspx"&gt;SharePoint Online&lt;/a&gt; with a patch that resolves the bug that prohibited you from getting the service descriptions from the web services, that &lt;a href="http://www.wictorwilen.se/Post/Update-to-the-Custom-code-with-SharePoint-Online-and-Windows-Azure-due-to-bug-in-SharePoint-Online.aspx"&gt;I previously described&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;This means that you now can use Visual Studio or SharePoint Designer (or any other tool that you like) to connect to the &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; Online web services and code away, instead of going to some local instance to get the descriptions.&lt;/p&gt;  &lt;p&gt;Does anybody know where the Microsoft Online team posts all updates/changes to the BPOS? I got this information from Troy (from the BPOS team) commenting on my post.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/arQueTqTiXffmxmHljX9U9fRY9Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/arQueTqTiXffmxmHljX9U9fRY9Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/arQueTqTiXffmxmHljX9U9fRY9Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/arQueTqTiXffmxmHljX9U9fRY9Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EE8ZROgt1CE:msS8BjjDSy0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EE8ZROgt1CE:msS8BjjDSy0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=EE8ZROgt1CE:msS8BjjDSy0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EE8ZROgt1CE:msS8BjjDSy0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=EE8ZROgt1CE:msS8BjjDSy0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EE8ZROgt1CE:msS8BjjDSy0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EE8ZROgt1CE:msS8BjjDSy0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=EE8ZROgt1CE:msS8BjjDSy0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/EE8ZROgt1CE" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28 00:10:38Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-28 00:10:38Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=483</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Online-updated.aspx</feedburner:origLink></item><item><title>SharePoint Service Pack 2 known, found and experienced problems</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/o4KulUahBag/SharePoint-Service-Pack-2-known-found-and-experienced-problems.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Thu, 21 May 2009 17:41:18 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Service-Pack-2-known-found-and-experienced-problems.aspx</guid><description>&lt;p&gt;Installing a new service pack onto a server product is not just firing up the installer and hit next-&gt;next-&gt;finish. You should carefully read through the documentation and test it thoroughly. Service Pack 2 for &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; has been long awaited and I’ve seen people the last 24 hours installing it like madness just wanting to get their hands on the new features/updates. I did also install it just minutes after it was released (on my dev machine that is being reinstalled any hour now, when Windows 7 RC is out).  &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.andrewconnell.com/"&gt;Andrew Connell&lt;/a&gt; said it well in a tweet just recently: &lt;a href="http://twitter.com/andrewconnell/status/1650788194"&gt;“I’s watching everyone else install #sharepoint SP2 to see if there are issues (ala IU's AAM fiasco)... thanks in advance guys :)”&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt; is one nice source of real-time update on what is happening right now on just about everything, especially when it comes to &lt;a href="http://search.twitter.com/search?q=%23SharePoint"&gt;#SharePoint&lt;/a&gt;. I’ve collected some of the known, found and discovered problems with Service Pack 2 for Windows SharePoint Services 3.0 and Office SharePoint Server 2007.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;IMPORTANT UPDATE&lt;/font&gt;&lt;/strong&gt;: &lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx"&gt;Important information on Service Pack 2&lt;/a&gt; from the &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; Team. (&lt;strong&gt;Added 2009-05-22&lt;/strong&gt;)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Service Pack 2 has unfortunately a serious bug which makes SharePoint &lt;em&gt;time bombed&lt;/em&gt; after 180 days. Workaround is described (&lt;a href="http://support.microsoft.com/kb/971620"&gt;KB article&lt;/a&gt;) and hotfix is on the way!&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;a href="http://connect.nintex.com/forums/thread/3640.aspx"&gt;Nintex Workflow 2007 problem with Service Pack 2&lt;/a&gt; (&lt;strike&gt;Nintex currently advises users not to install SP2&lt;/strike&gt;) – the forum thread contains a workaround (&lt;strong&gt;Updated 2009-05-01&lt;/strong&gt;)       &lt;ul&gt;       &lt;li&gt;Why did they not have a public (or semi-public beta) for SP2 so companies like Nintex could be proactive &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;Update 2009-05-08&lt;/strong&gt;: &lt;a href="http://www.nintexdownload.com/sl/supportfiles/NW2007_version_history.pdf"&gt;Nintex Workflow 2007 1.9.4 fixes these issues&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://home.kbworks.nl/blog/archive/2009/04/29/failure-during-update-sharepoint-sp2.aspx"&gt;Failure when running configuration wizard after applying SP2 (problem and solution)&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;The search service seems to be causing trouble for some users, either when running the config wizard or the b2b timer job &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.hezser.de/blog/archive/2009/04/28/installation-of-sharepoint-sp2-fails.aspx"&gt;Problem with SQL Server and AWE memory allocation&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Some people says that it takes some time to start SharePoint after applying the update      &lt;ul&gt;       &lt;li&gt;Note that the content-dbs may automatically be defragmented after the update using the new defragmentation job &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Me and some others had some problems when running the installer which was due to the fact that the download of the updates failed so the installation package was corrupt. I had to retry a few times to get all the bits &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msmvps.com/blogs/laflour/archive/2009/04/30/sharepoint-sp2-and-spdatabasegbwsequence-error-is-caused-by-free-sharepoint-templates.aspx"&gt;SharePoint SP2 and SPDatabaseGbwSequence error is caused by free SharePoint templates&lt;/a&gt; (&lt;strong&gt;Added 2009-04-30&lt;/strong&gt;)       &lt;ul&gt;       &lt;li&gt;Another reason to test your installation &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/brianlala/status/1658976044"&gt;SharePoint Designer needs Service Pack 2 to connect to a SharePoint Service Pack 2 farm&lt;/a&gt; (&lt;strong&gt;Added 2009-04-30&lt;/strong&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.wssdemo.com/Blog/archive/2009/05/05/SharePoint-2007-SP2.aspx"&gt;MSI error 1603 while installing MOSS Service Pack 2&lt;/a&gt; (&lt;strong&gt;Added 2009-05-04&lt;/strong&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Have you experienced any other troubles, I’ll gladly update the list!&lt;/p&gt;  &lt;p&gt;If you’re anxious to install it, &lt;a href="http://msmvps.com/blogs/shane/archive/2009/04/29/install-guide-sp2-for-sharepoint-wss-v3-and-moss-2007.aspx"&gt;here is a great guide&lt;/a&gt; by &lt;a href="http://msmvps.com/blogs/shane/"&gt;Shane Young&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AlsVkwKf4ZOFALthHBV6IKmsUE4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AlsVkwKf4ZOFALthHBV6IKmsUE4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AlsVkwKf4ZOFALthHBV6IKmsUE4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AlsVkwKf4ZOFALthHBV6IKmsUE4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=o4KulUahBag:KulaGwj3s5c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=o4KulUahBag:KulaGwj3s5c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=o4KulUahBag:KulaGwj3s5c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=o4KulUahBag:KulaGwj3s5c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=o4KulUahBag:KulaGwj3s5c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=o4KulUahBag:KulaGwj3s5c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=o4KulUahBag:KulaGwj3s5c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=o4KulUahBag:KulaGwj3s5c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/o4KulUahBag" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-22 00:41:18Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-22 00:41:18Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">20</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=474</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Service-Pack-2-known-found-and-experienced-problems.aspx</feedburner:origLink></item><item><title>Introducing SharePoint Extensions Lib</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/l_56FoQY3us/Introducing-SharePoint-Extensions-Lib.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Wed, 20 May 2009 18:40:43 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Introducing-SharePoint-Extensions-Lib.aspx</guid><description>&lt;p&gt;I've had an idea for some time to gather all mine and others nifty extension, utility and helper methods into a shared library so that these can be reused in different projects and I finally got my act together and created a new project on &lt;a href="http://www.codeplex.com"&gt;Codeplex&lt;/a&gt; called &lt;a href="http://spexlib.codeplex.com/"&gt;SharePoint Extensions Lib&lt;/a&gt;, &lt;a href="http://spexlib.codeplex.com/"&gt;http://spexlib.codeplex.com/&lt;/a&gt;, &lt;strong&gt;SPExLib&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/IntroducingSharePointExtensionsLib_97C2/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SharePoint Extensions Lib" border="0" alt="SharePoint Extensions Lib" src="http://www.wictorwilen.se/WindowsLiveWriter/IntroducingSharePointExtensionsLib_97C2/image_thumb.png" width="397" height="89" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is a library filled with extension methods to the &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; object model and to the &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;.NET 3.5 SP1 classes as well as some helper classes. All you have to do is reference it in your solution and add the &lt;em&gt;using SPExLib.Extensions&lt;/em&gt; statement to your code and you are ready to go.&lt;/p&gt;  &lt;p&gt;The goal with this project is to make SharePoint programming easier and to fill in the gaps left out in the standard SharePoint APIs.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Version 1.0.0.0&lt;/h3&gt;  &lt;p&gt;This &lt;a href="http://spexlib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27623"&gt;first version&lt;/a&gt; contains extension methods such as:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SPWeb.ListExists() - checks if a list exists in a site &lt;/li&gt;    &lt;li&gt;SPList.ViewExists() - checks if a list contains a specific view &lt;/li&gt;    &lt;li&gt;SPListItem.Contains() - checks if a list item contains a specific field &lt;/li&gt;    &lt;li&gt;SPListItemCollection.FindByField() - returns all items with a certain value to a specific field &lt;/li&gt;    &lt;li&gt;Extensions to the XElement and XmlNode objects &lt;/li&gt;    &lt;li&gt;A set of classes to make creation of WebParts with EditorParts easier to create &lt;/li&gt;    &lt;li&gt;and more &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;New versions will be released as soon as we have some new and cool extensions.&lt;/p&gt;  &lt;h3&gt;Contributions - I want you&lt;/h3&gt;  &lt;p&gt;I really would like to see contributions to this library, so feel free to &lt;a href="http://www.wictorwilen.se/Contact.aspx"&gt;contact&lt;/a&gt; me or write suggestions on the &lt;a href="http://spexlib.codeplex.com/Thread/List.aspx"&gt;Codeplex discussions page&lt;/a&gt;. I know that you are sitting on really good stuff out there.&lt;/p&gt;  &lt;p&gt;If you have similar or better implementations that the ones already there, please feel free to show me a better implementation. Let's make this first class.&lt;/p&gt;  &lt;p&gt;You can also get &lt;a href="http://spexlib.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;the source&lt;/a&gt; and check it out and borrow some methods if you like. &lt;a href="http://spexlib.codeplex.com/license"&gt;SPExLib is licensed under Ms-PL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wZc6-gKW_V3Pb2v9BO7CHGGxMlI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wZc6-gKW_V3Pb2v9BO7CHGGxMlI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wZc6-gKW_V3Pb2v9BO7CHGGxMlI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wZc6-gKW_V3Pb2v9BO7CHGGxMlI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=l_56FoQY3us:34N8aq2pSxo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=l_56FoQY3us:34N8aq2pSxo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=l_56FoQY3us:34N8aq2pSxo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=l_56FoQY3us:34N8aq2pSxo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=l_56FoQY3us:34N8aq2pSxo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=l_56FoQY3us:34N8aq2pSxo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=l_56FoQY3us:34N8aq2pSxo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=l_56FoQY3us:34N8aq2pSxo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/l_56FoQY3us" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-21 01:40:43Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-21 01:40:43Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=482</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Introducing-SharePoint-Extensions-Lib.aspx</feedburner:origLink></item><item><title>Virtualizing XP applications using Windows 7</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/6-PvF9ToCx8/Virtualizing-XP-applications-using-Windows-7.aspx</link><category>Visual Studio</category><category>Windows XP</category><category>Windows 7</category><category>Virtual PC</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Thu, 14 May 2009 18:53:33 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Virtualizing-XP-applications-using-Windows-7.aspx</guid><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/windows/windows-7/default.aspx"&gt;Windows 7&lt;/a&gt; has an upgrade to &lt;a href="http://www.microsoft.com/windows/virtual-pc/download.aspx"&gt;Virtual PC&lt;/a&gt; which allows you to run Windows XP applications virtualized on your Windows 7, without having to run the whole desktop running.&lt;/p&gt;  &lt;p&gt;I still have to use Visual Studio 2003 to support some old good applications including &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; 2003 apps. So I have used a Windows XP virtual machine to run it, but now I can fire up Visual Studio 2003 directly from my Start menu in Windows 7. As most of you know, you can't install VS2003 on a Vista or Windows 7 machine, and I don't even want it there either.&lt;/p&gt;  &lt;p&gt;It's also great for having Internet Explorer 6, 7 and 8 on the same machine!&lt;/p&gt;  &lt;p&gt;Here are some pictures of the Windows XP Mode features.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/VirtualizingXPapplicationsusingWindows7_9A89/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Visual Studio 2003 running on Windows 7 using Windows XP mode" border="0" alt="Visual Studio 2003 running on Windows 7 using Windows XP mode" src="http://www.wictorwilen.se/WindowsLiveWriter/VirtualizingXPapplicationsusingWindows7_9A89/image_thumb_2.png" width="244" height="224" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Visual Studio 2003 running on Windows 7 using Windows XP mode&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/VirtualizingXPapplicationsusingWindows7_9A89/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Published XP Mode apps" border="0" alt="Published XP Mode apps" src="http://www.wictorwilen.se/WindowsLiveWriter/VirtualizingXPapplicationsusingWindows7_9A89/image_thumb.png" width="168" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The published Windows XP applications in the Windows 7 start menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/VirtualizingXPapplicationsusingWindows7_9A89/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.wictorwilen.se/WindowsLiveWriter/VirtualizingXPapplicationsusingWindows7_9A89/image_thumb_1.png" width="186" height="241" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The Windows XP notification icons appear in the Windows 7 notification area. Note  the Windows Update and Windows Security Alert icons. I thought this was really cool.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9_p9nEeU5Ni_XUXgfwJa-_kHkww/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9_p9nEeU5Ni_XUXgfwJa-_kHkww/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9_p9nEeU5Ni_XUXgfwJa-_kHkww/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9_p9nEeU5Ni_XUXgfwJa-_kHkww/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=6-PvF9ToCx8:nJhbxnONIFY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=6-PvF9ToCx8:nJhbxnONIFY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=6-PvF9ToCx8:nJhbxnONIFY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=6-PvF9ToCx8:nJhbxnONIFY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=6-PvF9ToCx8:nJhbxnONIFY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=6-PvF9ToCx8:nJhbxnONIFY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=6-PvF9ToCx8:nJhbxnONIFY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=6-PvF9ToCx8:nJhbxnONIFY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/6-PvF9ToCx8" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-15 01:53:33Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-15 01:53:33Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=481</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Virtualizing-XP-applications-using-Windows-7.aspx</feedburner:origLink></item><item><title>Prohibit your users from selecting No Quota when creating Site Collections</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/dfxX7gHNZHo/Prohibit-your-users-from-selecting-No-Quota-when-creating-Site-Collections.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Thu, 14 May 2009 06:26:07 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Prohibit-your-users-from-selecting-No-Quota-when-creating-Site-Collections.aspx</guid><description>&lt;p&gt;I've been annoyed for some time at that you cannot prohibit your users from selecting "No Quota" when creating Site Collections. Yes, you can set a default to use but the "No Quota" option is still there. Most probably you have some governance plan or similar that says that you should set quotas when creating Site Collections, but you know that sometimes you forget or somebody doesn't even care or know what setting No Quota implies.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ProhibityourusersfromselectingNoQuotawhe_13D00/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="No Quota when creating a Site Collection" border="0" alt="No Quota when creating a Site Collection" src="http://www.wictorwilen.se/WindowsLiveWriter/ProhibityourusersfromselectingNoQuotawhe_13D00/image_thumb.png" width="327" height="103" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Create a feature that removes the No Quota option&lt;/h3&gt;  &lt;p&gt;But, hey - I love to write code and I was sure that you could get around it in someway. First option I thought of was creating a custom &lt;em&gt;Create Site Collection&lt;/em&gt; page (_admin/createsite.aspx), but that's not so beautiful right? But &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; has some nifty constructs that allow you to insert custom controls in most pages, called &lt;a href="http://msdn.microsoft.com/en-us/library/bb861966.aspx"&gt;Delegate Controls&lt;/a&gt;. The create site collection page has one of those, so I wrote up a small control that uses the delegate control called &lt;em&gt;CreateSiteCollectionPanel1&lt;/em&gt; in the page I deployed to the farm.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ProhibityourusersfromselectingNoQuotawhe_13D00/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="No Quota removed" border="0" alt="No Quota removed" src="http://www.wictorwilen.se/WindowsLiveWriter/ProhibityourusersfromselectingNoQuotawhe_13D00/image_thumb_1.png" width="323" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The code is pretty straight-forward; find the Drop-down list and then remove the "No Quota" option.&lt;/p&gt;  &lt;h4&gt;&lt;/h4&gt;  &lt;h4&gt;Code for the Delegate control:&lt;/h4&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnPreRender(EventArgs e) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     Control c = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Parent;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (c != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;         c = c.Parent;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (c != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;             c = c.Controls[23];&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (c != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;                 c = c.Controls[4];&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (c != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;                     DropDownList ddl = c.Controls[1] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; DropDownList;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;                     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ddl != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ddl.Items[0].Text == &lt;span style="color: #006080"&gt;"No Quota"&lt;/span&gt;) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;                             ddl.Items.RemoveAt(0);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;                         }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;                     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;                 }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h4&gt;Code to add the Delegate control:&lt;/h4&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #800000"&gt;xml&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="utf-8"&lt;/span&gt; ?&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Elements&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Control&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="CreateSiteCollectionPanel1"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;          &lt;span style="color: #ff0000"&gt;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;          &lt;span style="color: #ff0000"&gt;ControlAssembly&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="NoQuotaLockDown, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d4d7ec0041af2eda"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;          &lt;span style="color: #ff0000"&gt;ControlClass&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="NoQuotaLockDown.NoQuotaLockDownDelCtrl"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Download it!&lt;/h3&gt;

&lt;p&gt;You can download the full solution package here &lt;a href="http://www.wictorwilen.se/files/NoQuotaLockDown.wsp"&gt;NoQuotaLockDown.wsp&lt;/a&gt; or the source. &lt;a href="http://www.wictorwilen.se/files/NoQuotaLockDownSrc.zip"&gt;NoQuotaLockDownSrc.zip&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;WSS vs MOSS&lt;/h3&gt;

&lt;p&gt;This solution works perfect on a Windows SharePoint Services 3.0 farm, but should not be used as-is on a &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; Office SharePoint Server 2007 farm. MOSS already uses this delegate control in the &lt;em&gt;SharePoint Portal Server Master Site Directory Capture Control&lt;/em&gt; feature. This feature uses sequence 100, so you can easily create a derivative of the MOSS feature and implement the No Quota removal. Another option is to change the delegate control behavior of the create site collection page and allow the delegate control to allow more than one delegate control.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f-_amRstY_vN_PLm68jbOqCEWVk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f-_amRstY_vN_PLm68jbOqCEWVk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f-_amRstY_vN_PLm68jbOqCEWVk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f-_amRstY_vN_PLm68jbOqCEWVk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dfxX7gHNZHo:4aDb2IRl4lQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dfxX7gHNZHo:4aDb2IRl4lQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=dfxX7gHNZHo:4aDb2IRl4lQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dfxX7gHNZHo:4aDb2IRl4lQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=dfxX7gHNZHo:4aDb2IRl4lQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dfxX7gHNZHo:4aDb2IRl4lQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dfxX7gHNZHo:4aDb2IRl4lQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=dfxX7gHNZHo:4aDb2IRl4lQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/dfxX7gHNZHo" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-14 13:26:07Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-14 13:26:07Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=479</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Prohibit-your-users-from-selecting-No-Quota-when-creating-Site-Collections.aspx</feedburner:origLink></item><item><title>Developers, prepare for the 64-bit revolution</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/EGjLGfuY0Rw/Developers-prepare-for-the-64bit-revolution.aspx</link><category>SharePoint</category><category>SQL Server</category><category>Virtual Server</category><category>Hardware</category><category>Windows 7</category><category>SharePoint 2010</category><category>Windows Server 2008</category><category>VMWare</category><category>Virtual PC</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Tue, 12 May 2009 03:54:29 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Developers-prepare-for-the-64bit-revolution.aspx</guid><description>&lt;p&gt;The day has come when &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; officially started to talk about the next version of Office 2010 clients and &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; Server 2010 (no longer Office SharePoint Server). We have since some time known that SharePoint 2010 will be supported only on a 64-bit platform, just as Exchange 2007. &lt;/p&gt;  &lt;p&gt;The &lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/05/07/announcing-sharepoint-server-2010-preliminary-system-requirements.aspx"&gt;new stuff revealed yesterday (as preliminary)&lt;/a&gt; are that not only is 64-bit required, it will only be supported on the Windows Server 2008 64-bit platform (including R2) and it will require that you have SQL Server 2008 on a 64-bit platform. There are some other interesting facts that you should check out also in the post (and on about 1.000 other blog posts), but this post is not just about these news.&lt;/p&gt;  &lt;p&gt;The interesting parts of this announcement is that now is the time to learn the 64-bit platform for real and especially Windows Server 2008 R2 and SQL Server 2008, not everything is the same; registry hives, file system, settings, know when to use &lt;strong&gt;int (Int32)&lt;/strong&gt; or &lt;strong&gt;Int64&lt;/strong&gt; etc etc. You can start now, it's no time to wait! Make a decision to only install your new SharePoint installations on the required SharePoint 2010 hardware, make sure that you have that in your development environments and on your virtual machines. Yes, it will in many cases cost you a bit in new hardware.&lt;/p&gt;  &lt;p&gt;I think that this is the time when 64-bit really will kill the 32-bit era.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;As a bonus I can tell you one thing that I didn't know was achievable. My main laptop runs 32-bit &lt;a href="http://www.microsoft.com/windows/windows-7/default.aspx"&gt;Windows 7&lt;/a&gt; and not 64-bit due to that it does not have the 64-bit driver support for the peripherals and I usually use(d) Virtual PC to virtualize my development servers. Downside with Virtual PC is that you guest machines can only be 32-bit and I don't want to have a Hyper-V laptop in 64-bit mode so I thought that I had to get me a new laptop (which is due for later). I was preparing for the worst of having a dual boot. Fortunately I did a test using VMWare Workstation today and found out that as long as you have a 64-bit capable hardware (which I have) you can host 64-bit guests on a 32-bit host OS. Did you know that, I did not! So I will spend this evening preparing my new development VM's. If you are in the same situation as me, stuck with a 32-bit OS for some time, head on over to &lt;a href="http://www.vmware.com/download/ws/drivers_tools.html"&gt;VMWare and run the 64-bit compatibility checker&lt;/a&gt; and then dump Virtual PC and get &lt;a href="http://www.vmware.com/download/download.do?downloadGroup=WKST-652-WIN"&gt;VMWare Workstation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Welcome to the 64-bit world!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jRzigGUsrvyLMKD0ABPzCKL7zlM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRzigGUsrvyLMKD0ABPzCKL7zlM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jRzigGUsrvyLMKD0ABPzCKL7zlM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRzigGUsrvyLMKD0ABPzCKL7zlM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EGjLGfuY0Rw:cfIvsWOI9oM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EGjLGfuY0Rw:cfIvsWOI9oM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=EGjLGfuY0Rw:cfIvsWOI9oM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EGjLGfuY0Rw:cfIvsWOI9oM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=EGjLGfuY0Rw:cfIvsWOI9oM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EGjLGfuY0Rw:cfIvsWOI9oM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=EGjLGfuY0Rw:cfIvsWOI9oM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=EGjLGfuY0Rw:cfIvsWOI9oM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/EGjLGfuY0Rw" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-12 10:54:29Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-12 10:54:29Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=478</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Developers-prepare-for-the-64bit-revolution.aspx</feedburner:origLink></item><item><title>ChartPart 2.0 for SharePoint video demonstration</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/E-ap3J_NEW4/ChartPart-for-SharePoint-20-video-demonstration.aspx</link><category>SharePoint</category><category>CodePlex</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Sun, 10 May 2009 07:20:59 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/ChartPart-for-SharePoint-20-video-demonstration.aspx</guid><description>&lt;p&gt;I just had to try out &lt;a href="http://communityclips.officelabs.com/"&gt;Community Clips&lt;/a&gt; from &lt;a href="http://www.officelabs.com/Pages/Default.aspx"&gt;Microsoft Office Labs&lt;/a&gt; and made a short video demonstrating the new version of &lt;a href="http://chartpart.codeplex.com/"&gt;ChartPart&lt;/a&gt; 2.0 for &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; . The video shows rendering and customization of the graph, how you connect the graph to a list and some of the 3D features.&lt;/p&gt;  &lt;p&gt;Community Clips is an awesome and simple video capture utility that from now on definitely will be a preferred tool in my toolbox.&lt;/p&gt;  &lt;p&gt;Enjoy...and if you like go ahead and download ChartPart 2.0 at &lt;a href="http://chartpart.codeplex.com"&gt;http://chartpart.codeplex.com&lt;/a&gt; (currently in beta).&lt;/p&gt; &lt;embed src="http://images.soapbox.msn.com/flash/soapbox1_1.swf" quality="high" width="432" height="364" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="c=v&amp;flvfc=10001&amp;v=858694ab-3391-4c53-ab61-5fa840423abc"&gt;&lt;/embed&gt;  &lt;p&gt;&lt;em&gt;Updated 2009-05-11: clarified that this is ChartPart &lt;strong&gt;2.0&lt;/strong&gt; for SharePoint (Services) &lt;strong&gt;3.0&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ANdpOog9Q2GOAk7n868qkVLymkU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ANdpOog9Q2GOAk7n868qkVLymkU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ANdpOog9Q2GOAk7n868qkVLymkU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ANdpOog9Q2GOAk7n868qkVLymkU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=E-ap3J_NEW4:rWcfinz-JXg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=E-ap3J_NEW4:rWcfinz-JXg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=E-ap3J_NEW4:rWcfinz-JXg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=E-ap3J_NEW4:rWcfinz-JXg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=E-ap3J_NEW4:rWcfinz-JXg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=E-ap3J_NEW4:rWcfinz-JXg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=E-ap3J_NEW4:rWcfinz-JXg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=E-ap3J_NEW4:rWcfinz-JXg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/E-ap3J_NEW4" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-10 14:20:59Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-10 14:20:59Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=477</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/ChartPart-for-SharePoint-20-video-demonstration.aspx</feedburner:origLink></item><item><title>Reinstalling SharePoint after a failed Language Pack install</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/JKHDakz42V8/Reinstalling-SharePoint-after-a-failed-Language-Pack-install.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Thu, 07 May 2009 23:54:21 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Reinstalling-SharePoint-after-a-failed-Language-Pack-install.aspx</guid><description>&lt;p&gt;After doing some experimental stuff (don't ask me what!) with my local (&lt;a href="http://www.microsoft.com/windows/windows-7/default.aspx"&gt;Windows 7&lt;/a&gt;) &lt;a href="http://www.microsoft.com/Sharepoint/default.mspx"&gt;SharePoint&lt;/a&gt; installation I uninstalled it completely and was going to install it from scratch once again I encountered a strange error. A dialog as below popped up:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ReinstallingSharePointafterafailedLangua_DC59/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="The product ID specified was not found on the machine." border="0" alt="The product ID specified was not found on the machine." src="http://www.wictorwilen.se/WindowsLiveWriter/ReinstallingSharePointafterafailedLangua_DC59/image_thumb.png" width="367" height="158" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;First I thought that SharePoint did not uninstall correctly and searched the registry as a maniac and found nothing. Then I checked the installation log files, which did not make things much clearer:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; Error: Server products do not support select UI Type: InvalidProductFromARP. &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; Showing parent-less message Title: &lt;span style="color: #006080"&gt;'Setup Error'&lt;/span&gt;, Message: &lt;span style="color: #006080"&gt;'The product ID specified was not found on the machine.'&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; Message returned: 1 &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; Error: Server products do not support select UI Type: InvalidProductFromARP. &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; Catalyst execution finished: 05/08/2009 14:52:39.  Return code: 30040.  Exception caught: InvalidProductFromARP. &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; PERF: TickCount=11319697 Name=RunSetup Description=End function&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;After some investigation I checked the folder that the setup program extracts the files to, which always have the same name and is not removed after the installation is done (*see more information below). It's located in &lt;strong&gt;c:\Users\&lt;em&gt;Profile&lt;/em&gt;\AppData\Local\xtracted\&lt;/strong&gt;. There I found some "leftovers" from the failed language pack, see image below. Folders such as &lt;em&gt;WSS.sv-se&lt;/em&gt; and &lt;em&gt;WSSLPK.sv-se&lt;/em&gt; is used during the installation and therefore checked when installing WSS. And since I have removed everything and have no WSS on the machine it fails when installing the language packs.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ReinstallingSharePointafterafailedLangua_DC59/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="xtracted" border="0" alt="xtracted" src="http://www.wictorwilen.se/WindowsLiveWriter/ReinstallingSharePointafterafailedLangua_DC59/image_thumb_1.png" width="254" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After removing the xtracted folder everything went smooth.&lt;/p&gt;

&lt;p&gt;This little adventure gave a good insight on how the SharePoint installer works and it's a smart one. &lt;/p&gt;

&lt;p&gt;* Worth to notice that all of this is experienced on Windows 7 RC using &lt;a href="http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx"&gt;WSSOnVista&lt;/a&gt;. So it might not be the same on a server installation, but I will for sure make sure that the extracted folder are removed before I reinstall SharePoint on any machines in the future. On Windows Server 2003 and Windows Server 2008 I have not seen any leftovers from the xtracted folder, but I have not verified it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Srpz1AU74CMPA5tf3aBzmj4P_bM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Srpz1AU74CMPA5tf3aBzmj4P_bM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Srpz1AU74CMPA5tf3aBzmj4P_bM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Srpz1AU74CMPA5tf3aBzmj4P_bM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=JKHDakz42V8:1sxN8HrFGN4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=JKHDakz42V8:1sxN8HrFGN4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=JKHDakz42V8:1sxN8HrFGN4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=JKHDakz42V8:1sxN8HrFGN4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=JKHDakz42V8:1sxN8HrFGN4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=JKHDakz42V8:1sxN8HrFGN4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=JKHDakz42V8:1sxN8HrFGN4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=JKHDakz42V8:1sxN8HrFGN4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/JKHDakz42V8" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-08 06:54:21Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-08 06:54:21Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=476</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Reinstalling-SharePoint-after-a-failed-Language-Pack-install.aspx</feedburner:origLink></item><item><title>Tip: Store your Codeplex passwords</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/qqNoG7X2WD8/Tip-Store-your-Codeplex-passwords.aspx</link><category>Visual Studio</category><category>Windows Vista</category><category>Windows 7</category><category>CodePlex</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Mon, 04 May 2009 07:13:42 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Tip-Store-your-Codeplex-passwords.aspx</guid><description>&lt;p&gt;Here is a tip for you &lt;a href="http://www.codeplex.com"&gt;Codeplex&lt;/a&gt; users out there.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/TipStoreyourCodeplexpasswords_147BC/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="TFS Connect dialog" border="0" alt="TFS Connect dialog" align="right" src="http://www.wictorwilen.se/WindowsLiveWriter/TipStoreyourCodeplexpasswords_147BC/image_thumb.png" width="244" height="195" /&gt;&lt;/a&gt; If you are using the Visual Studio and the Team Foundation source control then you are prompted for username and password every time you open up a project. This dialog does not contain any functionality to store the username and password. If you are often opening projects and/or switching projects entering usernames and passwords can get annoying.&lt;/p&gt;  &lt;p&gt;If you are using &lt;a href="http://www.microsoft.com/windows/windows-vista/default.aspx"&gt;Windows Vista&lt;/a&gt; or &lt;a href="http://www.microsoft.com/windows/windows-7/default.aspx"&gt;Windows 7&lt;/a&gt; you can store the usernames and passwords in a pretty secured way using the Credentials Manager.&lt;/p&gt;  &lt;p&gt;The Credentials Manager is found in the Control Panel, just search for it. To add a username and password all you have to do is click on &lt;em&gt;Add a Windows credential&lt;/em&gt; and then enter the name of the Codeplex TFS server (tfsXX.codeplex.com) and then you username and password. Click Ok and then fire up your Codeplex solution in Visual Studio and you are ready to get back to coding!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/TipStoreyourCodeplexpasswords_147BC/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Credentials Manager" border="0" alt="Credentials Manager" src="http://www.wictorwilen.se/WindowsLiveWriter/TipStoreyourCodeplexpasswords_147BC/image_thumb_1.png" width="572" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Until next time...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/P2J09-akcRvuxmob2NY9R2s0U88/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P2J09-akcRvuxmob2NY9R2s0U88/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/P2J09-akcRvuxmob2NY9R2s0U88/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P2J09-akcRvuxmob2NY9R2s0U88/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=qqNoG7X2WD8:4TlVxDtz8Nk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=qqNoG7X2WD8:4TlVxDtz8Nk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=qqNoG7X2WD8:4TlVxDtz8Nk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=qqNoG7X2WD8:4TlVxDtz8Nk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=qqNoG7X2WD8:4TlVxDtz8Nk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=qqNoG7X2WD8:4TlVxDtz8Nk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=qqNoG7X2WD8:4TlVxDtz8Nk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=qqNoG7X2WD8:4TlVxDtz8Nk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/qqNoG7X2WD8" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-05-04 14:13:42Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-04 14:13:42Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=475</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Tip-Store-your-Codeplex-passwords.aspx</feedburner:origLink></item><item><title>Say hello to SharePoint STSAdm preupgradecheck command</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/zt7p_v5MA3g/Say-hello-to-SharePoint-STSAdm-preupgradecheck-command.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Tue, 28 Apr 2009 04:00:40 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Say-hello-to-SharePoint-STSAdm-preupgradecheck-command.aspx</guid><description>&lt;p&gt;The &lt;a href="http://www.microsoft.com/presspass/features/2009/Apr09/04-28Office2007SP2QA.mspx"&gt;Office 2007 Service Pack 2&lt;/a&gt; are here and for the server products (WSS 3.0 and MOSS 2007) we have a new STSAdm command called; &lt;strong&gt;preupgradecheck&lt;/strong&gt;. This command allows you to check any WSS 3.0 SP2 based installation for potential issues that may prevent an upgrade to Windows &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; Services 4 (WSS 4.0) or SharePoint Server 2010. For full reference of the command check out &lt;a href="http://support.microsoft.com/kb/960577"&gt;KB960577&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The pre-upgrade check command uses a set of rules found in the 12\CONFIG\PreUpgradeCheck\WssPreUpgradeCheck.xml file to check your farm or you can use a custom file.&lt;/p&gt;  &lt;p&gt;This is how it looks like on a WSS 3.0 SP2 machine when run:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SayhellotoSharePointSTSAdmpreupgradechec_10A0E/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="preupgradecheck" border="0" alt="preupgradecheck" src="http://www.wictorwilen.se/WindowsLiveWriter/SayhellotoSharePointSTSAdmpreupgradechec_10A0E/image_thumb.png" width="404" height="204" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You will see a summary of all steps while it checks your installation for a few minutes, and when done you can open the HTML log file to dig deeper into your potential problems. There are three categories:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#008000"&gt;Passed (in green)&lt;/font&gt; - This is when everything looks fine&lt;/li&gt;    &lt;li&gt;&lt;font color="#a6a600"&gt;Information Only (in yellow)&lt;/font&gt; - You have to check the log file for more information. The log file may have references to KB articles that you have to read to fully understand what to do to make the upgrade smooth. All manual upgrades are noted here, such as customized fields, CAML views (which are replaced with the new XSLT-based views), custom site definitions (will require a special Upgrade Definition file) etc etc&lt;/li&gt;    &lt;li&gt;&lt;font color="#ff0000"&gt;Failed (in red)&lt;/font&gt; - This is when there are something that really prevents you from upgrading, read the log file to get the exact reason.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The sample image above contains two failed steps; one is about referenced features that are missing, which needs to be installed to perform an update. The second one is about the OS prerequisites, this sample is taken from a 32-bit Windows 7 which obviously is not a correct machine since only Windows Server 2008 x64 is supported on the next version of SharePoint.&lt;/p&gt;  &lt;p&gt;It’s well worth running this command on all your installations even though you don’t plan any upgrade right now. The articles contains a great deal of information on how you can make sure that you finally can upgrade your installation smoothly. All articles does not seem to be available yet though…&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KAVrg4FixeHI_z4k2VQ0HtU3rtE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KAVrg4FixeHI_z4k2VQ0HtU3rtE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KAVrg4FixeHI_z4k2VQ0HtU3rtE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KAVrg4FixeHI_z4k2VQ0HtU3rtE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=zt7p_v5MA3g:TcRq8wXZBBw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=zt7p_v5MA3g:TcRq8wXZBBw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=zt7p_v5MA3g:TcRq8wXZBBw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=zt7p_v5MA3g:TcRq8wXZBBw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=zt7p_v5MA3g:TcRq8wXZBBw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=zt7p_v5MA3g:TcRq8wXZBBw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=zt7p_v5MA3g:TcRq8wXZBBw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=zt7p_v5MA3g:TcRq8wXZBBw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/zt7p_v5MA3g" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-28 11:00:40Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-28 11:00:40Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=473</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Say-hello-to-SharePoint-STSAdm-preupgradecheck-command.aspx</feedburner:origLink></item><item><title>Announcing Windows Live ID Authentication for SharePoint</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/ZdvgOX-8kQc/Announcing-Windows-Live-ID-Authentication-for-SharePoint.aspx</link><category>SharePoint</category><category>LiveID</category><category>CodePlex</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Mon, 27 Apr 2009 06:40:19 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Announcing-Windows-Live-ID-Authentication-for-SharePoint.aspx</guid><description>&lt;p&gt;I’m glad to announce that from now on you can find my project &lt;em&gt;Windows Live ID Authentication for &lt;/em&gt;&lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;&lt;em&gt;SharePoint&lt;/em&gt;&lt;/a&gt; on &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.passport.net/"&gt;Windows Live ID&lt;/a&gt; Authentication for SharePoint is a project that has been developed for some time for the upcoming &lt;a href="http://www.sharepointcommunity.se/"&gt;Swedish SharePoint Community Site&lt;/a&gt;, which will be an awesome site with some really cool features of which this is one.&lt;/p&gt;  &lt;p&gt;I have previously tried some of the available Windows Live ID providers for SharePoint that are out there on the market and the best (previously) one is the provider from the &lt;a href="http://cks.codeplex.com/"&gt;Community Kit for SharePoint&lt;/a&gt;, originally developed by &lt;a href="http://blog.solanite.com/keith/default.aspx"&gt;Keith Bunge&lt;/a&gt;. It has a great basic application design, but had some things that annoyed me and some things I wanted to change, therefore I created my own version, with the CKS version in mind, which I hope that you find useful. &lt;/p&gt;  &lt;p&gt;There are a lot of features in the provider and I have some even greater plans…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;All configuration done through the SharePoint web interface; Central Administration or in the sites &lt;/li&gt;    &lt;li&gt;Forces users to register once registered &lt;/li&gt;    &lt;li&gt;Profile information that is more &lt;em&gt;community-like&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;Profile images &lt;/li&gt;    &lt;li&gt;Web Parts for displaying last logged in, last registered and all users. &lt;/li&gt;    &lt;li&gt;Users can be locked &lt;/li&gt;    &lt;li&gt;Approval of users can be turned on &lt;/li&gt;    &lt;li&gt;Profile changes can be published to announcement lists &lt;/li&gt;    &lt;li&gt;Four predefined roles for permissions management &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;You can download it now from &lt;a href="http://spwla.codeplex.com/"&gt;&lt;strong&gt;http://spwla.codeplex.com/&lt;/strong&gt;&lt;/a&gt;, you will also find a document with installation and configuration instructions. There are a few known bugs on which I work on, but if you can spot them or others, please report an &lt;a href="http://spwla.codeplex.com/WorkItem/List.aspx"&gt;Issue on the CodePlex&lt;/a&gt; and if you have any suggestions I really like to hear them.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In upcoming posts I will dig into some of the features a little bit more, but until then here are some screenshots.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="600"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Configuration in Central Administration " border="0" alt="Configuration in Central Administration " src="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_thumb.png" width="154" height="119" /&gt;&lt;/a&gt;           &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Logged in users menu" border="0" alt="Logged in users menu" src="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_thumb_1.png" width="154" height="144" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Configuration of the Live ID enabled Web Application" border="0" alt="Configuration of the Live ID enabled Web Application" src="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_thumb_2.png" width="204" height="56" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Configuration in Central Administration &lt;/td&gt;        &lt;td valign="top" width="200"&gt;Logged in users menu&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Configuration of the Live ID enabled Web Application&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Last logged in members web part" border="0" alt="Last logged in members web part" src="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_thumb_3.png" width="204" height="169" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Edit personal profile" border="0" alt="Edit personal profile" src="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_thumb_4.png" width="204" height="146" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Built-in Live roles" border="0" alt="Built-in Live roles" src="http://www.wictorwilen.se/WindowsLiveWriter/AnnouncingWindowsLiveIDAuthenticationfor_13934/image_thumb_5.png" width="204" height="72" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Last logged in members web part&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Edit personal profile&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Built-in Live roles&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Yq5-HwBOcandpVJNX5WTDjAVF08/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Yq5-HwBOcandpVJNX5WTDjAVF08/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Yq5-HwBOcandpVJNX5WTDjAVF08/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Yq5-HwBOcandpVJNX5WTDjAVF08/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=ZdvgOX-8kQc:wBR5M9G_XMM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=ZdvgOX-8kQc:wBR5M9G_XMM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=ZdvgOX-8kQc:wBR5M9G_XMM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=ZdvgOX-8kQc:wBR5M9G_XMM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=ZdvgOX-8kQc:wBR5M9G_XMM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=ZdvgOX-8kQc:wBR5M9G_XMM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=ZdvgOX-8kQc:wBR5M9G_XMM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=ZdvgOX-8kQc:wBR5M9G_XMM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/ZdvgOX-8kQc" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-27 13:40:19Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-27 13:40:19Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=472</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Announcing-Windows-Live-ID-Authentication-for-SharePoint.aspx</feedburner:origLink></item><item><title>SharePoint Virtualization Survey - preliminary results</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/pbubIBZXL_4/SharePoint-Virtualization-Survey-preliminary-results.aspx</link><category>SharePoint</category><category>Virtual Server</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Wed, 22 Apr 2009 23:33:55 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Virtualization-Survey-preliminary-results.aspx</guid><description>&lt;p&gt;A few days ago I posted a small survey that asks a couple of questions on how you virtualize your &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; environments. I will keep the survey open for a couple of more days to get some more results (compared to the number of readers of this blog and number of Twitter followers - the response is really bad…)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.surveymonkey.com/s.aspx?sm=4O3cgzluYFdVdVDNnCB2kg_3d_3d"&gt;Click Here to take survey&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Anyways I thought that I should put up some preliminary results.&lt;/p&gt;  &lt;h3&gt;What virtualization technologies do you use if you virtualize your SharePoint installations&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt; Hyper-V and VMWare ESX Server are the most popular virtualization technologies to use. Microsoft Virtual-PC is also very popular, but probably not in production environments :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveypreliminar_9FE2/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2. What virtualization technologies do you use if you virtualize your SharePoint installations" border="0" alt="2. What virtualization technologies do you use if you virtualize your SharePoint installations" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveypreliminar_9FE2/image_thumb_1.png" width="364" height="283" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;What environments are you virtualizing?&lt;/h3&gt;  &lt;p&gt;Development is the most popular environment to virtualize, not that unexpected. 51,5% virtualizes their production environment.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveypreliminar_9FE2/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="What environments are you virtualizing?" border="0" alt="What environments are you virtualizing?" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveypreliminar_9FE2/image_thumb_2.png" width="354" height="198" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;What roles are virtualized?&lt;/h3&gt;  &lt;p&gt;Almost everyone virtualizes their web front ends and also recommends them for virtualization. The database role is virtualized by 37,5% and 72,5% does not recommend virtualizing the database role. 50% of the responses does not recommend virtualizing the Index role.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveypreliminar_9FE2/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="What roles are virtualized?" border="0" alt="What roles are virtualized?" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointVirtualizationSurveypreliminar_9FE2/image_thumb_4.png" width="354" height="220" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Why virtualizing?&lt;/h3&gt;  &lt;p&gt;Why are we virtualizing SharePoint? Almost everyone agrees on that the hardware costs are lower, but the license cost is the same or even higher. Very few users agrees on that the performance is better, but instead the scalability and redundancy is improved.&lt;/p&gt;  &lt;p&gt;That development is easier with virtualization is no doubt about (we don’t even need a survey for this…).&lt;/p&gt;  &lt;p&gt;I’m also glad that at least 2/3 of the responses agrees on that this is good for the environment.&lt;/p&gt;  &lt;p&gt;This was a short preliminary result of the survey, I will run it for a few more weeks, so please pass the survey forward to your friends and colleagues.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.surveymonkey.com/s.aspx?sm=4O3cgzluYFdVdVDNnCB2kg_3d_3d"&gt;Click Here to take survey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5BGMIV2LhRUKBLyAZQidzJJhJuI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5BGMIV2LhRUKBLyAZQidzJJhJuI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5BGMIV2LhRUKBLyAZQidzJJhJuI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5BGMIV2LhRUKBLyAZQidzJJhJuI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=pbubIBZXL_4:pddJ4U6MVrw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=pbubIBZXL_4:pddJ4U6MVrw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=pbubIBZXL_4:pddJ4U6MVrw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=pbubIBZXL_4:pddJ4U6MVrw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=pbubIBZXL_4:pddJ4U6MVrw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=pbubIBZXL_4:pddJ4U6MVrw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=pbubIBZXL_4:pddJ4U6MVrw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=pbubIBZXL_4:pddJ4U6MVrw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/pbubIBZXL_4" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-23 06:33:55Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-23 06:33:55Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=471</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Virtualization-Survey-preliminary-results.aspx</feedburner:origLink></item><item><title>SharePoint Virtualization Survey</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/tEvg-KDaKYM/SharePoint-Virtualization-Survey.aspx</link><category>SharePoint</category><category>Virtual Server</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Mon, 20 Apr 2009 18:51:03 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Virtualization-Survey.aspx</guid><description>&lt;p&gt;Virtualization is a really hot technology right now, and forward and so are &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt;. I’ve been discussing SharePoint virtualization internally and externally for sometime now and I have my opinions. In order to get a broader view on how SharePoint is virtualized around the globe I put together a small survey that will enlighten this subject.&lt;/p&gt;  &lt;p&gt;I would like you to fill out the survey and forward it to your colleagues, partners, clients, friends and better halves.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.surveymonkey.com/s.aspx?sm=4O3cgzluYFdVdVDNnCB2kg_3d_3d"&gt;Click Here to take survey&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I will once I get enough answers post them here in full and as well do my analysis of them.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jQveDbW7qSRDQ0i4kEdhzdiI-1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jQveDbW7qSRDQ0i4kEdhzdiI-1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jQveDbW7qSRDQ0i4kEdhzdiI-1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jQveDbW7qSRDQ0i4kEdhzdiI-1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=tEvg-KDaKYM:j4W9MXulhMs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=tEvg-KDaKYM:j4W9MXulhMs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=tEvg-KDaKYM:j4W9MXulhMs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=tEvg-KDaKYM:j4W9MXulhMs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=tEvg-KDaKYM:j4W9MXulhMs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=tEvg-KDaKYM:j4W9MXulhMs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=tEvg-KDaKYM:j4W9MXulhMs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=tEvg-KDaKYM:j4W9MXulhMs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/tEvg-KDaKYM" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-21 01:51:03Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-21 01:51:03Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=470</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Virtualization-Survey.aspx</feedburner:origLink></item><item><title>Update to the Custom code with SharePoint Online and Windows Azure, due to bug in SharePoint Online</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/2UkwvhK5y18/Update-to-the-Custom-code-with-SharePoint-Online-and-Windows-Azure-due-to-bug-in-SharePoint-Online.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Fri, 17 Apr 2009 07:00:57 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Update-to-the-Custom-code-with-SharePoint-Online-and-Windows-Azure-due-to-bug-in-SharePoint-Online.aspx</guid><description>&lt;p&gt;A few weeks back I wrote a post on how to mix &lt;a href="http://www.microsoft.com/azure/windowsazure.mspx"&gt;Windows Azure&lt;/a&gt; and &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; Online called &lt;a href="http://www.wictorwilen.se/Post/Custom-code-with-SharePoint-Online-and-Windows-Azure.aspx"&gt;Custom code with SharePoint Online and Windows Azure&lt;/a&gt;. Since then both Windows Azure and SharePoint online have had some updates.&lt;/p&gt;  &lt;p&gt;First of all you no longer need to create the bindings in the code to make it fully trusted. Good to know but it does not affect the solution.&lt;/p&gt;  &lt;h3&gt;A Bug in SharePoint Online Web Services&lt;/h3&gt;  &lt;p&gt;More important is the fact that you cannot longer use the Visual Studio Add Service Reference function and add the services from your SharePoint Online site to your solution. You will end up with an error like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Add Service Reference Error" border="0" alt="Add Service Reference Error" src="http://www.wictorwilen.se/WindowsLiveWriter/ProblemaddingreferencestoSharePointOnlin_1242B/image_3.png" width="462" height="288" /&gt; &lt;/p&gt;  &lt;p&gt;It says that it cannot recognize the document format of the &lt;strong&gt;Lists.asmx?WSDL&lt;/strong&gt; and&lt;strong&gt; Lists.asmx?disco&lt;/strong&gt; documents. Why? &lt;/p&gt;  &lt;p&gt;If you open up the Lists web service in a browser you get the standard auto generated ASMX page:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Lists.asmx" border="0" alt="Lists.asmx" src="http://www.wictorwilen.se/WindowsLiveWriter/ProblemaddingreferencestoSharePointOnlin_1242B/image_6.png" width="630" height="170" /&gt; &lt;/p&gt;  &lt;p&gt;From this page you can check out all the web service operations, but when you click on the Service Description link, which would take you to the &lt;strong&gt;/_vti_bin/Lists.asmx?WSDL&lt;/strong&gt; page, which contains the definitions of the web service and it’s operations you get an error. The same errors that Visual Studio gets.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ProblemaddingreferencestoSharePointOnlin_1242B/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Lists.asmx?WSDL Fail!" border="0" alt="Lists.asmx?WSDL Fail!" src="http://www.wictorwilen.se/WindowsLiveWriter/ProblemaddingreferencestoSharePointOnlin_1242B/image_thumb_2.png" width="624" height="128" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This page should contain XML and look like this (taken from a normal WSS 3.0 installation):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ProblemaddingreferencestoSharePointOnlin_1242B/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Lists.asmx?WSDL working!" border="0" alt="Lists.asmx?WSDL working!" src="http://www.wictorwilen.se/WindowsLiveWriter/ProblemaddingreferencestoSharePointOnlin_1242B/image_thumb_3.png" width="624" height="260" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So what is happening in SharePoint Online!? If you take a look at the source of the faulty WSDL page you will see an error message saying something like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The requested page does not contain a link to the Microsoft Online Services Privacy Statement. The page cannot be displayed until a link to the Privacy Statement is added. Please notify your SharePoint site administrator.      &lt;br /&gt;Only the site administrator or site owner can add the Privacy Statement. For information on adding the statement, see: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=136463&amp;clcid=0x409"&gt;Add the Privacy Statement to your SharePoint Online Site&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This error message is shown on all ASPX pages in SharePoint Online that does not contain a link to the &lt;a href="http://www.microsoft.com/online/legal/mos_privacy_statement_highlights.htm"&gt;Microsoft Online Services Privacy Statement&lt;/a&gt;, which is a requirement in SharePoint Online. The &lt;a href="http://www.microsoft.com/online/help/en-us/bpos/index.html?page=html%2F73de6bbf-dadd-48dc-b2e6-01c7724e9d7f.htm"&gt;link&lt;/a&gt; in the error message tells you how to include this message in your custom ASPX pages. &lt;/p&gt;  &lt;p&gt;But, we just looked at a ASMX page, I can’t have statements like this in my web services!? &lt;/p&gt;  &lt;p&gt;Let’s dig a little bit deeper into the SharePoint 12-folder. In the ISAPI folder you have the Lists.asmx file, as well as a &lt;strong&gt;Listsdisco.aspx&lt;/strong&gt; and a &lt;strong&gt;Listswsdl.aspx&lt;/strong&gt; file. Normally in ASP.NET when you create your own ASMX file the WSDL and DISCO will be created automatically but SharePoint silently uses these other two files, instead of creating them at runtime. Because these two files are ASPX files you need to have that Privacy Statement.&lt;/p&gt;  &lt;p&gt;This is in my opinion a real bug in SharePoint Online, and should be corrected as soon as possible.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;How to work around the bug?&lt;/h3&gt;  &lt;p&gt;It’s pretty easy to work around this bug. All you have to do is when adding the service reference is to get the web service from a normal SharePoint installation (WSS or MOSS) and then in your service binding point to your SharePoint Online address.&lt;/p&gt;  &lt;p&gt;I hope that the &lt;a href="http://www.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt; Online team come up with a solution to this problem as soon as possible, since it will cause headache for a lot of developers.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1yaGD5q9sLTAiZ-QAuCjJ29jfgs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1yaGD5q9sLTAiZ-QAuCjJ29jfgs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1yaGD5q9sLTAiZ-QAuCjJ29jfgs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1yaGD5q9sLTAiZ-QAuCjJ29jfgs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=2UkwvhK5y18:3jD5_emss20:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=2UkwvhK5y18:3jD5_emss20:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=2UkwvhK5y18:3jD5_emss20:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=2UkwvhK5y18:3jD5_emss20:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=2UkwvhK5y18:3jD5_emss20:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=2UkwvhK5y18:3jD5_emss20:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=2UkwvhK5y18:3jD5_emss20:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=2UkwvhK5y18:3jD5_emss20:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/2UkwvhK5y18" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-17 14:00:57Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-17 14:00:57Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">10</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=469</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Update-to-the-Custom-code-with-SharePoint-Online-and-Windows-Azure-due-to-bug-in-SharePoint-Online.aspx</feedburner:origLink></item><item><title>5 files you should know in the SharePoint 12-hive</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/g6hCNxPFscs/5-files-you-should-know-in-the-SharePoint-12hive.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Wed, 08 Apr 2009 18:46:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/5-files-you-should-know-in-the-SharePoint-12hive.aspx</guid><description>&lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://officeimages.microsoft.com/i/0000/MB/j0437/j0437054.gif" width="100" height="100" /&gt;The &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; 12-hive contains by default a number of interesting files that every developer should be aware of. The more you know the better you understand the inside of SharePoint and it allows you to create more efficient and better solutions.&lt;/p&gt;  &lt;p&gt;Here are my top five favorite files:&lt;/p&gt;  &lt;h3&gt;ctypeswss.xml (in TEMPLATE\FEATURES\ctypes)&lt;/h3&gt;  &lt;p&gt;This is the feature elements file for all the default WSS Content Types. When creating new content types, most often I find it useful to derive them from existing content types. For example if I need to create a content type that derives from the standard content type Task, i can easily get the content type ID, which is used when creating new content type IDs, and what Site Columns that content type has.&lt;/p&gt;  &lt;h3&gt;fieldwss.xml (in TEMPLATE\FEATURES\fields)&lt;/h3&gt;  &lt;p&gt;Second favorite is the elements file for the WSS Site Columns feature. In this file all definitions for the default WSS Site Columns is found. Together with ctypeswss.xml this is really handy when creating custom content types. By finding out the ID’s of the Site Columns you can easily re-use the site columns when creating content types.&lt;/p&gt;  &lt;h3&gt;Custom List schema.xml in (TEMPLATE\FEATURES\CustomList\CustList)&lt;/h3&gt;  &lt;p&gt;Whenever I need to create a list definition and need to create a schema.xml I use the schema.xml for the Custom List feature and copy it to my definition.&lt;/p&gt;  &lt;h3&gt;STS onet.xml in (TEMPLATE\SiteTemplates\STS\Xml)&lt;/h3&gt;  &lt;p&gt;This is the file to check out when creating Site Definitions. The onet.xml file contains all Site Definitions (althought the folder is called SiteTemplates), which includes navigation, lists etc. Most often I copy this file (and all other files in the STS folder) and remove almost everything except the the blank site def.&lt;/p&gt;  &lt;h3&gt;DOCICON.xml (in TEMPLATE\XML)&lt;/h3&gt;  &lt;p&gt;Perhaps not that interesting that the four above, but on nearly all installations you update this file with the PDF icon (at least). What this file does it that it allows you to map an extension (or ProgID) to an icon and optionally specify an editor.&lt;/p&gt;  &lt;p&gt;What’s your favorite ones?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QhhjBjTqH2DBrOXhZ_OTz-bhMwQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QhhjBjTqH2DBrOXhZ_OTz-bhMwQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QhhjBjTqH2DBrOXhZ_OTz-bhMwQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QhhjBjTqH2DBrOXhZ_OTz-bhMwQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=g6hCNxPFscs:quj0v_-PAqw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=g6hCNxPFscs:quj0v_-PAqw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=g6hCNxPFscs:quj0v_-PAqw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=g6hCNxPFscs:quj0v_-PAqw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=g6hCNxPFscs:quj0v_-PAqw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=g6hCNxPFscs:quj0v_-PAqw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=g6hCNxPFscs:quj0v_-PAqw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=g6hCNxPFscs:quj0v_-PAqw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/g6hCNxPFscs" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-09 01:46:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-09 01:46:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">10</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=468</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/5-files-you-should-know-in-the-SharePoint-12hive.aspx</feedburner:origLink></item><item><title>SharePoint Designer is now free</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/M6xs5Yw5rJc/SharePoint-Designer-is-now-free.aspx</link><category>Microsoft Expression</category><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Wed, 01 Apr 2009 18:10:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Designer-is-now-free.aspx</guid><description>&lt;p&gt;&lt;a href="http://office.microsoft.com/en-us/sharepointdesigner/FX100487631033.aspx"&gt;SharePoint Designer&lt;/a&gt; is now a free tool and &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=BAA3AD86-BFC1-4BD4-9812-D9E710D44F42&amp;displaylang=en"&gt;available for download&lt;/a&gt;. &lt;/p&gt;  &lt;h3&gt;What does this mean really? &lt;/h3&gt;  &lt;p&gt;Anybody can download it and customize their SharePoint installations which is good in some ways, but really bad in others. If the users are not aware of what they are doing they can cause severe damage to your SharePoint, but it can also make really nice enhancements to their installation. &lt;/p&gt;  &lt;p&gt;There are a lot of nice things you can do with SPD in your sites that you can’t do using the web interface. The web interface on the other side protects you pretty good from doing some mistakes that even the best can do once in a while, like dragging a file or folder to the wrong place. Of course all of this has been possible to do before with SPD, it’s not a new product, but suddenly you can expect a number of new and &lt;u&gt;untrained&lt;/u&gt; end-users fire up the SharePoint Designer and customizing in ways you never prepared your installations for.&lt;/p&gt;  &lt;h3&gt;What should you do?&lt;/h3&gt;  &lt;p&gt;First of all make sure that you have the permissions correctly set up in your SharePoint environment and make sure that you have good (and working) backup and restore plans.&lt;/p&gt;  &lt;p&gt;Secondly restrict the usage of SharePoint Designer by locking it down. Read &lt;a href="http://blogs.msdn.com/sharepointdesigner/archive/2008/11/25/locking-down-sharepoint-designer.aspx"&gt;this article from the SPD team&lt;/a&gt; on how to do it.&lt;/p&gt;  &lt;p&gt;Then you should of course train them in SharePoint Designer and explain the pros and cons. &lt;a href="http://www.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt; has a step-by-step training guide that can be &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=5B10F061-41D4-48CE-85CB-01D46772240D&amp;displaylang=en"&gt;downloaded&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;What if I already purchased it?&lt;/h3&gt;  &lt;p&gt;If you have purchased SharePoint Designer 2007 and have Software Assurance coverage then you are eligible for &lt;a href="http://www.microsoft.com/expression/products/overview.aspx?key=web"&gt;Expression Web 2&lt;/a&gt;. Isn’t that sweet! Here are some more &lt;a href="http://ladylicensing.spaces.live.com/Blog/cns!87F95F1B5B21B01E!1568.entry"&gt;reading on the new SharePoint licensing&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;System requirements!?&lt;/h3&gt;  &lt;p&gt;If you take a look at the System Requirements for &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; Designer, you see that it only supports Windows Server 2003 and Windows XP!? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointDesignerisnowfree_8B55/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SharePoint Designer System Requirements" border="0" alt="SharePoint Designer System Requirements" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointDesignerisnowfree_8B55/image_thumb.png" width="604" height="179" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Mistake or not, I don’t know? If anyone does please comment below. But I’ve “never” had any problems with it on Windows Vista or Windows 7. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v1p-FdYaj_hmJAcoR2NJqrj3n2A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v1p-FdYaj_hmJAcoR2NJqrj3n2A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v1p-FdYaj_hmJAcoR2NJqrj3n2A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v1p-FdYaj_hmJAcoR2NJqrj3n2A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=M6xs5Yw5rJc:7n2MoRrMliM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=M6xs5Yw5rJc:7n2MoRrMliM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=M6xs5Yw5rJc:7n2MoRrMliM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=M6xs5Yw5rJc:7n2MoRrMliM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=M6xs5Yw5rJc:7n2MoRrMliM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=M6xs5Yw5rJc:7n2MoRrMliM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=M6xs5Yw5rJc:7n2MoRrMliM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=M6xs5Yw5rJc:7n2MoRrMliM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/M6xs5Yw5rJc" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-04-02 01:10:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-02 01:10:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=467</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Designer-is-now-free.aspx</feedburner:origLink></item><item><title>How to make Live Mesh conquer the world...</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/YFhL4-1hjRg/How-to-make-Live-Mesh-conquer-the-world.aspx</link><category>Microsoft</category><category>Microsoft Office</category><category>Internet and the Web</category><category>Windows Live</category><category>Live Mesh</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Sat, 28 Mar 2009 17:08:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/How-to-make-Live-Mesh-conquer-the-world.aspx</guid><description>&lt;p&gt;Today almost everyone have more than one computer; one at work, a few at home, a media center, a PC, a Mac etc, your family members, friends and colleagues have the same. One problem is that a lot of us need access to files on one machine when we are using one of the others. For example I want to access my images when I’m at work sometimes and I do not want to copy all of these images onto my work laptop, when I’m at home I want to have the same favorites and documents that I use at work and so on. Then I have another scenario, let’s say that I do not have any of my computers with me and I want to access one of my files, then I want to have some way to access the files using a standard browser - and why not have editing possibilities.&lt;/p&gt;  &lt;p&gt;There are several ways to accomplish this, but none (that I discovered) covers all of these scenarios. Today I use a mix of services from &lt;a href="http://www.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt; (there are other vendors with similar services, but none as good IMHO); &lt;a href="http://www.mesh.com"&gt;Live Mesh&lt;/a&gt;, &lt;a href="http://workspace.officelive.com/"&gt;Office Live Workspaces&lt;/a&gt;, Live &lt;a href="http://skydrive.live.com/"&gt;Skydrive&lt;/a&gt; and &lt;a href="http://sync.live.com/"&gt;Live Sync&lt;/a&gt;. Read my previous post which compares some of these features.&lt;/p&gt;  &lt;p&gt;Live Mesh synchronizes folders between my machines as well as keeps a copy of it in the cloud. Live Sync synchronizes between the machines only. Office Live Workspaces allows me to store, share and access Office documents, lists and calendars in the cloud. Skydrive is currently a backup repository in the cloud. This pretty much covers it all, but has a few problems:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I need to have several applications/services installed&lt;/li&gt;    &lt;li&gt;I need to go to different web sites to configure or access files&lt;/li&gt;    &lt;li&gt;They all use different storage mechanisms&lt;/li&gt;    &lt;li&gt;The synchronization (Mesh, Live Sync) always make a bi-directional synchronization&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Why not take these services and make one über-Mesh and add some additional features. Take the Live Mesh application and add this features then you would have a synchronization service that would take the world with storm.&lt;/p&gt;  &lt;p&gt;Modify Live Mesh in the following ways&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Merge the Skydrive storage with the Mesh storage - then we will go from 5Gb to 25Gb online storage&lt;/li&gt;    &lt;li&gt;Allow the Mesh folders to synchronize only between the computers and not the cloud, like Live Sync. I do not need all my files available in the cloud. For example I use Mesh to have some applications synched across my machines, &lt;a href="http://andrewconnell.com/blog/archive/2009/03/28/Get-hip-to-Meshhellip-it-rocks.aspx"&gt;just like Andrew Connell does&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Allow you to set how the files will be synchronized; one-way or bi-directional. For example I only want my images taken with my mobile phone to be copied to the mesh, not to synchronize all images with the phone. This should be a setting per device and folder&lt;/li&gt;    &lt;li&gt;Today in Live Mesh you can only add top-folders, it would be awesome if you could make your own folder structure and set the synchronization options per folder&lt;/li&gt;    &lt;li&gt;Integrate the Office Live Workspaces folders into the Live Mesh&lt;/li&gt;    &lt;li&gt;Integrate the upcoming Office Live Applications into the Live Mesh, the opportunity to edit my Office documents using a browser only would really rock&lt;/li&gt;    &lt;li&gt;Have a &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; based API to the Live Mesh - then all vendors could Meshify their applications&lt;/li&gt;    &lt;li&gt;Make the Live Mesh &lt;a href="http://www.webdav.org/"&gt;WebDAV&lt;/a&gt; compliant, then I could use any Office application from anywhere and edit my documents directly in the Mesh, without having to synchronize the folders&lt;/li&gt;    &lt;li&gt;Keep the Live Mesh RDP access&lt;/li&gt;    &lt;li&gt;Keep the Live Sync remote folder access&lt;/li&gt;    &lt;li&gt;Keep the Live Sync file size limit, Skydrive does not allow upload of large files&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Anything else you would like to have?&lt;/p&gt;  &lt;p&gt;Of course I realize, and don’t mind, that some of these services should have some fee; for example the Office Live Applications integration could have some fee and extra storage space (25Gb is not that much in these days) should also cost.&lt;/p&gt;  &lt;p&gt;I’ve even tried the Live Mesh CTP version, which have support for custom applications - which looks awesome, throw that into the wish-list also.&lt;/p&gt;  &lt;p&gt;So, Microsoft Program Managers hear me! Now when &lt;a href="http://www.microsoft.com/presspass/exec/ozzie/"&gt;Ray Ozzie&lt;/a&gt; is in partial command in Redmond I think this should have a high priority (anyone remember &lt;a href="http://office.microsoft.com/en-us/groove/default.aspx"&gt;Groove&lt;/a&gt;?)&lt;/p&gt;  &lt;p&gt;I do not think I am the only one out here that would just love to see this happen.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v4Jkl7CWFemF3CQg7TO9zXUYoyw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v4Jkl7CWFemF3CQg7TO9zXUYoyw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v4Jkl7CWFemF3CQg7TO9zXUYoyw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v4Jkl7CWFemF3CQg7TO9zXUYoyw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=YFhL4-1hjRg:3ymgByQHbgU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=YFhL4-1hjRg:3ymgByQHbgU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=YFhL4-1hjRg:3ymgByQHbgU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=YFhL4-1hjRg:3ymgByQHbgU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=YFhL4-1hjRg:3ymgByQHbgU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=YFhL4-1hjRg:3ymgByQHbgU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=YFhL4-1hjRg:3ymgByQHbgU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=YFhL4-1hjRg:3ymgByQHbgU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/YFhL4-1hjRg" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-03-29 00:08:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-29 00:08:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=466</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/How-to-make-Live-Mesh-conquer-the-world.aspx</feedburner:origLink></item><item><title>Having fun with the SharePoint Welcome.ascx control</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/dWBvmSwn05s/Having-fun-with-the-SharePoint-Welcomeascx-control.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Wed, 25 Mar 2009 04:33:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Having-fun-with-the-SharePoint-Welcomeascx-control.aspx</guid><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SharePoint Welcome Control" border="0" alt="SharePoint Welcome Control" align="right" src="http://www.wictorwilen.se/WindowsLiveWriter/HavingfunwiththeSharePointWe.ascxcontrol_EB9B/image_3.png" width="180" height="41" /&gt; Have you ever wanted to get rid of the &lt;em&gt;Welcome&lt;/em&gt; text before the user name in the &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; user menu? At least I have! If you are like me - here is a solution that you can use to customize the text of the Welcome Control (Welcome.ascx).&lt;/p&gt;  &lt;p&gt;The approach is pretty simple, and can be made in several ways, but I wanted a pretty clean solution that didn’t affect any other behavior of SharePoint and I wanted to write as little code as possible. Eventually I ended up with some more rows than expected, but this was due to the fact that I created this custom Welcome control configurable and deployable.&lt;/p&gt;  &lt;p&gt;First of all some basics about the Welcome control. The Welcome.ascx control is a special control that handles the user menu, located top right (as standard) in your SharePoint site. The control has two states; one if the user is signed in and one when the user is not signed in. The Welcome.ascx control is located in the 12-folder under TEMPLATE\CONTROLTEMPLATES and uses the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.welcome.aspx"&gt;Microsoft.SharePoint.WebControls.Welcome&lt;/a&gt; control class in the Microsoft.SharePoint DLL file. &lt;/p&gt;  &lt;p&gt;What I wanted to do was get rid of the Welcome text in front of the user name and only have the user’s name. To achieve this without recreating the whole control, I created a new class which derives from the Welcome control and changed the Welcome.ascx file to inherit from my new class instead.&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  1: &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; ManagedWelcome {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  2:     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Welcome : Microsoft.SharePoint.WebControls.Welcome {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  3:         &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; Welcome() {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  4:         }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  5: 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  6:         [SharePointPermission(SecurityAction.Demand, ObjectModel = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  7:         &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnLoad(EventArgs e) {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  8:             &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;.OnLoad(e);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  9: 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 10:             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (HttpContext.Current.User.Identity.IsAuthenticated) {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 11:                 PostCacheSubstitutionText pt = &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;.ExplicitLogout.MenuControl.Controls[0] 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 12:                                                &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; PostCacheSubstitutionText;
&lt;/pre&gt;&lt;pre style="background-color: #ffff00; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 13:                 pt.TextType = PostCacheSubstitutionTextType.UserName;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 14:             }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 15:         }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 16:     }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 17: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;The original Welcome control consists of two objects; ExplicitLogout (of the type &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.personalactions.aspx"&gt;PersonalActions&lt;/a&gt;) and ExplicitLogin (of the type &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.applicationpagelink.aspx"&gt;ApplicationPageLink&lt;/a&gt;). In line 13 I change the TextType property (enumeration of type &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.postcachesubstitutiontexttype.aspx"&gt;PostCacheSubstitutionTextType&lt;/a&gt;) of the first control (which is of the type &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.postcachesubstitutiontext.aspx"&gt;PostCacheSubstitutionText&lt;/a&gt;) in the ExplicitLogout object and set it to show only the user name (&lt;em&gt;UserName &lt;/em&gt;enum value), default is the &lt;em&gt;WelcomeUser&lt;/em&gt; value.&lt;/p&gt;

&lt;p&gt;Now the Welcome control looks like this instead.&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="No Welcome text!" border="0" alt="No Welcome text!" src="http://www.wictorwilen.se/WindowsLiveWriter/HavingfunwiththeSharePointWe.ascxcontrol_EB9B/image_6.png" width="149" height="46" /&gt;&lt;/p&gt;

&lt;p&gt;As always I cannot stop there so I made this into a customizable control, download below, which can be deployed to your web application. When activated, on Site Collection Features, it adds a link to the Site Collection Administration (not the best place, since the changes will affect the whole web application). &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/HavingfunwiththeSharePointWe.ascxcontrol_EB9B/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Site Collection Administration" border="0" alt="Site Collection Administration" src="http://www.wictorwilen.se/WindowsLiveWriter/HavingfunwiththeSharePointWe.ascxcontrol_EB9B/image_thumb_2.png" width="204" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you click that link you will get to a &lt;em&gt;Welcome Control&lt;/em&gt; administration page, where you can set the behavior of the Welcome control when a user is logged on or change the &lt;em&gt;Sign In&lt;/em&gt; text.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/HavingfunwiththeSharePointWe.ascxcontrol_EB9B/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Welcome Control admin" border="0" alt="Welcome Control admin" src="http://www.wictorwilen.se/WindowsLiveWriter/HavingfunwiththeSharePointWe.ascxcontrol_EB9B/image_thumb_3.png" width="504" height="295" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using this feature you can on the fly change the behavior of the Welcome menu; have a custom Sign In text, change the &lt;em&gt;welcome&lt;/em&gt; text to just the user name, the user login name, or e-mail and even the name of the Web. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; When installing this feature it will write over the default Welcome.ascx control, so make a backup of it first.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For &lt;a href="http://www.wictorwilen.se/files/ManagedWelcome.zip"&gt;full source download click here&lt;/a&gt; or just the &lt;a href="http://www.wictorwilen.se/files/ManagedWelcome.wsp"&gt;solution package (WSP) click here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Nl9c_zBzj2HURa5LvCo4a3pXqi8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nl9c_zBzj2HURa5LvCo4a3pXqi8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Nl9c_zBzj2HURa5LvCo4a3pXqi8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nl9c_zBzj2HURa5LvCo4a3pXqi8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dWBvmSwn05s:DfqcM7EmifQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dWBvmSwn05s:DfqcM7EmifQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=dWBvmSwn05s:DfqcM7EmifQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dWBvmSwn05s:DfqcM7EmifQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=dWBvmSwn05s:DfqcM7EmifQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dWBvmSwn05s:DfqcM7EmifQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=dWBvmSwn05s:DfqcM7EmifQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=dWBvmSwn05s:DfqcM7EmifQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/dWBvmSwn05s" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-03-25 11:33:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-25 11:33:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=465</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Having-fun-with-the-SharePoint-Welcomeascx-control.aspx</feedburner:origLink></item><item><title>Ten free sample Themes for SharePoint</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/RvNVf9SDGv4/Ten-free-sample-Themes-for-SharePoint.aspx</link><category>SharePoint</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Thu, 19 Mar 2009 07:51:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/Ten-free-sample-Themes-for-SharePoint.aspx</guid><description>&lt;p&gt;&lt;a href="http://www.microsoft.com" target="_blank"&gt;Microsoft&lt;/a&gt; has released a set of &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a#Requirements"&gt;ten free Themes&lt;/a&gt; for &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; for use with the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=b2c0b628-5cab-48c1-8cae-c34c1ccbdc0a"&gt;Visual Studio extensions for Windows SharePoint Services&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/TenfreesampleThemesforSharePoint_11E68/AllThemesPreview_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="10 Themes Preview" border="0" alt="10 Themes Preview" align="right" src="http://www.wictorwilen.se/WindowsLiveWriter/TenfreesampleThemesforSharePoint_11E68/AllThemesPreview_thumb.jpg" width="205" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;These ten themes provides a far better experience than the out-of-the-box themes delivered with SharePoint (WSS and MOSS), of which some are really annoyingly ugly!  But the new themes needs some tweaking before looking really good, there are several design flaws in some of them, like black text on dark-grey background…&lt;/p&gt;  &lt;p&gt;The themes are not delivered as SharePoint solutions, but as Visual Studio 2008 solutions for usage with the VSeWSS. So you can’t just download and install them, you have to build them and optionally customize them. This allows you to easily grab a solution, customize it a bit and then package and deploy it.&lt;/p&gt;  &lt;p&gt;To download the themes go to: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8k8fixVYvfLyMV3t0iocDIm7scE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8k8fixVYvfLyMV3t0iocDIm7scE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8k8fixVYvfLyMV3t0iocDIm7scE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8k8fixVYvfLyMV3t0iocDIm7scE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=RvNVf9SDGv4:8crXXqfTpSM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=RvNVf9SDGv4:8crXXqfTpSM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=RvNVf9SDGv4:8crXXqfTpSM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=RvNVf9SDGv4:8crXXqfTpSM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=RvNVf9SDGv4:8crXXqfTpSM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=RvNVf9SDGv4:8crXXqfTpSM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=RvNVf9SDGv4:8crXXqfTpSM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=RvNVf9SDGv4:8crXXqfTpSM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/RvNVf9SDGv4" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-03-19 14:51:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-19 14:51:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=464</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/Ten-free-sample-Themes-for-SharePoint.aspx</feedburner:origLink></item><item><title>ChartPart 2.0 for SharePoint Beta released</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/yT_oW5yWRSU/ChartPart-20-for-SharePoint-Beta-released.aspx</link><category>SharePoint</category><category>Web Parts</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Tue, 17 Mar 2009 10:46:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/ChartPart-20-for-SharePoint-Beta-released.aspx</guid><description>&lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/ChartPart2.0forSharePointinbeta_14B7D/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="ChartPart 2.0 beta" border="0" alt="ChartPart 2.0 beta" align="right" src="http://www.wictorwilen.se/WindowsLiveWriter/ChartPart2.0forSharePointinbeta_14B7D/image_thumb.png" width="204" height="214" /&gt;&lt;/a&gt;I’m glad to announce that I finally got my stuff together and stitched together the last pieces of the beta of&lt;strong&gt; ChartPart for &lt;/strong&gt;&lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;&lt;strong&gt;SharePoint&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; 2.0&lt;/strong&gt;.  ChartPart for SharePoint is a SharePoint Web Part that allows you to draw charts from existing SharePoint lists. It’s available at &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt;, at &lt;a href="http://chartpart.codeplex.com/"&gt;http://chartpart.codeplex.com/&lt;/a&gt;, and is free for use.&lt;/p&gt;  &lt;p&gt;ChartPart 1.0 have had over 4.000 downloads since it was released and is translated to six different languages. The first version was pretty limited in customization and you could only create some basic charts.&lt;/p&gt;  &lt;p&gt;Version 2.0 has a number of new and interesting features&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Installation in bin, instead GAC. This is to make the Web Part more reliable by enterprise customers&lt;/li&gt;    &lt;li&gt;The Chart Controls is installed separately&lt;/li&gt;    &lt;li&gt;More chart types&lt;/li&gt;    &lt;li&gt;A set of new and improved Editor Parts that allows you to customize your Chart&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Full control over the 3D graphs&lt;/li&gt;      &lt;li&gt;Full control of legends position and layout&lt;/li&gt;      &lt;li&gt;etc&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;A new &lt;em&gt;LockDown&lt;/em&gt; mode, which allows you to lock down the &lt;em&gt;design&lt;/em&gt; parts of the ChartPart so that an administrator can set colors and design and the allow users to use those predefined Web Parts without violating corporate branding etc&lt;/li&gt;    &lt;li&gt;Connect the ChartPart to a list and use the list as a filter for the chart&lt;/li&gt;    &lt;li&gt;Even more languages will be there when a stable version is released&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It’s a beta, and I have some issues still to fix and some features to implement, but head on over to download it if you would like to try it out, head on over to CodePlex and &lt;a href="http://chartpart.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24054"&gt;download the beta&lt;/a&gt;. Post any issues in the &lt;a href="http://chartpart.codeplex.com/Thread/List.aspx"&gt;Discussions&lt;/a&gt; or Issue &lt;a href="http://chartpart.codeplex.com/WorkItem/List.aspx"&gt;Tracker&lt;/a&gt;. If you would like to help out translating it just &lt;a href="http://www.wictorwilen.se/Contact.aspx" target="_blank"&gt;contact me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FMRaNtq3-Jo1O0K5BMDsrQNi8kM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FMRaNtq3-Jo1O0K5BMDsrQNi8kM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FMRaNtq3-Jo1O0K5BMDsrQNi8kM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FMRaNtq3-Jo1O0K5BMDsrQNi8kM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=yT_oW5yWRSU:MoSWmjJTOC4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=yT_oW5yWRSU:MoSWmjJTOC4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=yT_oW5yWRSU:MoSWmjJTOC4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=yT_oW5yWRSU:MoSWmjJTOC4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=yT_oW5yWRSU:MoSWmjJTOC4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=yT_oW5yWRSU:MoSWmjJTOC4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=yT_oW5yWRSU:MoSWmjJTOC4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=yT_oW5yWRSU:MoSWmjJTOC4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/yT_oW5yWRSU" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-03-17 17:46:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-17 17:46:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=463</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/ChartPart-20-for-SharePoint-Beta-released.aspx</feedburner:origLink></item><item><title>SharePoint Web Part Event Flow in detail</title><link>http://feedproxy.google.com/~r/WictorWilen/~3/hO_xL-LLWI0/SharePoint-Web-Part-Event-Flow-in-detail.aspx</link><category>.NET</category><category>SharePoint</category><category>Web Parts</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wictor Wilén</dc:creator><pubDate>Mon, 16 Mar 2009 00:43:00 PDT</pubDate><guid isPermaLink="false">http://www.wictorwilen.se/Post/SharePoint-Web-Part-Event-Flow-in-detail.aspx</guid><description>&lt;p&gt;I have been answering questions on the &lt;a href="http://www.microsoft.com/SharePoint/" target="_blank"&gt;SharePoint&lt;/a&gt; forums at &lt;a href="http://social.msdn.microsoft.com/Forums/"&gt;MSDN Forums&lt;/a&gt;, and while some are really tricky and interesting, some are really basic beginner mistakes. A couple of questions lately have been about Web Part development and how to and where to create your controls. Most of these is easily solved if you understand how the Web Part event model works.&lt;/p&gt;  &lt;p&gt;First of all you need basic ASP.NET understanding and know how the Page and Control objects work together, how a postback works etc. But I have even seen somewhat experienced ASP.NET developers failing at this point, probably due to the fact that Visual Studio have a slick interface for editing user controls and ASP.NET pages. When it comes to SharePoint you have no visual aids and you are out on thin water, and this knowledge is crucial.&lt;/p&gt;  &lt;h3&gt;SharePoint Web Part - Event Flow chart&lt;/h3&gt;  &lt;p&gt;To help new (or experienced) SharePoint Web Part developers out I created a chart that shows you how the different events flows from the Page, through the WebPartManager and WebPartZones, to the Web Part.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wictorwilen.se/WindowsLiveWriter/SharePointWebPartEventFlowindetail_BC4A/WebPartEventModelChart_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WebPartEventModelChart" border="0" alt="WebPartEventModelChart" src="http://www.wictorwilen.se/WindowsLiveWriter/SharePointWebPartEventFlowindetail_BC4A/WebPartEventModelChart_thumb.jpg" width="244" height="239" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can either click on the image above, to get it as a JPEG image, or download it as a printable PDF or XPS file.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.wictorwilen.se/files/WebPartEventModelChart.pdf"&gt;WebPartEventFlow.pdf (63kb)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.wictorwilen.se/files/WebPartEventModelChart.xps"&gt;WebPartEventFlow.xps (63kb)&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: The Event Flow chart does not cover all events in the ASP.NET/SharePoint Page model, I have focused on the WebPart side. &lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;p&gt;There are five segments in the chart, from left to right; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Page&lt;/strong&gt; - events/methods happening in the Page (System.Web.UI.Page derivatives) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WebPartManager&lt;/strong&gt; - events/methods in the SPWebPartManager (inherited from WebPartManager) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WebPartZone&lt;/strong&gt; - the WebPartZone does not do really much in this scenario but rendering the WebParts. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WebPart&lt;/strong&gt; - the events happening during a normal view of a WebPart &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WebPart Postback&lt;/strong&gt; - the event flow is a little bit different than the normal WebPart flow. Note that CreateChildControls is before the OnLoad and connections. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The chart contains a few white notations; these are not actual events/methods but contains information on what is happening at that point.&lt;/p&gt;  &lt;p&gt;If you have any suggestions or comments about the flow, please feel free to &lt;a href="http://www.wictorwilen.se/Contact.aspx" target="_blank"&gt;contact me&lt;/a&gt; or post a comment. I’ll gladly keep the chart up to date.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ce0R5v7RvfUBfmk4rBJ5icNK7uU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ce0R5v7RvfUBfmk4rBJ5icNK7uU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ce0R5v7RvfUBfmk4rBJ5icNK7uU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ce0R5v7RvfUBfmk4rBJ5icNK7uU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=hO_xL-LLWI0:cxoFUSxrxIo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=hO_xL-LLWI0:cxoFUSxrxIo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=hO_xL-LLWI0:cxoFUSxrxIo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=hO_xL-LLWI0:cxoFUSxrxIo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=hO_xL-LLWI0:cxoFUSxrxIo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=hO_xL-LLWI0:cxoFUSxrxIo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WictorWilen?a=hO_xL-LLWI0:cxoFUSxrxIo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WictorWilen?i=hO_xL-LLWI0:cxoFUSxrxIo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WictorWilen/~4/hO_xL-LLWI0" height="1" width="1"/&gt;</description><atom:author xmlns:atom="http://www.w3.org/2005/Atom">
                    <atom:name>Wictor Wilén</atom:name>
                </atom:author><atom:published xmlns:atom="http://www.w3.org/2005/Atom">2009-03-16 07:43:00Z</atom:published><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-16 07:43:00Z</atom:updated><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">6</slash:comments><trackback:ping xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">http://www.wictorwilen.se/trackback.aspx?id=462</trackback:ping><feedburner:origLink>http://www.wictorwilen.se/Post/SharePoint-Web-Part-Event-Flow-in-detail.aspx</feedburner:origLink></item></channel></rss>
