<?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>Fun: Quoted on SharePoint 2010 Development with Visual Studio in InfoWorld Article</title><link>http://weblogs.asp.net/soever/archive/2009/11/18/fun-quoted-on-sharepoint-2010-development-with-visual-studio-in-infoworld-article.aspx</link><pubDate>Wed, 18 Nov 2009 18:25:25 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7259432</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=7259432</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/11/18/fun-quoted-on-sharepoint-2010-development-with-visual-studio-in-infoworld-article.aspx#comments</comments><description>&lt;p&gt;When I was at the SharePoint Conference 2009 in Vegas I was sitting in the hallway working on my little white Mac Book writing a blog post on SharePoint 2010 when a guy passed by. “Can I ask you some questions?” “Sure”, I said. “If I did anything with SharePoint?” he asked me… Ok, sitting with a Mac on a Microsoft conference can be strange, but hey: VMware Fusion did let me run the Technical Preview of SharePoint 2010 on my little Mac Book with 4GB, which couldn’t be said of my Dell running Windows XP at the time, not supporting 64 bits virtualization with Microsoft tools. We talked for a few minutes, he made some audio recordings, and off he was.&lt;/p&gt;  &lt;p&gt;It resulted in a nice article in InfoWorld with some quotes by “van den Oever”. Never knew I said such smart things;-)&lt;/p&gt;  &lt;p&gt;Read it at &lt;a title="http://www.infoworld.com/d/developer-world/why-developers-sharepoint-2010-224" href="http://www.infoworld.com/d/developer-world/why-developers-sharepoint-2010-224"&gt;http://www.infoworld.com/d/developer-world/why-developers-sharepoint-2010-224&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;And…. when you want the just release public beta of SharePoint 2010, download it:&lt;/p&gt;  &lt;h3 align="center"&gt;&lt;a href="http://bit.ly/AD2010"&gt;HERE!&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;This link is provided by Microsoft The Netherlands to a group of people called the “Wave 14” ambassadors. We have a small competition between the ambassadors: the one who gets the most clicks gets an XBox!! So help me out, click it… often! And I will make sure that I blog a lot about SharePoint 2010!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7259432" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>The bear goes loose: Office 2010 public beta link (includes SharePoint 2010!)</title><link>http://weblogs.asp.net/soever/archive/2009/11/18/the-bear-goes-loose-office-2010-public-beta-link-includes-sharepoint-2010.aspx</link><pubDate>Wed, 18 Nov 2009 18:00:59 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7259405</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=7259405</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/11/18/the-bear-goes-loose-office-2010-public-beta-link-includes-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;An old Dutch phrase… translated into bad English! But it is going to happen: the first public beta of the Office tools… including: SharePoint 2010!&lt;/p&gt;  &lt;p&gt;And where can you download it… I know it… download it &lt;/p&gt;  &lt;h1 align="center"&gt;&lt;a href="http://bit.ly/AD2010"&gt;HERE!&lt;/a&gt;&lt;/h1&gt;  &lt;p align="left"&gt;This link is provided by Microsoft The Netherlands to a group of people called the “Wave 14” ambassadors. We have a small competition between the ambassadors: the one who gets the most clicks gets an XBox!! So help me out, click it… often! And I will make sure that I blog a lot about SharePoint 2010!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7259405" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint 2010: #SPC09 - SSP is dead, long live Service Applications!</title><link>http://weblogs.asp.net/soever/archive/2009/10/20/sharepoint-2010-spc09-ssp-is-dead-long-live-service-applications.aspx</link><pubDate>Tue, 20 Oct 2009 17:38:29 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7234017</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=7234017</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/20/sharepoint-2010-spc09-ssp-is-dead-long-live-service-applications.aspx#comments</comments><description>Notes from the SharePoint Conference 2009 session "Introduction to Service Applications and Topology". This is my personal interpretation of what has been said during the presentation. Don't shoot me if I interpreted something wrong:-)&lt;br /&gt;&lt;br /&gt;In SharePoint 2010 Shared Service Providers (SSP's) are replaced by Service Applications. Services are no longer combined into a SSP. Services are running independent as a service application.&lt;br /&gt;&lt;br /&gt;So in MOSS 2007:&lt;br /&gt;SSP: combines services like Search, Excel Services, User Profiles, ... into a shared service provider.&lt;br /&gt;&lt;br /&gt;In SharePoint 2010:&lt;br /&gt;Service Applications: services like Search, Managed Meta Data, .., your service (20 services in SharePoint Server) are running "unboxed" and independent.&lt;br /&gt;&lt;br /&gt;So SharePoint 2010 provides a la carte unboxed services. You can configure which services are running on an application server. Per web application you can configure which services are consumed. &lt;br /&gt;&lt;br /&gt;When migrating MOSS 2007 to SharePoint 2010 SSPs will upgrade into Service Applications.&lt;br /&gt;&lt;br /&gt;SharePoint Foundation 2010 (WSS 4.0) provides the SharePoint Service Application Framework.&lt;br /&gt;New products like Office Web Apps, Project Server, Gemini (PowerPivot) use this application framework, and this platform can also be used by third parties or you to create custom services.&lt;br /&gt;You can plug your management UI for your service into the Service Management page.&lt;br /&gt;&lt;br /&gt;A web application does not communicate directly to a service application, but does this through a proxy:&lt;br /&gt; Web Application &amp;lt;-&amp;gt; Service Application Proxy &amp;lt;-&amp;gt; Service Application&lt;br /&gt; &lt;br /&gt; So a general workflow can be: &lt;br /&gt;Browser -&amp;gt; Web Front End -&amp;gt;(Request) Application Server -&amp;gt;(Result) Web Front End -&amp;gt; Browser&lt;br /&gt; &lt;br /&gt;SharePoint 2010 does contain a fault tolerant round-robin software load balancer with support for hardware load balancing, so it is possible to have multiple application servers.&lt;br /&gt; &lt;br /&gt;The Service Application infrastructure provides application isolation: each service application can use separate databases if needed and optionally run in separate app pool. There is support for multiple service apps for a service with different accounts and databases ==&amp;gt; Great for multi-tenancy (hosting for multiple customers on same platform)&lt;br /&gt;&lt;br /&gt;Services are flexible, secure and provide cross-farm federation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Trust based security between farms, claims based authorization within the farm&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Share to anyone, consume from anywhere&lt;/li&gt;&lt;li&gt;WCF based web services for communication&lt;/li&gt;&lt;li&gt;No direct DB Access&lt;/li&gt;&lt;/ul&gt;For example: Taxonomy, has cross farm federation. Probably same for content types?&lt;br /&gt;&lt;br /&gt;Administration:&lt;br /&gt;&lt;br /&gt;You can manage which services are running on a server.&lt;br /&gt;In Central Administration UI: list of services, indented under a service you see the proxy.&lt;br /&gt;&lt;br /&gt;Through the wizards you get database names with guids at the end. Better to create manually form Central Administration, or create services through PowerShell.&lt;br /&gt;&lt;br /&gt;Per web application you can configure which services apps you want to be available. By default all web applications use all service applications available. You can change this into a custom configuration. Use the Manage Service Associations page for this.&lt;br /&gt;&lt;br /&gt;Service applications can be published to make them available outside the current farm. It allows you to select the connection type, for example https or net.tcp. Note that there must be a trust relationship with the farm that wants to consume your service. The service is published on a url. Through this url an other farm can find the published services. Url is in the following format: https://myfarm/Topology/topology.svc&lt;br /&gt;&lt;br /&gt;The other farm can connect to your farm through a remote service connection.&lt;br /&gt;&lt;br /&gt;Although manual adminstration and configuration of SharePoint 2010 can be done through Central Admin, the future of SharePoint administration is PowerShell.&lt;br /&gt;&lt;br /&gt;With respect to Services:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Get-SPServiceApplication&lt;/b&gt; returns the set of service applications.&lt;br /&gt;Do &lt;b&gt;Get-SPServiceApplication-name yourservice&lt;/b&gt; to get the service object. Do &lt;b&gt;Get-SPServiceApplication -name yourservice | fl&lt;/b&gt; to see all properties of the service object. &lt;br /&gt;&lt;br /&gt;There are almost a hundred Cmdlets to manage your services.&lt;br /&gt;&lt;br /&gt;Side note: It now really becomes time that all administrators learn PowerShell. In my company (Macaw) we use PowerShell extensively for our Macaw Solutions Factory. Everything from configuration, build and deploy through DTAP is done with PowerShell.&lt;br /&gt;&lt;br /&gt;It is possible to delegate management of a particular service to someone, that person then has only access to that the management UI in Central Administration for that particular service.&lt;br /&gt;&lt;br /&gt;Access security: specified claims principals have access to a service application. By default the "farm claim" has access, but this can be removed ad more detailed claims can be configured for more granular access rights, or example read versus read-write.&lt;br /&gt;&lt;br /&gt;Service applications can spawn their own timer jobs.&lt;br /&gt;&lt;br /&gt;Generally ISV's will build service applications on the SharePoint Service Application Framework, but for large organizations it could be interesting for SI's to create services to specialized functionality and farm-to-farm fedaration .&lt;br /&gt;&lt;br /&gt;For repeatable configuration over your DTAP configuration, use PowerShell to create and manage the services.&lt;br /&gt;&lt;br /&gt;You can create complex farm configurations where farms can share service applications. For example: two farms can share the user profile service.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=9fd6f71c-b612-8dac-a62f-d27862018784" /&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7234017" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Visual Studio and having multiple startup projects</title><link>http://weblogs.asp.net/soever/archive/2009/10/20/visual-studio-and-having-multiple-startup-projects.aspx</link><pubDate>Mon, 19 Oct 2009 22:34:08 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7233331</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=7233331</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/20/visual-studio-and-having-multiple-startup-projects.aspx#comments</comments><description>Never knew this: you can have multiple startup projects in a solution. Was there already in Visual Studio 2005! &lt;br /&gt;&lt;br /&gt;See http://msdn.microsoft.com/en-us/library/ms165413%28VS.80%29.aspx for more info.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=ccd837cc-2a2a-80ce-a8d6-e45c5f2bccdd" /&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7233331" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>SharePoint 2010: Client side JavaScript Object Model Library written in Script#?</title><link>http://weblogs.asp.net/soever/archive/2009/10/20/sharepoint-2010-client-side-javascript-object-model-library-written-in-script.aspx</link><pubDate>Mon, 19 Oct 2009 22:28:35 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7233329</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=7233329</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/20/sharepoint-2010-client-side-javascript-object-model-library-written-in-script.aspx#comments</comments><description>&lt;p&gt;Note: this blog post is based on experiences with the SharePoint 2010 Technical Preview version.&lt;/p&gt;  SharePoint 2010 now extends the object model to the client. A remote object model proxy is available for C# development (including Silverlight) and a Javascript client library which can be found at C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\SP.js, accessible at /_layouts/SP.js.&lt;br /&gt;&lt;br /&gt;I tried to understand what happens in the Javascript code, did some document formatting on it to get it readable. But not really a Javascript wizard myself I didn't really got the hang on it. But when I scrolled to the end of the SP.js file I found the following lines:&lt;br /&gt;&lt;br /&gt;// ---- Do not remove this footer ----&lt;br /&gt;// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)&lt;br /&gt;// -----------------------------------&lt;br /&gt;&lt;br /&gt;Now I understand why some of the code is not that readable: it is generated code. Script# is used for creating the client side object model API!&lt;br /&gt;&lt;br /&gt;Have a look at http://projects.nikhilk.net/ScriptSharp for more info on Script#.&lt;br /&gt;&lt;br /&gt;I never dared to use Script# i a real project going into production, especially because the last version came out in August 2008. But Microsoft does not seem to have a problem with it. The Microsoft team is even running an older version that available for download (version 0.5.1.0).&lt;br /&gt;&lt;br /&gt;As far as I know the Office Web Applications (online Word, Access and PowerPoint) are written with Script# as well. See http://www.nikhilk.net/ScriptSharp-Large-Projects.aspx. So maybe it is time now to really dive into Script#! Anyone dare to it for production code in their projects already?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Disclaimer: All information in this blog post is based on my personal interpretation of information collected at the SharePoint Conference 2009 and experiences with SharePoint 2010 Technical Preview version provided to my company in the PEP program.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=bbe7dcf5-8e7d-81a6-823f-9d5c1641a40b" /&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7233329" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint 2010: Site exporting as WSP solution (Part 1)</title><link>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-site-exporting-as-wsp-solution-part-1.aspx</link><pubDate>Mon, 19 Oct 2009 20:48:40 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7233258</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=7233258</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-site-exporting-as-wsp-solution-part-1.aspx#comments</comments><description>&lt;p&gt;Note: this blog post is based onexperiences with the SharePoint 2010 Technical Preview version.&lt;/p&gt;  &lt;p&gt;In the good old days of SharePoint 2003 and 2007 it was possible to save a site as a template. These sites were saved as &lt;strong&gt;.stp&lt;/strong&gt; files, I assume this acronym stands for &lt;strong&gt;S&lt;/strong&gt;ite&lt;strong&gt;T&lt;/strong&gt;em&lt;strong&gt;P&lt;/strong&gt;late, a non-documented closed format that did not allow for modification in the saved template files. so new sites could be created based on the template. SharePoint 2010 promises the possibility to save a site as a WSP package, the Windows SharePoint Services Package format that we all love in the development of our SharePoint solutions, because it promises seamless deployments through the farm.&lt;/p&gt;  &lt;p&gt;In this series of blog posts I will investigate the power of this new functionality, and take you, the reader, along the way in trying to answer the following questions that directly pop up into my mind:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Is the site really exported as a WSP? And how does it look like at the inside? &lt;/li&gt;    &lt;li&gt;If we create a new site based on the template, do changes to content types at the site collection level propagate to the content types in the new instance of the site template? &lt;/li&gt;    &lt;li&gt;In Moss2007 it was not possible to export a publishing site as a site template. Well, actually you could, but it was not supported. Probably because pages and content a site publishing site depends on, like master pages, pages layouts, the style library and site collection images are managed at the site collection level (in the root site of the site collection). Did this change in 2010, and how is it handled? &lt;/li&gt;    &lt;li&gt;What is exported. The complete configuration of the site, or only changes to the site with respect to the initial site definition? &lt;/li&gt;    &lt;li&gt;Can we learn some new stuff on authoring WSP’s from the generated WSP’s? &lt;/li&gt;    &lt;li&gt;Visual Studio SharePoint Support has a project type “Import SharePoint Solution Package”, what does that do? Can we use the WSP generated by a saved site template? &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ok, let get started. The first steps to execute are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create a site based on the blank site definition &lt;/li&gt;    &lt;li&gt;Export the site &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To showcase some of the new tools in the mean time I will use SharePoint Designer to create our new site:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Connect to the portal, and select the &lt;strong&gt;Subsites&lt;/strong&gt; tab       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_017BC26E.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_6EC95967.png" width="504" height="484" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Create a new site named wspexport based on the Blank Site template      &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_19381B36.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_71942FBC.png" width="581" height="484" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;This brings us a blank site:      &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_6CB40CB1.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_4BC32ABB.png" width="644" height="436" /&gt;&lt;/a&gt;       &lt;br /&gt;To inspect some of the export functionality we create a custom list &lt;strong&gt;MyList &lt;/strong&gt;with a &lt;strong&gt;Title&lt;/strong&gt; and &lt;strong&gt;Description&lt;/strong&gt; field, and a document library &lt;strong&gt;MyDocuments&lt;/strong&gt;. We put some entries in the custom list and add a document to the document library. I assume that everyone knowing something about SharePoint knows how to do this.       &lt;br /&gt;      &lt;br /&gt;Adding a simple Dummy.txt document to the document library:       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_04043285.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_6A9EBFFB.png" width="644" height="364" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;The home page after adding list view web parts for the MyDocuments and MyList:       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_5BF6A4C7.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_11FB23D5.png" width="644" height="346" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;We go back to SharePoint Designer, set the site &lt;strong&gt;Title&lt;/strong&gt; and &lt;strong&gt;Description&lt;/strong&gt; of the site and save as template       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_2A8D51D6.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_65771550.png" width="644" height="380" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Selecting &lt;strong&gt;Save as template&lt;/strong&gt; brings you to the web site where you can specify the template site settings       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_2B8A6315.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_03E6779C.png" width="549" height="484" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;When save as template is done we get to the following screen:       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_6E8B52E4.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_2DEB9726.png" width="644" height="266" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Following the &lt;strong&gt;user solution gallery&lt;/strong&gt; will bring us to the &lt;strong&gt;Solution Gallery&lt;/strong&gt;. This is a location where solutions can be uploaded and downloaded. These solutions can probably be solutions that can include code that will be run in a sandbox. More on this in an upcomming blog post.       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_6698D1E4.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_7C824434.png" width="644" height="274" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Right-click on the &lt;em&gt;WspExportSite&lt;/em&gt; and select &lt;strong&gt;Save Target As… &lt;/strong&gt;to save the WSP file to your location of choice. &lt;/li&gt;    &lt;li&gt;Note that the saved solution can be activated by selecting the arrow next to its name      &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_20AA2F75.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_59C39D28.png" width="407" height="384" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;This concludes the first post in this series. What do we have:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A WSP file on disk based on Blank Site containing a list and a document library &lt;/li&gt;    &lt;li&gt;A solution in our solution gallery ready to be activated &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Disclaimer: All information in this blog post is based on my personal interpretation of information collected at the SharePoint Conference 2009 and experiences with SharePoint 2010 Technical Preview version provided to my company in the PEP program.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7233258" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint 2010: Getting Publishing template working</title><link>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-getting-publishing-template-working.aspx</link><pubDate>Mon, 19 Oct 2009 20:38:13 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7233245</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=7233245</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-getting-publishing-template-working.aspx#comments</comments><description>&lt;p&gt;Note: this post is only relevant for people running the SharePoint 2010 Technology Preview.&lt;/p&gt;  &lt;p&gt;When I create a new site based on the Publishing Portal template you get a .../Pages/Default.aspx page with an error on it. The error seems to be generated by a ContentByQuery web part (the only web part) on the page. Add ?contents=1 to the url (…/Pages/Default.aspx?contents=1):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_46F9DB04.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_6C1ED783.png" width="852" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Check Out the page, remove the web part (Delete, not Close), and your page starts working again.&lt;/p&gt;  &lt;p&gt;Happy Publishing!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_40046B43.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_5B616F99.png" width="1028" height="569" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Disclaimer: All information in this blog post is based on my personal interpretation of information collected at the SharePoint Conference 2009 and experiences with SharePoint 2010 Technical Preview version provided to my company in the PEP program.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7233245" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint 2010: When SQL memory usage keeps growing…</title><link>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-when-sql-memory-usage-keeps-growing.aspx</link><pubDate>Mon, 19 Oct 2009 20:35:06 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7233242</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=7233242</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-when-sql-memory-usage-keeps-growing.aspx#comments</comments><description>&lt;p&gt;After a single machine SharePoint 2010 install using the built in SQL Server Express my machine became really sloooooooow. After checking the processes it became clear that SQL server was eating memory. This is the default behavior of SQL Server.&lt;/p&gt;  &lt;p&gt;I tried to install the SQL Server 2008 Manager Express, but the installation failed. The SQL Server Express provided with SharePoint 2010 seems to be a newer version than the SQL Server 2008 Express version.&lt;/p&gt;  &lt;p&gt;After a long search on the internet I finally found how to set the memory limits for a SQL Server instance through osql.exe.&lt;/p&gt;  &lt;p&gt;First thing to do is to determine which instance you want to limit. One way of doing this is by finding the process ID using the built in Task Manager, and then use the Sysinternals Process Explorer to determining what instance is running under that process ID. On my machine .\SHAREPOINT was good enough for connecting to the SQL Server instance used by SharePoint. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Launch a command prompt &lt;/li&gt;    &lt;li&gt;Start the SQL prompt, connecting to the desired instance (e.g. .\SHAREPOINT) &lt;/li&gt;    &lt;li&gt;osql -E -S SERVERNAME\&amp;lt;INSTANCENAME&amp;gt; &lt;/li&gt;    &lt;li&gt;Execute the following commands to enable setting of advance options:      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;USE master        &lt;br /&gt;EXEC sp_configure 'show advanced options',1         &lt;br /&gt;RECONFIGURE WITH OVERRIDE         &lt;br /&gt;GO         &lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Execute the following commands to set the maximum memory in MB. Replace 200 with your desired setting (I use 200MB):      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;USE master        &lt;br /&gt;EXEC sp_configure 'max server memory (MB)',200         &lt;br /&gt;RECONFIGURE WITH OVERRIDE         &lt;br /&gt;GO         &lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Execute the following commands to disable advanced settings, for safety’s sake:      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;USE master        &lt;br /&gt;EXEC sp_configure 'show advanced options',0         &lt;br /&gt;RECONFIGURE WITH OVERRIDE         &lt;br /&gt;GO         &lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;quit &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Disclaimer: All information in this blog post is based on my personal interpretation of information collected at the SharePoint Conference 2009 and experiences with SharePoint 2010 Technical Preview version provided to my company in the PEP program.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7233242" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>SharePoint 2010: #SPC09 - Notes from the keynote</title><link>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-spc09-notes-from-the-keynote.aspx</link><pubDate>Mon, 19 Oct 2009 20:29:44 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7233239</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=7233239</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/19/sharepoint-2010-spc09-notes-from-the-keynote.aspx#comments</comments><description>&lt;p&gt;Some quick notes I took about things I found interesting from the two keynote speeches of the SharePoint Conference 2009.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Steve Ballmer keynote&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint 2010 Beta release: November 2009 &lt;/li&gt;    &lt;li&gt;SharePoint 2010: RTM in First half 2010 &lt;/li&gt;    &lt;li&gt;Visual Studio Beta 2 released today!! &lt;/li&gt;    &lt;li&gt;SharePoint Designer remains free in the 2010 version &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Versions of SharePoint:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint Foundation 2010&amp;#160; = WSS &lt;/li&gt;    &lt;li&gt;SharePoint 2010 for Intranet Standard &lt;/li&gt;    &lt;li&gt;SharePoint 2010 for Intranet Enterprise &lt;/li&gt;    &lt;li&gt;SharePoint 2010 for Internet Standard &lt;/li&gt;    &lt;li&gt;SharePoint 2010 for Internet Enterprise &lt;/li&gt;    &lt;li&gt;SharePoint Online (for Intranet) &lt;/li&gt;    &lt;li&gt;SharePoint Online for Internet facing sites (yes!) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Jeff Taper keynote&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Code name &lt;em&gt;Gemini &lt;/em&gt;becomes &lt;em&gt;PowerPivot&lt;/em&gt;: 100.000.000 rows in Excel, publish to the server, powered by Analysis Services 2008 R2 (its FAST!!)&lt;/p&gt;  &lt;p&gt;Product names for PowerPivot:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Sql Server PowerPivot for Excel &lt;/li&gt;    &lt;li&gt;Sql Server PowerPivot for SharePoint &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Disclaimer: All information in this blog post is based on my personal interpretation of information collected at the SharePoint Conference 2009 and experiences with SharePoint 2010 Technical Preview version provided to my company in the PEP program.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7233239" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/soever/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Visual Studio: alway run as administrator</title><link>http://weblogs.asp.net/soever/archive/2009/10/07/visual-studio-alway-run-as-administrator.aspx</link><pubDate>Wed, 07 Oct 2009 10:07:59 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7224682</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=7224682</wfw:commentRss><comments>http://weblogs.asp.net/soever/archive/2009/10/07/visual-studio-alway-run-as-administrator.aspx#comments</comments><description>&lt;p&gt;I’m currently developing on a 64 bit Windows Server 2008 R2 that is domain joined, so I log in with my domain account and user access control is enabled. I need to run my Visual Studio as an administrator, because otherwise I get all kind of errors. I can do this by right-clicking on the Visual Studio Icon and select “Run as administrator”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_7C53D8F9.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_224C1A01.png" width="413" height="531" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The problem is: I forget to do this all the time, and I ALWAYS want to run Visual Studio as an administrator.&lt;/p&gt;  &lt;p&gt;You can enable this as follows:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Right-click the Visual Studio icon and select properties &lt;/li&gt;    &lt;li&gt;On the &lt;strong&gt;Shortcut&lt;/strong&gt; tab (the default tab) select Advanced       &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_53DA1847.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_70E2C70F.png" width="381" height="537" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Select &lt;strong&gt;Run as administrator        &lt;br /&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_606A5614.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_0908C21C.png" width="398" height="304" /&gt;&lt;/a&gt;&amp;#160;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Click OK &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;This will work on any program, and on any OS with user access control (Vista, Windows 7, …).&lt;/p&gt;  &lt;p&gt;In order to be able to do this you must be added to the Administrators group on the local machine. If you don’t have the permissions to do this, login with an account that has enough permissions, or login with the local administrator account.&lt;/p&gt;  &lt;p&gt;You can do this in the &lt;strong&gt;Edit local users and groups&lt;/strong&gt; program (Start –&amp;gt; Search programs and files… type &lt;strong&gt;users&lt;/strong&gt;):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/soever/image_267DA3D9.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://weblogs.asp.net/blogs/soever/image_thumb_17D81956.png" width="636" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;When you start up Visual Studio you will always get a warning from User Access Control with the question if you want to allow the program to make changes to your computer. Don’t know if you can prevent this popup.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7224682" 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/Visual+Studio/default.aspx">Visual Studio</category></item><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>7</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>3</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>10</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></channel></rss>