<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Serge van den Oever [Macaw]</title><link>http://weblogs.asp.net/soever/default.aspx</link><description>&lt;I&gt;Your source for hot information on Microsoft SharePoint Portal Server and Windows SharePoint Services&lt;/I&gt;&lt;/P&gt;
&lt;a href='http://weblogs.asp.net/soever/archive/2006/01/12/435105.aspx' target='_blank'&gt;Macaw SharePoint Skinner&lt;/a&gt; - A HttpModule for skinning SharePoint by modifying at server side the HTML output sent to the browser&lt;BR&gt;
&lt;a href='http://weblogs.asp.net/soever/archive/2005/03/04/385523.aspx' target='_blank'&gt;Macaw Discussion Board&lt;/a&gt; - The way SharePoint discussions should work... and now do work!&lt;BR&gt;
&lt;BR&gt;
MSDN Article: &lt;a href='http://msdn2.microsoft.com/en-us/library/aa505323.aspx' target='_blank'&gt;SharePoint Data View Web Part Extension Functions in the ddwrt Namespace&lt;/a&gt;&lt;BR&gt;
Weblog Posts: &lt;a href="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx" target='_blank'&gt;All my SharePoint related blog posts&lt;/a&gt;&lt;BR&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Microsoft Virtual labs - getting the lab notes directly</title><link>http://weblogs.asp.net/soever/archive/2009/07/03/microsoft-virtual-labs-getting-the-lab-notes-directly.aspx</link><pubDate>Fri, 03 Jul 2009 21:46:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7139572</guid><dc:creator>svdoever</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7139572</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/07/03/microsoft-virtual-labs-getting-the-lab-notes-directly.aspx#comments</comments><description>&lt;p&gt;Microsoft has great &lt;a href="http://www.microsoft.com/events/vlabs/default.mspx" target="_blank"&gt;virtual labs&lt;/a&gt; available, but it takes some time to get in there. If you just want the lab notes, type the following in Google: &lt;strong&gt;site:download.microsoftvirtuallabs.com filetype:pdf&lt;/strong&gt; or just follow &lt;a href="http://www.google.nl/search?q=site:download.microsoftvirtuallabs.com+filetype:pdf&amp;amp;hl=nl&amp;amp;rlz=1W1SUNA_en&amp;amp;as_qdr=all&amp;amp;num=100&amp;amp;start=100&amp;amp;sa=N" target="_blank"&gt;this link&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7139572" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/.NET/default.aspx">.NET</category></item><item><title>SharePoint, Features and web.config modifications using SPWebConfigModification</title><link>http://weblogs.asp.net/soever/archive/2009/06/19/sharepoint-features-and-web-config-modifications-using-spwebconfigmodification.aspx</link><pubDate>Thu, 18 Jun 2009 22:47:52 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7129336</guid><dc:creator>svdoever</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7129336</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/06/19/sharepoint-features-and-web-config-modifications-using-spwebconfigmodification.aspx#comments</comments><description>&lt;p&gt;SharePoint has a great way for deploying content and functionality using Windows SharePoint Services Solution Packages (WSP's). While developing a powerful new feature for SharePoint Publishing sites I had to deploy a HttpModule &amp;quot;the SharePoint&amp;quot; way. Building a HttpModule , a corresponding feature and the resulting WSP package is easy with our Macaw Solutions Factory. The actual logic in the Http Module and the feature is the difficult part. One of the things I had to do was to create a feature that registers a HTTPModule on feature activation, and removes it from the web.config on the feature deactivation. You can do this using the SPWebConfigModification class.&lt;/p&gt;  &lt;p&gt;A good article on this topic is &lt;a title="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32" href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32"&gt;http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32&lt;/a&gt;. It contains links to other posts as well.&lt;/p&gt;  &lt;p&gt;The Microsoft documentation can be found at &lt;a href="http://msdn.microsoft.com/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx"&gt;SPWebConfigModification Class (Microsoft.SharePoint.Administration)&lt;/a&gt;, I wished I scrolled down before, because a lot of valuable information can be found in the Community Content of this page (keep scrolling!).&lt;/p&gt;  &lt;p&gt;Anyway, it took quite some time to get my HttpModule to register/unregister correctly on activation/deactivation of my web application level feature. I post the code below so you have a head-start if you have to do something similar yourself.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Collections.Generic;
&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Collections.ObjectModel;
&lt;span style="color: blue"&gt;using &lt;/span&gt;Microsoft.SharePoint;
&lt;span style="color: blue"&gt;using &lt;/span&gt;Microsoft.SharePoint.Administration;

&lt;span style="color: green"&gt;// namespace must be in the form &amp;lt;Company&amp;gt;.&amp;lt;Product&amp;gt;.&amp;lt;FunctionalArea&amp;gt;.SharePoint.Features.&amp;lt;FeatureName&amp;gt;.FeatureReceiver
&lt;/span&gt;&lt;span style="color: blue"&gt;namespace &lt;/span&gt;Macaw.WcmRia.Moss2007.DualLayout.SharePoint.Features.DualLayoutSupport.FeatureReceiver
{
    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;Add HttpModule registration to web.config of the web application
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DualLayoutSupportFeatureReceiver &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;SPFeatureReceiver
    &lt;/span&gt;{
        &lt;span style="color: blue"&gt;private const string &lt;/span&gt;WebConfigModificationOwner = &lt;span style="color: #a31515"&gt;&amp;quot;Macaw.WcmRia.Moss2007.DualLayout&amp;quot;&lt;/span&gt;;
        &lt;span style="color: blue"&gt;private static readonly &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;[] Modifications = {
            &lt;span style="color: green"&gt;// For not so obvious reasons web.config modifications inside collections 
            // are added based on the value of the key attribute in alphabetic order.
            // Because we need to add the DualLayout module after the 
            // PublishingHttpModule, we prefix the name with 'Q-'.
            &lt;/span&gt;&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;()
                { 
                    &lt;span style="color: green"&gt;// The owner of the web.config modification, useful for removing a 
                    // group of modifications
                    &lt;/span&gt;Owner = WebConfigModificationOwner, 
                    &lt;span style="color: green"&gt;// Make sure that the name is a unique XPath selector for the element 
                    // we are adding. This name is used for removing the element
                    &lt;/span&gt;Name = &lt;span style="color: #a31515"&gt;&amp;quot;add[@name='Q-Macaw.WcmRia.Moss2007.DualLayout']&amp;quot;&lt;/span&gt;,
                    &lt;span style="color: green"&gt;// We are going to add a new XML node to web.config
                    &lt;/span&gt;Type = &lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;SPWebConfigModificationType&lt;/span&gt;.EnsureChildNode, 
                    &lt;span style="color: green"&gt;// The XPath to the location of the parent node in web.config
                    &lt;/span&gt;Path = &lt;span style="color: #a31515"&gt;&amp;quot;configuration/system.web/httpModules&amp;quot;&lt;/span&gt;,
                    &lt;span style="color: green"&gt;// Sequence is important if there are multiple equal nodes that 
                    // can't be identified with an XPath expression
                    &lt;/span&gt;Sequence = 0,
                    &lt;span style="color: green"&gt;// The XML to insert as child node, make sure that used names match the Name selector
                    &lt;/span&gt;Value = &lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;add name='Q-Macaw.WcmRia.Moss2007.DualLayout' type='Macaw.WcmRia.Moss2007.DualLayout.Business.Components.HttpModule, Macaw.WcmRia.Moss2007.DualLayout.Business.Components, Version=1.0.0.0, Culture=neutral, PublicKeyToken=077f92bbf864a536' /&amp;gt;&amp;quot; 
                &lt;/span&gt;}
        };

        &lt;span style="color: blue"&gt;public override void &lt;/span&gt;FeatureInstalled(&lt;span style="color: #2b91af"&gt;SPFeatureReceiverProperties &lt;/span&gt;properties)
        {
        }

        &lt;span style="color: blue"&gt;public override void &lt;/span&gt;FeatureUninstalling(&lt;span style="color: #2b91af"&gt;SPFeatureReceiverProperties &lt;/span&gt;properties)
        {
        }

        &lt;span style="color: blue"&gt;public override void &lt;/span&gt;FeatureActivated(&lt;span style="color: #2b91af"&gt;SPFeatureReceiverProperties &lt;/span&gt;properties)
        {
            &lt;span style="color: #2b91af"&gt;SPWebApplication &lt;/span&gt;webApp = properties.Feature.Parent &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPWebApplication&lt;/span&gt;;
            &lt;span style="color: blue"&gt;if &lt;/span&gt;(webApp != &lt;span style="color: blue"&gt;null&lt;/span&gt;)
            {
                AddWebConfigModifications(webApp, Modifications);
            }
        }

        &lt;span style="color: blue"&gt;public override void &lt;/span&gt;FeatureDeactivating(&lt;span style="color: #2b91af"&gt;SPFeatureReceiverProperties &lt;/span&gt;properties)
        {
            &lt;span style="color: #2b91af"&gt;SPWebApplication &lt;/span&gt;webApp = properties.Feature.Parent &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SPWebApplication&lt;/span&gt;;
            &lt;span style="color: blue"&gt;if &lt;/span&gt;(webApp != &lt;span style="color: blue"&gt;null&lt;/span&gt;)
            {
                RemoveWebConfigModificationsByOwner(webApp, WebConfigModificationOwner);
            }
        }

        &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="color: green"&gt;Add a collection of web modifications to the web application
        &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;webApp&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The web application to add the modifications to&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;modifications&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The collection of modifications&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
        &lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;AddWebConfigModifications(&lt;span style="color: #2b91af"&gt;SPWebApplication &lt;/span&gt;webApp, &lt;span style="color: #2b91af"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;&amp;gt; modifications)
        {
            &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPWebConfigModification &lt;/span&gt;modification &lt;span style="color: blue"&gt;in &lt;/span&gt;modifications)
            {
                webApp.WebConfigModifications.Add(modification);
            }

            &lt;span style="color: green"&gt;// Commit modification additions to the specified web application
            &lt;/span&gt;webApp.Update();
            &lt;span style="color: green"&gt;// Push modifications through the farm
            &lt;/span&gt;webApp.WebService.ApplyWebConfigModifications();
        }

        &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="color: green"&gt;Remove modifications from the web application
        &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;webApp&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The web application to remove the modifications from&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;owner&amp;quot;Remove all modifications that belong to the owner&amp;gt;&amp;lt;/param&amp;gt;
        &lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;RemoveWebConfigModificationsByOwner(&lt;span style="color: #2b91af"&gt;SPWebApplication &lt;/span&gt;webApp, &lt;span style="color: blue"&gt;string &lt;/span&gt;owner)
        {
            &lt;span style="color: #2b91af"&gt;Collection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;&amp;gt; modificationCollection = webApp.WebConfigModifications;
            &lt;span style="color: #2b91af"&gt;Collection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;&amp;gt; removeCollection = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Collection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;SPWebConfigModification&lt;/span&gt;&amp;gt;();

            &lt;span style="color: blue"&gt;int &lt;/span&gt;count = modificationCollection.Count;
            &lt;span style="color: blue"&gt;for &lt;/span&gt;(&lt;span style="color: blue"&gt;int &lt;/span&gt;i = 0; i &amp;lt; count; i++)
            {
                &lt;span style="color: #2b91af"&gt;SPWebConfigModification &lt;/span&gt;modification = modificationCollection[i];
                &lt;span style="color: blue"&gt;if &lt;/span&gt;(modification.Owner == owner)
                {
                    &lt;span style="color: green"&gt;// collect modifications to delete
                    &lt;/span&gt;removeCollection.Add(modification);
                }
            }

            &lt;span style="color: green"&gt;// now delete the modifications from the web application
            &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(removeCollection.Count &amp;gt; 0)
            {
                &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SPWebConfigModification &lt;/span&gt;modificationItem &lt;span style="color: blue"&gt;in &lt;/span&gt;removeCollection)
                {
                    webApp.WebConfigModifications.Remove(modificationItem);
                }

                &lt;span style="color: green"&gt;// Commit modification removals to the specified web application
                &lt;/span&gt;webApp.Update();
                &lt;span style="color: green"&gt;// Push modifications through the farm
                &lt;/span&gt;webApp.WebService.ApplyWebConfigModifications();
            }
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7129336" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint WCM: flushing publishing pages from the cache</title><link>http://weblogs.asp.net/soever/archive/2009/06/19/sharepoint-wcm-flushing-publishing-pages-from-the-cache.aspx</link><pubDate>Thu, 18 Jun 2009 22:08:39 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7129308</guid><dc:creator>svdoever</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7129308</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/06/19/sharepoint-wcm-flushing-publishing-pages-from-the-cache.aspx#comments</comments><description>&lt;p&gt;SharePoint WCM does a lot of caching. One of the things that is cached are the publishing pages. These pages are cached in the object cache. Sometimes there is a situation where you want to flush a publishing page from the cache. In my case I had to flush a publishing page from the cache in a http module. The cache id for this page is the server relative url without any characters after the url. For example: /Pages/MyFirstLittleWCMPage.aspx. Therefore the path must be &amp;quot;normalized&amp;quot; so additional &amp;quot;stuff&amp;quot; is removed. The NormalizeUrl() function does this job.&lt;/p&gt;  &lt;p&gt;What I want to do to flush the page from the cache was:&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;CacheManager contextCacheManager = CacheManager.GetManager(&lt;span style="color: #2b91af"&gt;SPContext&lt;/span&gt;.Current.Site);       &lt;br /&gt;contextCacheManager.ObjectFactory.FlushItem(NormalizeUrl(&lt;span style="color: #2b91af"&gt;HttpContext&lt;/span&gt;.Current.Request.Path);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Sadly enough many interesting and powerful API classes are internal, and you need some reflection to be able to call them. Below the code I needed to write to accomplish the above. I can tell you it was a hell of a job to get to this code. That is why I share it, to give you some insight in the required magic called reflection.&lt;/p&gt;  &lt;p&gt;Interesting components:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I know that the assembly containing the required class is already loaded. I can do GetAssembly(typeof(PublishingPage)) to get the assembly. Will work on any class in the assembly. &lt;/li&gt;    &lt;li&gt;To invoke a member of a class you need the type of the class. Assembly.GetType(&amp;quot;full.name.of.type&amp;quot;) returns the type, also on internal classes. &lt;/li&gt;    &lt;li&gt;Given the type you can invoke members, where members can be static functions, properties or methods. You specify what to search for the member using BindingFlags. For example for a static public method specify &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Static | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Public | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.InvokeMethod. &lt;/li&gt;    &lt;li&gt;Arguments to methods must be passed in an object array. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I hope the code below will give some insight in how to make the impossible possible.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="color: green"&gt;Flush the current publishing page from the object cache
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
/// &amp;lt;remarks&amp;gt;
/// &lt;/span&gt;&lt;span style="color: green"&gt;Reflection is used to get access to internal classes of the SharePoint framework
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/remarks&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;FlushCurrentPublishingPageFromCache()
{
    &lt;span style="color: green"&gt;// We need to get access to the Microsoft.SharePoint.Publishing.dll assembly, PublisingPage is in there for sure
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assembly &lt;/span&gt;microsoftSharePointPublishingAssembly = &lt;span style="color: #2b91af"&gt;Assembly&lt;/span&gt;.GetAssembly(&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;PublishingPage&lt;/span&gt;));
    &lt;span style="color: #2b91af"&gt;Type &lt;/span&gt;cacheManagerType = microsoftSharePointPublishingAssembly.GetType(&lt;span style="color: #a31515"&gt;&amp;quot;Microsoft.SharePoint.Publishing.CacheManager&amp;quot;&lt;/span&gt;, &lt;span style="color: blue"&gt;true&lt;/span&gt;);
    &lt;span style="color: blue"&gt;object &lt;/span&gt;contextCacheManager = cacheManagerType.InvokeMember(&lt;span style="color: #a31515"&gt;&amp;quot;GetManager&amp;quot;&lt;/span&gt;, 
        &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Static | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Public | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.InvokeMethod, 
        &lt;span style="color: blue"&gt;null&lt;/span&gt;, &lt;span style="color: blue"&gt;null&lt;/span&gt;, &lt;span style="color: blue"&gt;new object&lt;/span&gt;[] { &lt;span style="color: #2b91af"&gt;SPContext&lt;/span&gt;.Current.Site });            

    &lt;span style="color: blue"&gt;string &lt;/span&gt;cacheId = NormalizeUrl(&lt;span style="color: #2b91af"&gt;HttpContext&lt;/span&gt;.Current.Request.Path);
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(contextCacheManager != &lt;span style="color: blue"&gt;null&lt;/span&gt;)
    {
        &lt;span style="color: blue"&gt;object &lt;/span&gt;cachedObjectFactory = contextCacheManager.GetType().InvokeMember(&lt;span style="color: #a31515"&gt;&amp;quot;ObjectFactory&amp;quot;&lt;/span&gt;, 
            &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Public | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.GetProperty, 
            &lt;span style="color: blue"&gt;null&lt;/span&gt;, contextCacheManager, &lt;span style="color: blue"&gt;new object&lt;/span&gt;[] {});
        cachedObjectFactory.GetType().InvokeMember(&lt;span style="color: #a31515"&gt;&amp;quot;FlushItem&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Instance | 
            &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.Public | &lt;span style="color: #2b91af"&gt;BindingFlags&lt;/span&gt;.InvokeMethod, 
            &lt;span style="color: blue"&gt;null&lt;/span&gt;, cachedObjectFactory, &lt;span style="color: blue"&gt;new object&lt;/span&gt;[] { cacheId });
    }
    &lt;span style="color: blue"&gt;else
    &lt;/span&gt;{
        Microsoft.Office.Server.Diagnostics.&lt;span style="color: #2b91af"&gt;PortalLog&lt;/span&gt;.LogString(&lt;span style="color: #a31515"&gt;&amp;quot;Unexpected error: DualLayout &amp;quot; +&lt;br /&gt;           &amp;quot;FlushCurrentPublishingPageFromCache: No CacheManager for page {0}&amp;quot;&lt;/span&gt;, cacheId);
    }
}

&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="color: green"&gt;Normalize url for cachId usage
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
/// &amp;lt;remarks&amp;gt;
/// &lt;/span&gt;&lt;span style="color: green"&gt;This code is copied from:
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;private static string NormalizeUrl(string url);
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;Declaring Type: Microsoft.SharePoint.Publishing.CachedObjectFactory 
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;Assembly: Microsoft.SharePoint.Publishing, Version=12.0.0.0 
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/remarks&amp;gt;
/// &amp;lt;param name=&amp;quot;url&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Url to normalize&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
/// &amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The normalized url&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/returns&amp;gt;
&lt;/span&gt;&lt;span style="color: blue"&gt;private static string &lt;/span&gt;NormalizeUrl(&lt;span style="color: blue"&gt;string &lt;/span&gt;url)
{
    url = &lt;span style="color: #2b91af"&gt;SPHttpUtility&lt;/span&gt;.UrlPathDecode(url, &lt;span style="color: blue"&gt;false&lt;/span&gt;);
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(!&lt;span style="color: blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(url))
    {
        &lt;span style="color: blue"&gt;int &lt;/span&gt;length = url.IndexOf(&lt;span style="color: #a31515"&gt;'?'&lt;/span&gt;);
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(length &amp;gt;= 0)
        {
            url = url.Substring(0, length);
        }
    }
    &lt;span style="color: blue"&gt;else
    &lt;/span&gt;{
        &lt;span style="color: blue"&gt;return &lt;/span&gt;&lt;span style="color: #a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
    }
    &lt;span style="color: blue"&gt;int &lt;/span&gt;index = url.IndexOf(&lt;span style="color: #a31515"&gt;'#'&lt;/span&gt;);
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(index &amp;gt;= 0)
    {
        url = url.Substring(0, index);
    }
    &lt;span style="color: blue"&gt;return &lt;/span&gt;url;
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7129308" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Debugging SharePoint/ASP.NET code? Smart key-codes + disable timeout!</title><link>http://weblogs.asp.net/soever/archive/2009/06/18/debugging-sharepoint-asp-net-code-smart-key-codes-disable-timeout.aspx</link><pubDate>Thu, 18 Jun 2009 15:39:02 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7129051</guid><dc:creator>svdoever</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7129051</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/06/18/debugging-sharepoint-asp-net-code-smart-key-codes-disable-timeout.aspx#comments</comments><description>&lt;p&gt;I'm currently running around in the Visual Studio debugger to debug some complex SharePoint code. There are two things really annoy me: all the mouse-clicks needed to attach to the Internet Information Server process and the time-out you get when you are exploring complex data-structures for too long.&lt;/p&gt;  &lt;p&gt;First my favorite key-sequence for the last week: &amp;lt;ALT-D&amp;gt;PW3&amp;lt;ENTER&amp;gt;&amp;lt;ENTER&amp;gt;. I will explain it:&lt;/p&gt;  &lt;p&gt;&amp;lt;Alt-D&amp;gt; brings up the debugging menu in Visual Studio:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_2.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb.png" width="351" height="556" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;With P the action &amp;quot;Attach to Process...&amp;quot; is executed, which brings you to the following window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_4.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_1.png" width="644" height="475" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The list of available processes is already active. We nog need to select the Internet Information Server worker process. Each application pool has it's own worker process. These worker processes are named: w3wp.exe.&lt;/p&gt;  &lt;p&gt;By typing W3 the first (and often only) w3wp.exe process is selected:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_6.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_2.png" width="644" height="475" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If there are multiple w3wp.exe processes you could select them all (SHIFT+ARROWDOWN). Now press the first time &amp;lt;ENTER&amp;gt;, which selects the w3wp.exe process(es). This results in the following window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_8.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_3.png" width="446" height="277" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The &amp;quot;Attach&amp;quot; button is selected by default. This brings us to the latest &amp;lt;ENTER&amp;gt; to accept the default selection.&lt;/p&gt;  &lt;p&gt;We are now attached to the correct Internet Information Server working process(es) and can start debugging.&lt;/p&gt;  &lt;p&gt;Just try it a few times: &amp;lt;ALT-D&amp;gt;PW3&amp;lt;ENTER&amp;gt;&amp;lt;ENTER&amp;gt;, it will become second nature in no time. Happy debugging....&lt;/p&gt;  &lt;p&gt;... until you get the following popup window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_10.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_4.png" width="575" height="240" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You have got a &amp;quot;ping&amp;quot; timeout. If you read the box well, it tells you exactly what happened, and it tells you to press the &amp;quot;Help&amp;quot; button for further details.&lt;/p&gt;  &lt;p&gt;Most people don't read the box, and start over again. But it worth the effort to follow the described steps from the Microsoft documentation, they are a bit hard to follow:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;To continue to debug, you must configure IIS to allow the worker process to continue.&lt;/font&gt;&lt;/p&gt;  &lt;h5&gt;&lt;font color="#0000ff"&gt;To enable Terminal Services &lt;/font&gt;&lt;font color="#ff0000"&gt;(?? Terminal Services ??)&lt;/font&gt;&lt;/h5&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Open the Administrative Tools window.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Click Start, and then choose Control Panel.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In Control Panel, choose Switch to Classic View, if necessary, and then double-click Administrative Tools.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In the Administrative Tools window, double-click Internet Information Services (IIS) Manager.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In the Internet Information Services (IIS) Manager window, expand the &amp;lt;computer name&amp;gt; node.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Under the &amp;lt;computer name&amp;gt; node, right-click Application Pools.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In the Application Pools list, right-click the name of the pool your application runs in, and then click Advanced Settings.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In the Advanced Settings dialog box, locate the Process Model section and choose one of the following actions:&lt;/font&gt;&lt;/p&gt;      &lt;ol&gt;       &lt;li&gt;         &lt;p&gt;&lt;font color="#0000ff"&gt;Set Ping Enabled to False.&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font color="#0000ff"&gt;-or-&lt;/font&gt;&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;font color="#0000ff"&gt;Set Ping Maximum Response Time to a value greater than 90 seconds.&lt;/font&gt;&lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;      &lt;p&gt;&lt;font color="#0000ff"&gt;Setting Ping Enabled to False stops IIS from checking whether the worker process is still running and keeps the worker process alive until you stop your debugged process. Setting Ping Maximum Response Time to a large value allows IIS to continue monitoring the worker process.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Click OK.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Under Services and Applications, click Services. &lt;/font&gt;&lt;font color="#ff0000"&gt;-- Don't know what the rest of the steps if for... you are done!&lt;/font&gt;&lt;/p&gt;      &lt;p&gt;&lt;font color="#0000ff"&gt;A list of services appears in the right-side pane.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In the Services list, right-click Terminal Services, and then click Properties.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;In the Terminal Services Properties window, locate the General tab and set Startup type to Manual.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Click OK to close the Advanced Settings dialog box.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font color="#0000ff"&gt;Close the Internet Information Services (IIS) Manager window and the Administrative Tools window.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I'm running on Windows Server 2008, and below are the steps that I follow:&lt;/p&gt;  &lt;p&gt;Just type iis in the Start Search box, this shows me two applications:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_14.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_6.png" width="525" height="126" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I take the top one (I'm not running under IIS 6) and get the following screen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_12.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_5.png" width="923" height="739" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Right-click your application pool, advanced settings... and you get the following screen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_16.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://weblogs.asp.net/blogs/soever/WindowsLiveWriter/Debug.NETcodeSmartkeycodesdisabletimeout_E709/image_thumb_7.png" width="790" height="631" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Set &amp;quot;Ping Enabled&amp;quot; to False, press OK, and you can drill through your data-structures in the debugger for as long as you want!&lt;/p&gt;  &lt;p&gt;Again: &amp;quot;Happy debugging!&amp;quot;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7129051" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/soever/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/soever/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>SPDevExplorer 2.3 – Edit SharePoint content from within Visual Studio (4)</title><link>http://weblogs.asp.net/soever/archive/2009/05/25/spdevexplorer-2-3-edit-sharepoint-content-from-within-visual-studio-4.aspx</link><pubDate>Mon, 25 May 2009 08:41:01 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7097217</guid><dc:creator>svdoever</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7097217</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/05/25/spdevexplorer-2-3-edit-sharepoint-content-from-within-visual-studio-4.aspx#comments</comments><description>&lt;p&gt;After a weekend of hard work I have a new version of SPDevExplorer ready with many new enhancements. Download at &lt;a title="http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799" href="http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799"&gt;http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;See &lt;a title="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx" href="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx"&gt;http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx&lt;/a&gt; for all myposts on SPDevExplorer. &lt;/p&gt;  &lt;li&gt;   &lt;p&gt;Some screen shots to give an impression:&lt;/p&gt;    &lt;p&gt;Connect to a SharePoint site:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_16071648.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://weblogs.asp.net/blogs/soever/image_thumb_0C41AED0.png" width="521" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Checkout and edit a page from SharePoint:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_30699A10.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://weblogs.asp.net/blogs/soever/image_thumb_78B97090.png" width="644" height="381" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Actions on the context menu of a site:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_457FC7D8.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://weblogs.asp.net/blogs/soever/image_thumb_705ABC9B.png" width="549" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Actions on the context menu of a folder:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_26CB6E9E.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://weblogs.asp.net/blogs/soever/image_thumb_3D2113E3.png" width="630" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Actions on the context menu of a file:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_6A389162.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://weblogs.asp.net/blogs/soever/image_thumb_5B90762E.png" width="644" height="477" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Add files from working folder to SharePoint:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_44678C61.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://weblogs.asp.net/blogs/soever/image_thumb_083E516A.png" width="709" height="437" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Version 2.2:        &lt;br /&gt;- Added consistent keyboard shortcuts for all context menu entries         &lt;br /&gt;- Changed &amp;quot;Published by VS 2005&amp;quot; and Checked in by VS 2005&amp;quot; to &amp;quot;Published by SPDevExplorer&amp;quot; and Checked in by SPDevExplorer&amp;quot;         &lt;br /&gt;&amp;#160; because add-in works with both VS 2005 and VS 2008.         &lt;br /&gt;- All file content communication between working folder and sharepoint is now binary. Was text before, with         &lt;br /&gt;&amp;#160; conversion to UTF8. This allows for uploading modified binary files and editing in Visual Studio         &lt;br /&gt;&amp;#160; of non-text files.         &lt;br /&gt;- Extended file information on files retrieved from SharePoint with last time modified for improving         &lt;br /&gt;&amp;#160; test on overwrite of modified files.         &lt;br /&gt;- Added &amp;quot;Save&amp;quot; to file menu. If a file is opened in Visual Studio, it is saved and the contents is saved         &lt;br /&gt;&amp;#160; to SharePoint. If it is not opened in Visual Studio, if it is saved from another application to         &lt;br /&gt;&amp;#160; the working folder, the file is saved to SharePoint. Now images and other files can be opened from         &lt;br /&gt;&amp;#160; the working folder and saved back to SharePoint.         &lt;br /&gt;- Refactoring and documentation of code (first steps)         &lt;br /&gt;- Added &amp;quot;Add file...&amp;quot; option on folder that allows you to add files that are in the working folder, but         &lt;br /&gt;&amp;#160; are not in SharePoint. This makes it possible to create files with any application in the working folder         &lt;br /&gt;&amp;#160; and add them to SharePoint using Visual Studio.         &lt;br /&gt;- Added &amp;quot;Explorer working folder...&amp;quot; to all folders, not only to site. Makes it easier to add new files.         &lt;br /&gt;- Changed menu action on site &amp;quot;SharePoint-&amp;gt;Settings&amp;quot; to &amp;quot;SharePoint-&amp;gt;Site Settings         &lt;br /&gt;- Added &amp;quot;SharePoint-&amp;gt;Open site in browser&amp;quot;, &amp;quot;SharePoint-&amp;gt;Open folder in browser&amp;quot;, &amp;quot;SharePoint-&amp;gt;Open file in browser&amp;quot;         &lt;br /&gt;&amp;#160; to open the site, folder or file in a browser window within Visual Studio         &lt;br /&gt;- Added &amp;quot;SharePoint-&amp;gt;Web part page maintenance&amp;quot; on files, this opens the file url with ?contents=1 appended in a         &lt;br /&gt;&amp;#160; browser window in Visual Studio. A special page is displayed where web parts can be deleted. Useful for pages that         &lt;br /&gt;&amp;#160; don't work anymore due to a not working web part         &lt;br /&gt;- Added method &amp;quot;CurrentWebServiceVersion&amp;quot; to the SPDevExplorer web service so we can make sure that the client side tool         &lt;br /&gt;&amp;#160; and the server side web service stay in sync&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Version 2.1:        &lt;br /&gt;- Fixed a bug where subnodes where not rendered when enabling/disabling &amp;quot;Show all folders and files&amp;quot;         &lt;br /&gt;- When loading a site, the site node now directly expands         &lt;br /&gt;- Refresh on site gave &amp;quot;Not implemented&amp;quot;, it now works         &lt;br /&gt;- Removed SharePoint Settings and SharePoint COntents options on folders. Gave a &amp;quot;Not implemented&amp;quot;         &lt;br /&gt;&amp;#160; message, and I don't see a use for them         &lt;br /&gt;- Add New/File, New/Folder, Get/Files, Get/Files recursive also to the Site node, to be able to do this         &lt;br /&gt;&amp;#160; on the root of the site as well         &lt;br /&gt;- Changed Checkin to Check In, and Checkout to Check Out to be consistent with SharePoint Designer         &lt;br /&gt;- Disable Publish if publishing not enabled on library         &lt;br /&gt;- Show Publish only if file is Checked In         &lt;br /&gt;- If Checked Out, show Check In with the user that has file currently checked out         &lt;br /&gt;- Added Rename on files and folders to folder and file context menu         &lt;br /&gt;- Added consistent short cuts for all context menu entries         &lt;br /&gt;- WSP install.bat script: added -force on deploysolution so it can be executed if solution already installed         &lt;br /&gt;- Removed Site &amp;amp; System, folder with log files and contente types. Do content types through WebUI, use other tool for log files         &lt;br /&gt;- Fixed &amp;quot;Check Out&amp;quot; visualization of files in root of site &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Version 2.0:        &lt;br /&gt;- Converted the project into a Visual Studio 2008 project         &lt;br /&gt;- Changed spelling error Domin into Domain         &lt;br /&gt;- Generated a strong key for the SPDevExplorer.Solution project. I got an error when installing the WSP rthat assembly was not strong-signed.         &lt;br /&gt;- Cookies were retrieved on an empty cookies object, this lead to a object not found exception         &lt;br /&gt;- Several changes to make sure that https is supported by changing the UI that full path is shown in tree.         &lt;br /&gt;&amp;#160; You now see &lt;/font&gt;&lt;a href="https://mysite"&gt;&lt;font size="1" face="Courier New"&gt;https://mysite&lt;/font&gt;&lt;/a&gt;&lt;font size="1" face="Courier New"&gt; instead of just mysite.        &lt;br /&gt;- Added &amp;quot;Explore working folder...&amp;quot; on site, so the cache on the local file system can be found. Want to turn         &lt;br /&gt;&amp;#160; this into a feature to add files to the cache folders and be able to add these additional files.         &lt;br /&gt;- Added &amp;quot;Show info...&amp;quot; on files and folders, shows the cached xml info on the folder/file         &lt;br /&gt;- On delete file/folder, ask for confirmation         &lt;br /&gt;- On delete file/folder, refresh parent view to make sure it is correct again, make next node current, if not exist previous node         &lt;br /&gt;- Made keyboard interaction working, KeyPress was used, didn't work, now using KeyUp         &lt;br /&gt;- Del on keyboard now works correctly for deleting files/directories         &lt;br /&gt;- F5 on keyboard added for refresh. Parent folder is refreshed if on File, current folder is refreshed if on folder         &lt;br /&gt;- Removed (Beta) from name in window title         &lt;br /&gt;- Moved &amp;quot;SharePoint Explorer&amp;quot; from &amp;quot;View&amp;quot; menu to &amp;quot;Tools&amp;quot; menu, more appropriate place         &lt;br /&gt;- Option on site &amp;quot;Show all folders and files&amp;quot;. Normally there is a list of hidden folders, but this also hides files you migh         &lt;br /&gt;&amp;#160; want to edit like files in the forms folders of lists         &lt;br /&gt;- Removed adding list of webs to a site, gave an error and sites were never added. All sites must be added explicitly         &lt;br /&gt;&amp;#160; using &amp;quot;connect...&amp;quot;. I think it is also better this way.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;Note that the download version is named version 2.3, but internally this is version 2.2. I messed up with the numbering.&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/li&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7097217" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx">SPDevExplorer</category></item><item><title>SPDevExplorer 2.1 – edit SharePoint content from within Visual studio (3)</title><link>http://weblogs.asp.net/soever/archive/2009/05/23/spdevexplorer-2-1-edit-sharepoint-content-from-within-visual-studio-3.aspx</link><pubDate>Sat, 23 May 2009 01:07:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7095060</guid><dc:creator>svdoever</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7095060</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/05/23/spdevexplorer-2-1-edit-sharepoint-content-from-within-visual-studio-3.aspx#comments</comments><description>&lt;p&gt;I did a lot of additional bugfixing and enhancements on SPDevExplorer. Resulted in version 2.1 of SPDevExplorer. Download bin + sources at &lt;a title="http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799" href="http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799"&gt;http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799&lt;/a&gt;. Let me know if you find any issues.&lt;/p&gt;  &lt;p&gt;See &lt;a title="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx" href="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx"&gt;http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx&lt;/a&gt; for all myposts on SPDevExplorer. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Modifications by Serge van den Oever [Macaw]:      &lt;br /&gt;============================================ &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Version 2.1:      &lt;br /&gt;- Fixed a bug where subnodes were not rendered when enabling/disabling &amp;quot;Show all folders and files&amp;quot;       &lt;br /&gt;- When loading a site, the site node now directly expands       &lt;br /&gt;- Refresh on site gave &amp;quot;Not implemented&amp;quot;, it now works       &lt;br /&gt;- Removed SharePoint Settings and SharePoint COntents options on folders. Gave a &amp;quot;Not implemented&amp;quot;       &lt;br /&gt;&amp;#160; message, and I don't see a use for them       &lt;br /&gt;- Add New/File, New/Folder, Get/Files, Get/Files recursive also to the Site node, to be able to do this       &lt;br /&gt;&amp;#160; on the root of the site as well       &lt;br /&gt;- Changed Checkin to Check In, and Checkout to Check Out to be consistent with SharePoint Designer       &lt;br /&gt;- Disable Publish if publishing not enabled on library       &lt;br /&gt;- Show Publish only if file is Checked In       &lt;br /&gt;- If Checked Out, show Check In with the user that has file currently checked out       &lt;br /&gt;- Added Rename on files and folders to folder and file context menu       &lt;br /&gt;- Added consistent short cuts for all context menu entries       &lt;br /&gt;- WSP install.bat script: added -force on deploysolution so it can be executed if solution already installed       &lt;br /&gt;- Removed Site &amp;amp; System, folder with log files and contente types. Do content types through WebUI, use other tool for log files       &lt;br /&gt;- Fixed &amp;quot;Check Out&amp;quot; visualization of files in root of site &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1" face="Courier New"&gt;Version 2.0:      &lt;br /&gt;- Converted the project into a Visual Studio 2008 project       &lt;br /&gt;- Changed spelling error Domin into Domain       &lt;br /&gt;- Generated a strong key for the SPDevExplorer.Solution project. I got an error when installing the WSP rthat assembly was not strong-signed.       &lt;br /&gt;- Cookies were retrieved on an empty cookies object, this lead to a object not found exception       &lt;br /&gt;- Several changes to make sure that https is supported by changing the UI that full path is shown in tree.       &lt;br /&gt;&amp;#160; You now see &lt;/font&gt;&lt;a href="https://mysite"&gt;&lt;font size="1" face="Courier New"&gt;https://mysite&lt;/font&gt;&lt;/a&gt;&lt;font size="1" face="Courier New"&gt; instead of just mysite.      &lt;br /&gt;- Added &amp;quot;Explore working folder...&amp;quot; on site, so the cache on the local file system can be found. Want to turn       &lt;br /&gt;&amp;#160; this into a feature to add files to the cache folders and be able to add these additional files.       &lt;br /&gt;- Added &amp;quot;Show info...&amp;quot; on files and folders, shows the cached xml info on the folder/file       &lt;br /&gt;- On delete file/folder, ask for confirmation       &lt;br /&gt;- On delete file/folder, refresh parent view to make sure it is correct again, make next node current, if not exist previous node       &lt;br /&gt;- Made keyboard interaction working, KeyPress was used, didn't work, now using KeyUp       &lt;br /&gt;- Del on keyboard now works correctly for deleting files/directories       &lt;br /&gt;- F5 on keyboard added for refresh. Parent folder is refreshed if on File, current folder is refreshed if on folder       &lt;br /&gt;- Removed (Beta) from name in window title       &lt;br /&gt;- Moved &amp;quot;SharePoint Explorer&amp;quot; from &amp;quot;View&amp;quot; menu to &amp;quot;Tools&amp;quot; menu, more appropriate place       &lt;br /&gt;- Option on site &amp;quot;Show all folders and files&amp;quot;. Normally there is a list of hidden folders, but this also hides files you migh       &lt;br /&gt;&amp;#160; want to edit like files in the forms folders of lists       &lt;br /&gt;- Removed adding list of webs to a site, gave an error and sites were never added. All sites must be added explicitly       &lt;br /&gt;&amp;#160; using &amp;quot;connect...&amp;quot;. I think it is also better this way.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7095060" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx">SPDevExplorer</category></item><item><title>SPDevExplorer – edit SharePoint content from within Visual studio (2)</title><link>http://weblogs.asp.net/soever/archive/2009/05/23/spdevexplorer-edit-sharepoint-content-from-within-visual-studio-2.aspx</link><pubDate>Fri, 22 May 2009 22:34:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7095004</guid><dc:creator>svdoever</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7095004</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/05/23/spdevexplorer-edit-sharepoint-content-from-within-visual-studio-2.aspx#comments</comments><description>&lt;p&gt;I recorded a video on installing and using the SharePoint Developer Explorer. See &lt;a href="http://weblogs.asp.net/soever/archive/2009/05/22/spdevexplorer-edit-sharepoint-content-from-within-visual-studio-1.aspx" target="_blank"&gt;my first post&lt;/a&gt; for information on location for download and last changes. If the video below does not show follow &lt;a href="http://www.screencast.com/t/dw2I6ay9oqv" target="_blank"&gt;this link&lt;/a&gt; to the video file.&lt;/p&gt;  &lt;p&gt;See &lt;a title="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx" href="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx"&gt;http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx&lt;/a&gt; for all myposts on SPDevExplorer. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;object name="Video" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject"  width="1024" height="833"&gt; &lt;param name="url" value="http://content.screencast.com/users/svdoever/folders/Default/media/c1e3bc37-df67-4337-a687-98d7d672dc5a/SPDevExplorer.wmv"&gt;&lt;/param&gt; &lt;param name="AutoStart" value="0"&gt;&lt;/param&gt; &lt;param name="ShowControls" value="true"&gt;&lt;/param&gt; &lt;param name="uiMode" value="full"&gt;&lt;/param&gt; &lt;param name="playCount" value="1"&gt;&lt;/param&gt; &lt;param name="CurrentPosition" value="0"&gt;&lt;/param&gt; &lt;embed name="Video" type="application/x-mplayer2" src="http://content.screencast.com/users/svdoever/folders/Default/media/c1e3bc37-df67-4337-a687-98d7d672dc5a/SPDevExplorer.wmv" autoStart="0" showcontrols="1" uimode="full" playcount="1" currentposition="0" width="1024" height="833"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7095004" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx">SPDevExplorer</category></item><item><title>SPDevExplorer – edit SharePoint content from within Visual studio (1)</title><link>http://weblogs.asp.net/soever/archive/2009/05/22/spdevexplorer-edit-sharepoint-content-from-within-visual-studio-1.aspx</link><pubDate>Fri, 22 May 2009 00:03:40 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7094418</guid><dc:creator>svdoever</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7094418</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/05/22/spdevexplorer-edit-sharepoint-content-from-within-visual-studio-1.aspx#comments</comments><description>&lt;p&gt;There is a great project &lt;a href="http://SPDevExplorer.codeplex.com"&gt;http://SPDevExplorer.codeplex.com&lt;/a&gt; by &lt;a href="http://blog.thekid.me.uk" target="_blank"&gt;TheKid&lt;/a&gt; that allows you to edit SharePoint content from within Visual studio. This is especially handy when creating SharePoint Publishing sites where you are editing master pages and page layouts. Most people do this in SharePoint designer, hating the fact that SharePoint Designer messes with your code and sometimes locks files mysteriously. SPDevExplorer allows you to do this using Visual Studio using the great Visual Studio editor.&lt;/p&gt;  &lt;p&gt;See &lt;a title="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx" href="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx"&gt;http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx&lt;/a&gt; for all myposts on SPDevExplorer. &lt;/p&gt;  &lt;p&gt;The release on codeplex is a bit old and had some issues so I decided to dive into the code and solve some issues. I published my first updated version as an Issue on the project, because that allowed me to add attachments. See &lt;a title="http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799" href="http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799"&gt;http://spdevexplorer.codeplex.com/WorkItem/View.aspx?WorkItemId=7799&lt;/a&gt; for the updated version. Both binaries and source code included.&lt;/p&gt;  &lt;p&gt;The biggest changes I made:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Https is now supported &lt;/li&gt;    &lt;li&gt;It is now possible to see and edit all files      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I solved the following issues:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Converted the project into a Visual Studio 2008 project &lt;/li&gt;    &lt;li&gt;Changed spelling error Domin into Domain, make some other texts consistant &lt;/li&gt;    &lt;li&gt;Generated a strong key for the SPDevExplorer.Solution project. I got an error when installing the WSP rthat assembly was not strong-signed. &lt;/li&gt;    &lt;li&gt;Cookies were retrieved on an empty cookies object, this lead to a object not found exception &lt;/li&gt;    &lt;li&gt;Several changes to make sure that https is supported by changing the UI that full path is shown in tree &lt;/li&gt;    &lt;li&gt;You now see https://mysite instead of just mysite. &lt;/li&gt;    &lt;li&gt;Added &amp;quot;Explore working folder...&amp;quot; on site, so the cache on the local file system can be found. Want to turn this into a feature to add files to the cache folders and be able to add these additional files. &lt;/li&gt;    &lt;li&gt;Added &amp;quot;Show info...&amp;quot; on files and folders, shows the cached xml info on the folder/file &lt;/li&gt;    &lt;li&gt;On delete file/folder, ask for confirmation &lt;/li&gt;    &lt;li&gt;On delete file/folder, refresh parent view to make sure it is correct again, make next node current, if not exist previous node &lt;/li&gt;    &lt;li&gt;Made keyboard interaction working, KeyPress was used, didn't work, now using KeyUp &lt;/li&gt;    &lt;li&gt;Del on keyboard now works correctly for deleting files/directories &lt;/li&gt;    &lt;li&gt;F5 on keyboard added for refresh. Parent folder is refreshed if on File, current folder is refreshed if on folder &lt;/li&gt;    &lt;li&gt;Removed (Beta) from name in window title &lt;/li&gt;    &lt;li&gt;Moved &amp;quot;SharePoint Explorer&amp;quot; from &amp;quot;View&amp;quot; menu to &amp;quot;Tools&amp;quot; menu, more appropriate place &lt;/li&gt;    &lt;li&gt;Option on site &amp;quot;Show all folders and files&amp;quot;. Normally there is a list of hidden folders, but this also hides files you might want to edit like files in the forms folders of lists &lt;/li&gt;    &lt;li&gt;Removed adding list of webs to a site, gave an error and sites were never added. All sites must be added explicitly using &amp;quot;connect...&amp;quot;. I think it is also better this way. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In a &lt;a href="http://weblogs.asp.net/soever/archive/2009/05/23/spdevexplorer-edit-sharepoint-content-from-within-visual-studio-2.aspx" target="_blank"&gt;next post&lt;/a&gt; I will show some of the features of this great tool (video).&lt;/p&gt;  &lt;p&gt;Note that it is not possible edit the web parts in web part pages with this tool (web parts are not part of the page), and that it is not possible to edit pages in the Pages document library, the actual content is managed in the meta data of the connected content type.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7094418" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://weblogs.asp.net/soever/archive/tags/SPDevExplorer/default.aspx">SPDevExplorer</category></item><item><title>LiveWriter finally working again with my weblogs.asp.net blog!</title><link>http://weblogs.asp.net/soever/archive/2009/05/05/livewriter-finally-working-again-with-my-weblogs-asp-net-blog.aspx</link><pubDate>Mon, 04 May 2009 23:34:28 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7072629</guid><dc:creator>svdoever</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7072629</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/05/05/livewriter-finally-working-again-with-my-weblogs-asp-net-blog.aspx#comments</comments><description>&lt;p&gt;Thanks to Joe Cheng who was so kind to respond to my &lt;a href="http://weblogs.asp.net/soever/archive/2009/04/10/help-windows-livewriter-not-working-anymore-against-http-weblogs-asp-net.aspx" target="_blank"&gt;previous post&lt;/a&gt; on the topic I finally have LiveWriter working again against my blog.&lt;/p&gt;  &lt;p&gt;The metablog handler needs to be: &lt;a href="http://weblogs.asp.net/metablog.ashx"&gt;http://weblogs.asp.net/metablog.ashx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the past this was: &lt;a href="http://weblogs.asp.net/blogs/metablog.ashx"&gt;http://weblogs.asp.net/blogs/metablog.ashx&lt;/a&gt;, and it was changed without notification! At least I didn’t receive one!&lt;/p&gt;  &lt;p&gt;Joe, thanks again! Time to get blogging again!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7072629" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Macaw Vision on SharePoint Release Management</title><link>http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx</link><pubDate>Wed, 29 Apr 2009 22:38:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7065241</guid><dc:creator>svdoever</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7065241</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx#comments</comments><description>&lt;p&gt;Developing SharePoint solutions is fun, especially with our Macaw Solutions Factory because we have all the tools to go from development to test to acceptation and to production. But then you want to make a modification to your version 1.0 SharePoint solution. How do you do that? We know how... with our Site Management Tool which is part of the Macaw solutions factory! Read all about our vision and concepts in the blogpost by my collegue &lt;a href="http://vincenth.net" target="_blank" mce_href="http://vincenth.net"&gt;Vincent hoogendoorn&lt;/a&gt;. Read &lt;a href="http://vincenth.net/blog/archive/2009/04/28/macaw-vision-on-sharepoint-release-management.aspx" target="_blank" mce_href="http://vincenth.net/blog/archive/2009/04/28/macaw-vision-on-sharepoint-release-management.aspx"&gt;Macaw Vision on SharePoint Release Management&lt;/a&gt; and let us know what you think of it.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Posts available so far on the Macaw Solutions Factory:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx"&gt;Factory Vision, Part 1: Introducing the Macaw Solutions Factory&lt;/a&gt;&lt;/span&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx"&gt;Factory Overview, Part 1: A Bird’s Eye View of the Macaw Solutions Factory&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx"&gt;Macaw Vision on SharePoint Release Management&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p mce_keep="true"&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;And if you are interested, tracks us on:&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Weblog Serge van den Oever: &lt;a href="http://weblogs.asp.net/soever" target="_blank" mce_href="http://weblogs.asp.net/soever"&gt;http://weblogs.asp.net/soever&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Twitter Serge van den Oever: &lt;a href="http://www.twitter.com/svdoever" target="_blank" mce_href="http://www.twitter.com/svdoever"&gt;http://www.twitter.com/svdoever&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Weblog Vincent Hoogendoorn: &lt;a href="http://vincenth.net" target="_blank" mce_href="http://vincenth.net"&gt;http://vincenth.net&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Twitter Vincent Hoogendoorn: &lt;a href="http://www.twitter.com/vincenth_net%20" target="_blank" mce_href="http://www.twitter.com/vincenth_net "&gt;http://www.twitter.com/vincenth_net &lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7065241" width="1" height="1"&gt;</description></item><item><title>Factory Overview, Part 1: A Bird’s Eye View of the Macaw Solutions Factory</title><link>http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx</link><pubDate>Wed, 29 Apr 2009 21:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7065150</guid><dc:creator>svdoever</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7065150</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx#comments</comments><description>&lt;p&gt;A very interesting and extensive overview of our Macaw Solutions Factory has just been published by my collegue &lt;a href="http://vincenth.net" target="_blank" mce_href="http://vincenth.net"&gt;Vincent hoogendoorn&lt;/a&gt;. It is our first installment in our &amp;quot;Macaw Solutions Factory Overview&amp;quot; blogpost series: &lt;a href="http://vincenth.net/blog/archive/2009/04/24/factory-overview-part-1-a-bird%E2%80%99s-eye-view-of-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://vincenth.net/blog/archive/2009/04/24/factory-overview-part-1-a-bird’s-eye-view-of-the-macaw-solutions-factory.aspx"&gt;Factory Overview, Part 1: A Bird’s Eye View of the Macaw Solutions Factory&lt;/a&gt;. This blog post touches on all the work I have been doing in the last years. Check it out, I think it is impressive, and it gives a real look into the kitchen on how our company and our customers are doing software projects. We will continue with a lot more posts, for example on how we do end-to-end SharePoint development with the Macaw Solutions Factory.&lt;/p&gt;  &lt;p&gt;The post also describes one of the tools I open-sourced lately: the &lt;a href="http://www.codeplex.com/CCNetBuildStation" mce_href="http://www.codeplex.com/CCNetBuildStation"&gt;CruiseControl.NET Build Station&lt;/a&gt;. This is a &amp;quot;local build server&amp;quot; running in a Windows Forms application that you can use on your local machine to do builds of your current code tree, and on the code tree as available in source control.&lt;/p&gt;  &lt;p&gt;&lt;img title="CruiseControl.Net Build Station" height="480" alt="CruiseControl.Net Build Station" src="http://vincenth.net/blog/wp-content/uploads/042409_1526_FactoryOver21.png" width="1259" align="left" mce_src="http://vincenth.net/blog/wp-content/uploads/042409_1526_FactoryOver21.png" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Posts available so far on the Macaw Solutions Factory:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx"&gt;Factory Vision, Part 1: Introducing the Macaw Solutions Factory&lt;/a&gt;&lt;/span&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx"&gt;Factory Overview, Part 1: A Bird’s Eye View of the Macaw Solutions Factory&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx"&gt;Macaw Vision on SharePoint Release Management&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p mce_keep="true"&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;And if you are interested, tracks us on:&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Weblog Serge van den Oever: &lt;a href="http://weblogs.asp.net/soever" target="_blank" mce_href="http://weblogs.asp.net/soever"&gt;http://weblogs.asp.net/soever&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Twitter Serge van den Oever: &lt;a href="http://www.twitter.com/svdoever" target="_blank" mce_href="http://www.twitter.com/svdoever"&gt;http://www.twitter.com/svdoever&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Weblog Vincent Hoogendoorn: &lt;a href="http://vincenth.net" target="_blank" mce_href="http://vincenth.net"&gt;http://vincenth.net&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Twitter Vincent Hoogendoorn: &lt;a href="http://www.twitter.com/vincenth_net%20" target="_blank" mce_href="http://www.twitter.com/vincenth_net "&gt;http://www.twitter.com/vincenth_net &lt;/a&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7065150" width="1" height="1"&gt;</description></item><item><title>Factory Vision, Part 1: Introducing the Macaw Solutions Factory</title><link>http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx</link><pubDate>Fri, 17 Apr 2009 23:05:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7049197</guid><dc:creator>svdoever</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7049197</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx#comments</comments><description>&lt;p mce_keep="true"&gt;We finally started our public &amp;quot;comming out&amp;quot; on a project we are working on for few years already: the Macaw Solutions Factory.&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;Vincent just posted the first installment in our &amp;quot;Macaw Solutions Factory Vision&amp;quot; blogpost series: &lt;a href="http://vincenth.net/blog/archive/2009/04/07/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://vincenth.net/blog/archive/2009/04/07/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx"&gt;Factory Vision, Part 1: Introducing the Macaw Solutions Factory&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;We are very interested in your feedback.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Posts available so far on the Macaw Solutions Factory:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/18/factory-vision-part-1-introducing-the-macaw-solutions-factory.aspx"&gt;Factory Vision, Part 1: Introducing the Macaw Solutions Factory&lt;/a&gt;&lt;/span&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/29/factory-overview-part-1-a-bird-s-eye-view-of-the-macaw-solutions-factory.aspx"&gt;Factory Overview, Part 1: A Bird’s Eye View of the Macaw Solutions Factory&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx" target="_blank" mce_href="http://weblogs.asp.net/soever/archive/2009/04/30/macaw-vision-on-sharepoint-release-management.aspx"&gt;Macaw Vision on SharePoint Release Management&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p mce_keep="true"&gt;&lt;span style="font-size: 10pt; font-family: &amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;"&gt;And if you are interested, tracks us on:&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Weblog Serge van den Oever: &lt;a href="http://weblogs.asp.net/soever" target="_blank" mce_href="http://weblogs.asp.net/soever"&gt;http://weblogs.asp.net/soever&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Twitter Serge van den Oever: &lt;a href="http://www.twitter.com/svdoever" target="_blank" mce_href="http://www.twitter.com/svdoever"&gt;http://www.twitter.com/svdoever&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Weblog Vincent Hoogendoorn: &lt;a href="http://vincenth.net" target="_blank" mce_href="http://vincenth.net"&gt;http://vincenth.net&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Twitter Vincent Hoogendoorn: &lt;a href="http://www.twitter.com/vincenth_net%20" target="_blank" mce_href="http://www.twitter.com/vincenth_net "&gt;http://www.twitter.com/vincenth_net &lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7049197" width="1" height="1"&gt;</description></item><item><title>Help: Windows LiveWriter not working anymore against http://weblogs.asp.net?</title><link>http://weblogs.asp.net/soever/archive/2009/04/10/help-windows-livewriter-not-working-anymore-against-http-weblogs-asp-net.aspx</link><pubDate>Fri, 10 Apr 2009 15:17:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7040341</guid><dc:creator>svdoever</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7040341</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/04/10/help-windows-livewriter-not-working-anymore-against-http-weblogs-asp-net.aspx#comments</comments><description>&lt;P&gt;I almost stopped blogging because Windows Livewriter stopped working against my &lt;A href="http://weblogs.asp.net/"&gt;&lt;FONT color=#669966&gt;http://weblogs.asp.net&lt;/FONT&gt;&lt;/A&gt; account on three different platforms.&lt;/P&gt;
&lt;P&gt;I get the following error when trying to post with LiveWriter: &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;The response to the metaWeblog.newPost method received from the weblog server was invalid: &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Invalid response document returned from XmlRpc server&lt;/FONT&gt; 
&lt;P&gt;or when I am logged in on the administration part of the web site and try to post using LiveWriter: 
&lt;P&gt;&lt;FONT color=#0000ff&gt;An unexpected error has occurred while attempting to log in: &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Invalid Server Response - The response to the blogger.getUsersBlogs method received from the weblog server was invalid: &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Invalid response document returned from XmlRpc server&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Do others experience problems as well? Does anyone know a solution?&lt;/P&gt;
&lt;P&gt;Regards, Serge&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7040341" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/.NET/default.aspx">.NET</category></item><item><title>PowerShell: Return values from a function through reference parameters</title><link>http://weblogs.asp.net/soever/archive/2009/03/26/powershell-return-values-from-a-function-through-reference-parameters.aspx</link><pubDate>Thu, 26 Mar 2009 09:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7003526</guid><dc:creator>svdoever</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=7003526</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/03/26/powershell-return-values-from-a-function-through-reference-parameters.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;PowerShell has a special [ref] keyword to specify which parameters are used in a fuction to return values. It's usage is not directly clear however. &lt;/P&gt;
&lt;P mce_keep="true"&gt;If the&amp;nbsp;type of the variable to update is a value type, use the [ref] keyword in the declaration of the function parameter, this specifies that a "pointer" to the variable will be passed.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To pass the "pointer" to the variable, use ([ref]$variable) to create the pointer, and pass this as parameter. To set the value of the value variable pointed to by the "pointer", use the .Value field.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Simple example to show what [ref] does:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New" size=2&gt;C:\Program Files\PowerGUI&amp;gt; $zz = "hoi"&lt;BR&gt;C:\Program Files\PowerGUI&amp;gt; $xz = [ref]$zz&lt;BR&gt;C:\Program Files\PowerGUI&amp;gt; $xz&lt;BR&gt;Value &lt;BR&gt;----- &lt;BR&gt;hoi &lt;/P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;
&lt;P&gt;C:\Program Files\PowerGUI&amp;gt; $xz.Value = "dag"&lt;BR&gt;C:\Program Files\PowerGUI&amp;gt; $zz&lt;BR&gt;dag&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;
&lt;P mce_keep="true"&gt;This is only required for value types, not is the type is a referece type like for example Hashtable.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Some sample code:&lt;/P&gt;
&lt;P mce_keep="true"&gt;function fn&lt;BR&gt;{&lt;BR&gt;param&lt;BR&gt;(&lt;BR&gt;[ref]$arg1,&lt;BR&gt;[ref]$arg2,&lt;BR&gt;$arg3&lt;BR&gt;)&lt;BR&gt;&lt;BR&gt;$arg1.Value = 1&lt;BR&gt;$arg2.Value = "overwrite"&lt;BR&gt;$arg3.key = "overwrite hash value" &lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;$x = 0&lt;BR&gt;$y = "original"&lt;BR&gt;$z = @{"key" = "original hashvalue"}&lt;BR&gt;$x&lt;BR&gt;$y&lt;BR&gt;$z.key&lt;BR&gt;fn -arg1 ([ref]$x) -arg2 ([ref]$y) -arg3 $z&lt;BR&gt;$x &lt;BR&gt;$y&lt;BR&gt;$z.key&lt;BR&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7003526" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/soever/archive/tags/PowerShell/default.aspx">PowerShell</category></item><item><title>Presentation on the Business Productivity Online Suite as given at DIWUG</title><link>http://weblogs.asp.net/soever/archive/2009/02/18/presentation-on-the-business-productivity-online-suite-as-given-at-diwug.aspx</link><pubDate>Wed, 18 Feb 2009 09:06:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6914095</guid><dc:creator>svdoever</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/soever/rsscomments.aspx?PostID=6914095</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/02/18/presentation-on-the-business-productivity-online-suite-as-given-at-diwug.aspx#comments</comments><description>&lt;P&gt;Yesterday evening I gave a presentation on the &lt;A href="http://www.microsoft.com/resources/Technet/en-us/MSOnline/bpos/index.html?page=html%2F99d9ede5-ce15-476c-9a3f-d42a481d287e.htm" target=_blank&gt;&lt;FONT color=#0000ff&gt;Business Productivity Online Suite&lt;/FONT&gt;&lt;/A&gt; (BPOS)&amp;nbsp;for the &lt;A href="http://www.diwug.nl/" target=_blank&gt;&lt;FONT color=#0000ff&gt;DIWUG&lt;/FONT&gt;&lt;/A&gt;. The session was hosted by &lt;A href="http://www.sparked.nl/" target=_blank&gt;&lt;FONT color=#0000ff&gt;Sparked&lt;/FONT&gt;&lt;/A&gt; in Amsterdam.&lt;/P&gt;
&lt;P&gt;I uploaded the presentation at my &lt;A href="http://cid-0ddc65de8785e94e.skydrive.live.com/self.aspx/Public/mpdc-bpos%20-%20DIWUG20090217.pdf" target=_blank&gt;&lt;FONT color=#0000ff&gt;skydrive&lt;/FONT&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The presentation starts with a general introduction to BPOS. It then zooms in on the features of SharePoint Online and gives some ideas on how you could integrate Silverlight applications with BPOS.&lt;/P&gt;
&lt;P&gt;Part of the presentation is in Dutch, but I think most of the presentation can be understood by English readers as well because most computer related terms are in English.&lt;/P&gt;
&lt;P&gt;Interesting links when starting developing for BPOS:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.technet.com/msonline/default.aspx" target=_blank&gt;&lt;FONT color=#0000ff&gt;Blog by the Microsoft Online team&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d007f35e-375c-4b11-bc40-bc9082bb224a&amp;amp;displaylang=en" target=_blank&gt;&lt;FONT color=#0000ff&gt;Microsoft SharePoint Online Standard Developer Guide&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;EU regulations:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=66e299ec-d1b6-426e-9653-95f4b5811b91&amp;amp;DisplayLang=en" target=_blank&gt;&lt;FONT color=#0000ff&gt;Microsoft white-paper on EU privacy&lt;/FONT&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6914095" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item></channel></rss>