<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-12969685</atom:id><lastBuildDate>Wed, 25 Jan 2012 21:16:06 +0000</lastBuildDate><title>Carsten Keutmann</title><description>Doing SharePoint stuff</description><link>http://keutmann.blogspot.com/</link><managingEditor>noreply@blogger.com (Content)</managingEditor><generator>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CarstenKeutmann" /><feedburner:info uri="carstenkeutmann" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5294053751376027147</guid><pubDate>Wed, 25 Jan 2012 20:46:00 +0000</pubDate><atom:updated>2012-01-25T12:46:59.641-08:00</atom:updated><title>Using the MVP pattern for SharePoint Web Parts Presentation</title><description>&lt;p&gt;I did a webcast presentation for Adelaide SharePoint User Group this Tuesday. However no recording was made, therefore only the PowerPoint and Demo code is available here: &lt;a href="http://www.keutmann.dk/sharepointblog/mvppresentation.zip" target="_blank"&gt;MVPPresentation.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-rlmkqGK8pT8/TyBqQKO4btI/AAAAAAAAAFI/quQWzqY99sY/s1600-h/MVPDiagram%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MVPDiagram" border="0" alt="MVPDiagram" src="http://lh6.ggpht.com/-sxHyGVR75Lk/TyBqQjFTBjI/AAAAAAAAAFM/h6Iv_kdZd70/MVPDiagram_thumb%25255B2%25255D.png?imgmax=800" width="577" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;MVP Pattern rocks for SharePoint!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-5294053751376027147?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/85DKfl8qzL0/using-mvp-pattern-for-sharepoint-web.html</link><author>noreply@blogger.com (Content)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-sxHyGVR75Lk/TyBqQjFTBjI/AAAAAAAAAFM/h6Iv_kdZd70/s72-c/MVPDiagram_thumb%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2012/01/using-mvp-pattern-for-sharepoint-web.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4260104059308066254</guid><pubDate>Thu, 14 Jul 2011 19:38:00 +0000</pubDate><atom:updated>2011-07-14T12:38:36.989-07:00</atom:updated><title>Push changes from the SharePoint Content hub to a SiteCollection</title><description>&lt;p&gt;When working with the Content hub, you may need the content type you just added to the hub, to be pushed out to a specific site collection immediately. This can be done by activating the timer jobs &lt;a href="http://henrikfromsweden.blogspot.com/2009/12/push-changes-from-content-hub.html" target="_blank"&gt;specified here&lt;/a&gt;, or you can just force an activation of the Feature “TaxonomyFieldAdded” on the target SiteCollection.&lt;/p&gt;  &lt;p&gt;The TaxonomyFieldAdded feature is a site scoped and hidden feature, its job is to enable the site as Content hub receiver and sync up with the hub immediately. Therefore a reactivation of the feature will get the latest changes from the Content hub, and do not take a lot of time waiting for the timer jobs to finish.&lt;/p&gt;  &lt;p&gt;PowerShell:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Enable-SPFeature &amp;quot;TaxonomyFieldAdded&amp;quot; -url &amp;quot;&lt;/font&gt;&lt;a href="http://mydomain/mySiteCollection/"&gt;&lt;font face="Courier New"&gt;http://mydomain/mySiteCollection/&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;&amp;quot; –force&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Code: C#&lt;/p&gt; &lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&lt;font face="Courier New"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;             &lt;p&gt;//The FeatureDefinition id of “TaxonomyFieldAdded” is &amp;quot;73ef14b1-13a9-416b-a9b5-ececa2b0604c&amp;quot;. The last “true” is for “Force” feature activation.               &lt;br /&gt;&lt;/p&gt;           &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;site.Features.Add(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; Guid(&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;73ef14b1-13a9-416b-a9b5-ececa2b0604c&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;), &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So this enables the scenario where you can create a Site Feature Receiver that will publish a content type on the content hub, then force the sync to the local site collection and create a list that uses the content type. All within the same receiver and only takes a couple of seconds to execute.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4260104059308066254?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/vhM4OAEFIfc/push-changes-from-sharepoint-content.html</link><author>noreply@blogger.com (Content)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2011/07/push-changes-from-sharepoint-content.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-9024173962850163361</guid><pubDate>Mon, 02 May 2011 17:44:00 +0000</pubDate><atom:updated>2011-05-02T10:54:54.827-07:00</atom:updated><title>My Presentation at SharePoint Saturday in Copenhagen (April 30 / 2011)</title><description>&lt;p&gt;I did a presentation on SharePoint Enterprise Development with lots of code in it.&lt;/p&gt;  &lt;p&gt;For anyone that wants the presentation, you can download it from here &lt;a href="http://www.keutmann.dk/sharepointblog/code.zip"&gt;code.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The zip file contains the PowerPoint presentation and demo code.&lt;/p&gt;  &lt;p&gt;Thank you all for a fantastic SharePoint Saturday in Copenhagen. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-9024173962850163361?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/zesZ7IHAI_0/my-presentation-at-sharepoint-saturday.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2011/05/my-presentation-at-sharepoint-saturday.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-6889236715526815003</guid><pubDate>Sat, 22 Jan 2011 17:21:00 +0000</pubDate><atom:updated>2011-01-22T09:21:56.571-08:00</atom:updated><title>SharePoint Manager 2010 v2 in development</title><description>&lt;p&gt;I’m currently working on a new &lt;a href="http://spm.codeplex.com/releases/view/51438" target="_blank"&gt;version (Alpha)&lt;/a&gt; of the SharePoint Manager 2010 application. This new version will be a much more complete view of the SharePoint object model with data. It is based the look and feel of the “old” version, but done with WPF instead of the GDI+ windows form of the old version. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_zaFXHkTIcJ0/TTsSLznVsXI/AAAAAAAAACw/8Ss7tJXJC1s/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_zaFXHkTIcJ0/TTsSMcpgePI/AAAAAAAAAC0/pSCay4eG34M/image_thumb%5B1%5D.png?imgmax=800" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Because the old version of SPM was done in a rater unplanned manner, the code ended up being a mess and making it harder to update and create new functionality. Therefore I decided to create a new version from the bottom up and do things right from the beginning. This means that the new version supports the MEF (&lt;a href="http://mef.codeplex.com/" target="_blank"&gt;Managed Extensibility Framework 3.5&lt;/a&gt;)&amp;#160; technology from Microsoft. Other applications that supports MEF is Visual Studio 2010 and MEF was included into .NET 4.0, so that shows that the technology is here to stay. MEF is implemented into the core of SPM2010 v2 and therefore enables anyone replace or hook into anything in the application, by just providing there own DLL.&amp;#160; The idea is that this application should be the base for a hole range of tools and functions, that seems as natural part of the application, but is actually just “Add-ins” DLL’s located i the application folder. &lt;/p&gt;  &lt;p&gt;Some of the new features of the v2 will be.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;MEF support for extensibility. &lt;/li&gt;    &lt;li&gt;Hugh increase of SharePoint objects displayed. &lt;/li&gt;    &lt;li&gt;WPF &lt;/li&gt;    &lt;li&gt;Splash screen. &lt;/li&gt;    &lt;li&gt;Check for SharePoint and user rights on start up. &lt;/li&gt;    &lt;li&gt;Improved Xml text editor with color coding. &lt;/li&gt;    &lt;li&gt;A dynamic Settings system. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Things that should have been so good, turns out to the worse.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;WPF is the new presentation framework from Microsoft that will replace the old GDI+ forms technology. This also seems very promising when working directly on the machine, everything still feels quick and snappy. But when using the WPF over a Remote Desktop (RD) the app can slow down because of RD’s lack of support for WPF. Basically RD just transfers the raw bit map when working with WPF where GDI+ is lot faster. Also a major component of SPM2 is the PropertyGrid control that is missing from WPF library and forcing me to include the “old” GDI+ PropertyGrid component into the WPF application, this also slows things down, but on the plus side, at least I known that the PropertyGrid works properly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Join the project team?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The idea of the application is just to provide the basic framework and extend it from there on. Therefore the core team will be kept small, however because of the MEF system, it will be possible to include team members that will provide there own contribution in form of their own DLLs thereby not conflicting with anyone else in the development process. &lt;/p&gt;  &lt;p&gt;So if you like to help out please notify me &lt;a href="mailto:carsten@keutmann.dk"&gt;carsten@keutmann.dk&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Documentation for extending the application      &lt;br /&gt;&lt;/strong&gt;This is always the most funny part of a project so I love to save it for the last thing I do. &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Smiley, der blinker" src="http://lh3.ggpht.com/_zaFXHkTIcJ0/TTsSMsiR77I/AAAAAAAAAC4/wwoQH82eNRU/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;     &lt;br /&gt;Really… there will be some documentation on how to extend the application and some Visual Studio demo projects and so on, more to come.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can find the new version &lt;a href="http://spm.codeplex.com/releases/view/51438" target="_blank"&gt;here!&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-6889236715526815003?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/2lKV6JDrm-s/sharepoint-manager-2010-v2-in.html</link><author>noreply@blogger.com (Content)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_zaFXHkTIcJ0/TTsSMcpgePI/AAAAAAAAAC0/pSCay4eG34M/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2011/01/sharepoint-manager-2010-v2-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-3139975522419331279</guid><pubDate>Mon, 19 Apr 2010 19:48:00 +0000</pubDate><atom:updated>2010-04-19T12:50:25.322-07:00</atom:updated><title>WSPBuilder systems compatibility</title><description>&lt;p style="margin: 0cm 0cm 10pt" class="MsoNormal"&gt;The following table show the compatibility with different systems. The WSPBuilder is a normal console application build in c# .NET. The WSPBuilder Extensions is addon made for Visual Studio, but its still the same console application running in the background when building from Visual Studio. &lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="499"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="157"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;System&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;WSPBuilder 0.9.9.0728&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="172" align="center"&gt;&lt;strong&gt;&lt;font color="#ffffff"&gt;&lt;font color="#000000"&gt;WSPBuilder 2010*&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="158"&gt;.NET 2.0&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="172" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;x32 bit&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;x64 bit&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;All versions of Windows with .NET installed&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;Visual Studio 2005&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;Visual Studio 2008&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;Visual Studio 2010&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;SharePoint 2007&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;SharePoint 2010&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="172" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;* Note: WSPBuilder 2010 may still be in beta.&lt;/p&gt;  &lt;p&gt;WSPBuilder 2010 supports all the same systems as the previous WSPBuilder versions, so you can use it for building SharePoint 2007 (Wss 3.0) solutions without any problems.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-3139975522419331279?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/Ef8WYunVfbU/wspbuilder-systems-compatibility.html</link><author>noreply@blogger.com (Content)</author><thr:total>9</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/wspbuilder-systems-compatibility.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-527359940310352888</guid><pubDate>Mon, 19 Apr 2010 19:15:00 +0000</pubDate><atom:updated>2010-04-19T12:19:55.331-07:00</atom:updated><title>Extract WSP packages with WSPBuilder</title><description>&lt;p&gt;It is possible to extract (unpack) the contents of a WSP package into the file system with use of WSPBuilder. This function currently only supports a full extract of everything, so you have to pick what you need afterwards. The command syntax is:&lt;/p&gt;  &lt;p&gt;WSPBuilder.exe -o extractwsp    &lt;br /&gt;-Filename : (Optional) Define the WSP file to extract. Default is the last created WSP file from the current directory.     &lt;br /&gt;-TargetPath : (Optional) Defines the target path to extract the wsp file in. Default is the current directory.     &lt;br /&gt;-Overwrite : (Optional) Overwrite existing files.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;WSPBuilder.exe –o extractwsp –filename mypackage.wsp –overwrite true&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Warning!&lt;/strong&gt; I have not fully tested the ExtractWSP functionality in every possible scenario, so please understand.&lt;/p&gt;  &lt;p&gt;The function is supported from WSPBuilder version 0.9.9.0728 and forward, including the WSPBuilder 2010 versions.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-527359940310352888?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/WhMRc95QsmU/extract-wsp-packages-with-wspbuilder.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/extract-wsp-packages-with-wspbuilder.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4615717007666415861</guid><pubDate>Sun, 18 Apr 2010 09:49:00 +0000</pubDate><atom:updated>2010-04-18T02:49:17.734-07:00</atom:updated><title>Project structure for SharePoint</title><description>&lt;p&gt;I made a suggestion on how to create a SharePoint project structure in my &amp;quot;SharePoint Development&amp;quot; presentation at Microsoft Copenhagen back in January, but there is no documentation on it in the PowerPoint presentation.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.keutmann.dk/sharepointblog/SharepointDevelopment.zip"&gt;http://www.keutmann.dk/sharepointblog/SharepointDevelopment.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In my experience, I find that keeping the number of WSP packages down to a minimum is the easiest thing to managed. Therefore I put all my SharePoint artifacts in one project. Some large SharePoint solutions may require more than one WSP package, but generally not many. I also separate the business logic from the SharePoint project, so it will not be GUI dependent. I use this structure as a general template whenever I create a new Visual Studio solution.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.Framework      &lt;br /&gt;&lt;/b&gt;This project is not specific per solution, but can be used as a library across multiple solutions. This project do not contain any business or SharePoint logic, only clean .NET code. I usually create a lot of.NET Extensions in this project.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.SharePoint.Framework      &lt;br /&gt;&lt;/b&gt;This project is for generally SharePoint related extensions and is still generic across multiple solutions. A lot of .NET SharePoint Extensions is added to this project.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.BusinessModel (or ObjectModel)&lt;/b&gt;     &lt;br /&gt;This project will contain all my business logic and data objects. The project will not contain any UI logic.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.MyProjectName&lt;/b&gt;&lt;b&gt; (SharePoint Project)&lt;/b&gt;     &lt;br /&gt;This is the SharePoint artifact project from where I will build my WSP package by use of WSPBuilder. All the SharePoint webparts, features and so on will be created here. It is usually set to deploy to Global Assembly Cache. However if company policy requires the code to be deploy with Code Access Security (CAS), I will create an additional SharePoint project, so I have one project for the GAC and one for the WebApplications bin folder.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.Test&lt;/b&gt;     &lt;br /&gt;The project for Units tests.&lt;/p&gt;  &lt;p&gt;I do not say that this is the best structure, but I find it as a good template to start from, specially that I can reuse the Framework projects from solution to solution. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4615717007666415861?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/9eq_PngwLps/project-structure-for-sharepoint.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/project-structure-for-sharepoint.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-7622610243343628455</guid><pubDate>Fri, 16 Apr 2010 06:22:00 +0000</pubDate><atom:updated>2010-04-15T23:22:49.409-07:00</atom:updated><title>Podcast on WSPBuilder</title><description>Hilton Giesenow did this podcast on WSPBuilder with me.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check it out.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.themossshow.com/2010/04/carsten-keutmann-tells-us-about-wspbuilder/"&gt;http://www.themossshow.com/2010/04/carsten-keutmann-tells-us-about-wspbuilder/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-7622610243343628455?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/1EZNBYULv9k/podcast-on-wspbuilder.html</link><author>noreply@blogger.com (Content)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/podcast-on-wspbuilder.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-8566733108043546348</guid><pubDate>Thu, 07 Jan 2010 22:35:00 +0000</pubDate><atom:updated>2010-01-07T14:35:11.159-08:00</atom:updated><title>TechTalk on SharePoint Development at Microsoft Copenhagen</title><description>Wednesday I held a TechTalk on SharePoint development at Microsoft Copenhagen. A lot of people attended and it was very nice.&lt;br /&gt;
&lt;br /&gt;
The&amp;nbsp;presentation &lt;a href="http://www.keutmann.dk/sharepointblog/SharepointDevelopment.zip"&gt;Sharepoint Development.pptx&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
A good example of a “Company.SharePoint.Framework” project in Visual Studio. &lt;a href="http://spexlib.codeplex.com/"&gt;http://spexlib.codeplex.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
SharePoint User Group in Denmark &lt;a href="http://www.spbg.dk/"&gt;http://www.spbg.dk/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-8566733108043546348?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/LBAuPoGTW8o/techtalk-on-sharepoint-development-at.html</link><author>noreply@blogger.com (Content)</author><thr:total>1</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/01/techtalk-on-sharepoint-development-at.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-8438251330335678534</guid><pubDate>Mon, 04 Jan 2010 19:27:00 +0000</pubDate><atom:updated>2010-01-04T11:27:50.581-08:00</atom:updated><title>Renewed as a Microsoft SharePoint Server MVP for another year!</title><description>Just got the e-mail from Microsoft (a little late because the first&amp;nbsp;e-mail must have been eaten by a spam filter or something and therefore never arrived). I’ve been renewed as a Microsoft SharePoint Server MVP for another year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-8438251330335678534?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/y0cDpyVBhEc/renewed-as-microsoft-sharepoint-server.html</link><author>noreply@blogger.com (Content)</author><thr:total>3</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/01/renewed-as-microsoft-sharepoint-server.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-9219221428103196243</guid><pubDate>Tue, 01 Dec 2009 21:14:00 +0000</pubDate><atom:updated>2009-12-02T13:06:12.552-08:00</atom:updated><title>WSPBuilder 2010 Beta</title><description>&lt;span xmlns=""&gt;&lt;/span&gt;&lt;br /&gt;
I have been working hard for some time now getting WSPBuilder ready for SharePoint 2010 and Visual Studio 2010. The current status is that WSPBuilder now supports fully the new functionality of the wsp package introduced in SharePoint 2010. Also the WSPBuilder Extension for Visual Studio has been undergoing a major overhaul. Especially the Visual Studio Project/Item templates are currently totally rewritten and new templates will be added with new functionality. &lt;br /&gt;
&lt;br /&gt;
Visual Designer is now supported in WSPBuilder 2010 projects. This means that you will able edit your pages (aspx) and user controls (ascx) with the visual designer in Visual Studio. The reason for this is because the WSPBuilder 2010 project template in Visual Studio is now based on the C# WebApplication project template. &lt;br /&gt;
However the special folder types for the Web Application template are not supported and are therefore not added to the project on creation and will have no effect if added later. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zaFXHkTIcJ0/SxWGvfaOKQI/AAAAAAAAACE/_nrIX5NvM-U/s1600/VSSelectItemTemplate.JPG" imageanchor="1" style="cssfloat: left; margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_zaFXHkTIcJ0/SxWGvfaOKQI/AAAAAAAAACE/_nrIX5NvM-U/s640/VSSelectItemTemplate.JPG" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;Visual Web Part are now available.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="left" style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;Backward compatibility with "old" software like SharePoint 2007 and the previous versions of Visual Studio are very important in the WSPBuilder project. Therefore WSPBuilder 2010 will still fully support SharePoint 2007 and Visual Studio 2005 and 2008. Furthermore I was able to keep it all in one installation file regardless of what system you have x86, x86 / SP2007, SP2010 / VS2005, VS2008, 2010, without going on compromise on the functionality. This simply means one installation file fits them 'all. &lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;One major change that have been done in WSPBuilder 2010, is the change of 12 hive folder name. It will from now on be called "SharePointRoot" according to the official announcement. The old "12" folder&amp;nbsp;is still&amp;nbsp;supported as normal; actually there is no difference between 12 and SharePointRoot regarding functionality in WSPBuilder. But SharePointRoot is less confusing when targeting SharePoint 2010.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHD9aql3I/AAAAAAAAACM/TnFEqq_YkV8/s1600/WSPBuilderProjectDemo.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHD9aql3I/AAAAAAAAACM/TnFEqq_YkV8/s640/WSPBuilderProjectDemo.JPG" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;SharePointRoot is the new "12" folder.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now that WSPBuilder 2010 is able to build both SharePoint 2007 and 2010 packages, it will in the build process display a compatibility statement&amp;nbsp;telling the develop&amp;nbsp;if SharePoint 2007 are still supported or not.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHIgMXPuI/AAAAAAAAACU/sET04Ditrz8/s1600/WSPBuilder2010Console.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHIgMXPuI/AAAAAAAAACU/sET04Ditrz8/s640/WSPBuilder2010Console.JPG" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;Solution compatibility tells you what version of SharePoint this package is compatibel with and the picture show that only SharePoint 2010 is supported.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;So when will WSPBuilder 2010 be done?&lt;br /&gt;
&lt;/strong&gt;To quote Blizzard "It's done when it's done!" I'll try to make every beta as much a complete version before releasing it. Currently there are no plans for major changes in the project structure for WSPBuilder, only more functionality and addons. &lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;New features of WSPBuilder 2010&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: black;"&gt;* Fully supports SharePoint 2010 Beta 2.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Fully supports SharePoint 2007.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Manifest.config introduced for managing new functionality of the SharePoint 2010 WSP package schema.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;New features of WSPBuilder Extensions 2010&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black;"&gt;* Support for Visual Studio 2010 Beta 2.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Backward support for Visual Studio 2005 and 2008.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Visual Studio Visual designer supported.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* No need to install Extensions to open the project in Visual Studio.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Pages and user controls designer editing are now supported.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Item template "Visual Web Part" has been added.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Web Part will have custom code added if selected, removing the web part on feature deactivate.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;strong&gt;Plans for new features in WSPBuilder Extensions 2010&lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;&lt;em&gt;&lt;span style="color: black;"&gt;(have not been implemented yet!)&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* WSP import project template in Visual Studio.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Delegate Control item template.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Layout Page item template.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* New Wizard system for Item templates.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* ...&lt;/span&gt;&lt;span style="color: black;"&gt;and other item templates.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;Important!&lt;br /&gt;
&lt;/strong&gt;Only Visual Studio 2010 Beta 2 is supported. There are no plans to support beta 1.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;Known bugs in the Beta 1.2&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;Workflow templates in Visual Studio do not work properly. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Download&lt;/strong&gt;&lt;br /&gt;
Please look on codeplex under Download. It’s the last file of the 4 available.&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://wspbuilder.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30858"&gt;http://wspbuilder.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30858&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-9219221428103196243?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/PotdaNY10kU/wspbuilder-2010-beta.html</link><author>noreply@blogger.com (Content)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_zaFXHkTIcJ0/SxWGvfaOKQI/AAAAAAAAACE/_nrIX5NvM-U/s72-c/VSSelectItemTemplate.JPG" height="72" width="72" /><thr:total>18</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/12/wspbuilder-2010-beta.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5480983888466933210</guid><pubDate>Sun, 15 Nov 2009 16:51:00 +0000</pubDate><atom:updated>2009-11-15T08:54:36.075-08:00</atom:updated><title>SharePoint Manager 2010 Release</title><description>&lt;span xmlns=""&gt; &lt;p&gt;My good friend and colleague &lt;a href="http://andersdissing.blogspot.com/"&gt;Anders Dissing&lt;/a&gt; that has taken over the SharePoint Manager project has now released a SharePoint Manager 2010 version on &lt;a href="http://www.codeplex.com/spm"&gt;codeplex&lt;/a&gt;! &lt;/p&gt;&lt;p&gt;Anders blog on: &lt;a href="http://andersdissing.blogspot.com/2009/10/sharepoint-manager-2010-release.html"&gt;SharePoint Manager 2010 Release &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Download &lt;a href="http://spm.codeplex.com/"&gt;here!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-5480983888466933210?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/4pTRFid-RJs/sharepoint-manager-2010-release.html</link><author>noreply@blogger.com (Content)</author><thr:total>1</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/11/sharepoint-manager-2010-release.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4685518694997676178</guid><pubDate>Sun, 15 Nov 2009 16:41:00 +0000</pubDate><atom:updated>2009-11-15T08:42:09.992-08:00</atom:updated><title>SharePoint 2010 and WSPBuilder</title><description>&lt;span xmlns=''&gt;&lt;p&gt;A lot of people at the SPC2009 conference asked me about the future of WSPBuilder. Facts are that SharePoint 2010 is under way and the new SharePoint tools for Visual Studio 2010 are going to replace VSeWSS. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here some conclusions from the SPC2009 conference. &lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;SharePoint tools for Visual Studio 2010 will only support SharePoint 2010.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;SharePoint tools will only support Visual Studio 2010.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Currently there will  be NO new tools for SharePoint 2007 and Visual Studio 2008 (except for the version of VSeWSS 1.3)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This means that all the current solutions out there for SharePoint 2007 will still need to depend on a 3&lt;sup&gt;rd&lt;/sup&gt; party tool to get the job done. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Regarding WSPBuilder, a new version will be release to support the new possibilities in the WSP package for SharePoint 2010. The new version will still provide support for SharePoint 2007 packages, so bug fixes and added functionality will also be available for old 2007 projects. I plan for that WSPBuilder Extensions will support 3 versions of Visual Studio 2005 / 2008 / 2010 in one MSI packaged. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;So WSPBuilder will still be around for a couple more years to support SharePoint 2007. Only time will tell if it will be popular for SharePoint 2010.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4685518694997676178?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/-3dcVUUBcME/sharepoint-2010-and-wspbuilder.html</link><author>noreply@blogger.com (Content)</author><thr:total>6</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/11/sharepoint-2010-and-wspbuilder.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-6647861061906431622</guid><pubDate>Wed, 02 Sep 2009 08:48:00 +0000</pubDate><atom:updated>2009-09-02T01:48:52.577-07:00</atom:updated><title>TOZIT SharePoint Discussion Forum solution for WSS 3.0 and MOSS 2007</title><description>&lt;span xmlns=''&gt;&lt;p&gt;Tobias Zimmergren has just released this awesome SharePoint Discussion Forum for SharePoint. &lt;a href='http://www.zimmergren.net/archive/2009/09/01/tozit-sharepoint-discussion-forum-solution-for-wss-3-0-and-moss-2007-released-today.aspx'&gt;Check it out!&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-6647861061906431622?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/uNvWacHZZX4/tozit-sharepoint-discussion-forum.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/09/tozit-sharepoint-discussion-forum.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5052739328792746053</guid><pubDate>Sat, 22 Aug 2009 08:47:00 +0000</pubDate><atom:updated>2009-08-22T01:49:51.113-07:00</atom:updated><title>SharePoint Saturday Presentation in Copenhagen</title><description>&lt;span xmlns=""&gt;&lt;p&gt;From my presentation of Building WSP Packages Efficiently (&lt;a href="http://www.sharepointsaturday.org/copenhagen/Shared%20Documents/SharePointSaturdayCopenhagenSchedule.pdf"&gt;schedule&lt;/a&gt;), the PowerPoint presentation and Visual Studio Project can be found below.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.keutmann.dk/sharepointblog/presentation.zip"&gt;Presentation.zip&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/keutmann&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-5052739328792746053?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/-u0KTj9pnZo/sharepoint-saturday-presentation-in.html</link><author>noreply@blogger.com (Content)</author><thr:total>3</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/08/sharepoint-saturday-presentation-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4427213623342220985</guid><pubDate>Mon, 03 Aug 2009 12:25:00 +0000</pubDate><atom:updated>2009-08-03T05:52:15.700-07:00</atom:updated><title>WSPBuilder Extensions ver. 1.0.6 - (WSPBuilder Version: 0.9.9.0728)</title><description>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;14&lt;/w:HyphenationZone&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:Wingdings;  panose-1:5 0 0 0 0 0 0 0 0 0;  mso-font-charset:2;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face  {font-family:SimSun;  panose-1:2 1 6 0 3 1 1 1 1 1;  mso-font-alt:宋体;  mso-font-charset:134;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 135135232 16 0 262145 0;} @font-face  {font-family:"\@SimSun";  panose-1:2 1 6 0 3 1 1 1 1 1;  mso-font-charset:134;  mso-generic-font-family:auto;  mso-font-pitch:variable;  mso-font-signature:3 135135232 16 0 262145 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:"";  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:12.0pt;  font-family:"Times New Roman";  mso-fareast-font-family:SimSun;} a:link, span.MsoHyperlink  {color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {color:purple;  text-decoration:underline;  text-underline:single;} @page Section1  {size:595.3pt 841.9pt;  margin:70.85pt 2.0cm 2.0cm 2.0cm;  mso-header-margin:35.4pt;  mso-footer-margin:35.4pt;  mso-paper-source:0;} div.Section1  {page:Section1;}  /* List Definitions */  @list l0  {mso-list-id:1987082512;  mso-list-type:hybrid;  mso-list-template-ids:1522452540 68157441 68157443 68157445 68157441 68157443 68157445 68157441 68157443 68157445;} @list l0:level1  {mso-level-number-format:bullet;  mso-level-text:;  mso-level-tab-stop:36.0pt;  mso-level-number-position:left;  text-indent:-18.0pt;  font-family:Symbol;} ol  {margin-bottom:0cm;} ul  {margin-bottom:0cm;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabella normale";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";} table.MsoTableGrid  {mso-style-name:"Griglia tabella";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  border:solid windowtext 1.0pt;  mso-border-alt:solid windowtext .5pt;  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-border-insideh:.5pt solid windowtext;  mso-border-insidev:.5pt solid windowtext;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Some new updates have been made for WSPBuilder...&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;A Reference folder under GAC      and 80/Bin is now supported for large dlls that do not need reflection for      SafeControls and Permissions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;New menu function "Recycle      the Windows SharePoint Services Timer" implemented on WSPBuilder      Extensions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;Refactoring of "Copy to      GAC" in order to improve the functionality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;Bug fixed! "Unable to get      solution id from manifest: Unable to extract manifest.xml ..." error      for x64 systems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;CabLib.dll updated to new      version 10.5.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-US"&gt;Its now possible to include the      Cablib.dll into the WSP package.&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;The “Reference” folder&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;One of the new features of WSPBuilder, is the possiblility to add assemblies to the wsp package without getting them reflected upon. This means that there will not be created any safecontrols tags or permission policies for the assemblies. This will improve wsp build speed greatly for very large assemblies. So when you have some 3&lt;sup&gt;rd&lt;/sup&gt; party assemblies that you would like to include into your wsp package, just add the 3&lt;sup&gt;rd&lt;/sup&gt; party assemblies to a “Reference” folder under the GAC folder or 80\bin folder.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 488.9pt;" valign="top" width="652"&gt;   &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Project folder&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; padding: 0cm 5.4pt; background: rgb(204, 255, 204) none repeat scroll 0% 0%; width: 488.9pt; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;" valign="top" width="652"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;color:blue;"   lang="EN-US"&gt;..\MyProject&lt;br /&gt;&lt;span style=""&gt;       &lt;/span&gt;....\12&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;color:blue;"   lang="EN-US"&gt;&lt;span style=""&gt;   &lt;/span&gt;....\GAC&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;color:blue;"   lang="EN-US"&gt;&lt;span style=""&gt;              &lt;/span&gt;......\Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;"  lang="EN-US"&gt;&lt;span style=""&gt;                      &lt;/span&gt;........SomeVeryLarge.DLL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;"  lang="EN-US"&gt;&lt;span style=""&gt;             &lt;/span&gt;......MyOwnSmall.DLL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;color:blue;"   lang="EN-US"&gt;&lt;span style=""&gt;       &lt;/span&gt;....\.&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;As showing in the folder structure above, the SomeVeryLarge.DLL is located under the Reference folder and will therefore be included into the wsp package (and manifest.xml) but not reflected upon. This will greatly reduce the time needed to build the wsp package. However if there are UI controls in the SomeVeryLarge.DLL that will be used, you are forced to add it directly under GAC or 80\bin so the SafeControls tags can be created and added to the web.config otherwise you will get a security error. The MyOwnSmall.DLL is located directly under the GAC folder and therefore is reflected upon as normal.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Warning:&lt;/span&gt;&lt;/b&gt;&lt;span style="" lang="EN-US"&gt; There will not be created any security policies for the DLL’s in the “80\bin\Reference” folder, so you will need to manually change the policy settings in the SharePoint configuration files to allow the reference assemblies to be used from the 80\bin folder. When using the “GAC\Reference” folder, the assembly will be deployed to the Global Assembly Cache and therefore automatically be fully trusted.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Recycle the Windows SharePoint Services Timer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;A new function in the WSPBuilder Visual Studio context menu have been added. This will recycle the Windows SharePoint Services Timer. (OWSTimer service). This function is intented to be used when developing SPTimerJobs, so you quicly can redeploy to GAC and recycle the Timer service from Visual Studio when testing.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;Manually modifing the Manifest.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;I had some request about being able to modify the manifest.xml and DDF file before building the wsp package. But the idea of WSPBuilder is that this should not be necessary. You should be able to do everything you need by use of the folder structure and wspbuilder.config file. But maybe I have missed something, so I would to hear from you if you have any case where you need to modify the manifest.xml file. Please e-mail me on &lt;a href="mailto:carsten@keutmann.dk"&gt;carsten@keutmann.dk&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;/keutmann&lt;br /&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4427213623342220985?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/mE_H4JdB5Tg/wspbuilder-extensions-ver-106.html</link><author>noreply@blogger.com (Content)</author><thr:total>8</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/08/wspbuilder-extensions-ver-106.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-99691704378631143</guid><pubDate>Mon, 22 Jun 2009 19:35:00 +0000</pubDate><atom:updated>2009-06-22T13:02:35.074-07:00</atom:updated><title>Beginning SharePoint Development (Bonus part #3 WSPBuilder overview)</title><description>&lt;p&gt;&lt;a href="http://furuknap.blogspot.com/"&gt;Bjørn Furuknap&lt;/a&gt; has done a great video on how to get starting with WSPBuilder Extensions. In the demo he shows how to replace the Cablib.dll file with a 32 bit version. This is because of a bug in the installer installing the wrong version. However now it has been fixed and it's no longer necessary to replace the file.. New version here &lt;a href="http://www.wspbuilder.com/"&gt;WSPBuilder&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Bjørn Furuknap WSPBuilder demo...&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=ljKnLllZbxU"&gt;http://www.youtube.com/watch?v=ljKnLllZbxU&lt;/a&gt; &lt;/p&gt;&lt;p&gt;/Cheers&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-99691704378631143?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/l3WYWKTj7DQ/beginning-sharepoint-development-bonus.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/06/beginning-sharepoint-development-bonus.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4401753528578737913</guid><pubDate>Thu, 16 Apr 2009 10:58:00 +0000</pubDate><atom:updated>2009-04-16T04:08:00.486-07:00</atom:updated><title>Disable Loopback Checking on Windows Server 2003</title><description>&lt;span xmlns=""&gt;&lt;p&gt;I updated my Windows Server 2003 running on a VMware image with the lasted April 2009 updates from Microsoft this morning. The result was that none of my SharePoint sites worked afterwards. The solution for me and one of my colleagues turns out to be this old known issue&lt;br /&gt;&lt;a href="http://wcornwill.wordpress.com/2006/06/06/mapping-host-headers-causes-looping-windows-authentication/"&gt;http://wcornwill.wordpress.com/2006/06/06/mapping-host-headers-causes-looping-windows-authentication/&lt;/a&gt;&lt;br /&gt;and&lt;br /&gt;&lt;a href="http://www.sharepointblogs.com/george/archive/2009/04/16/error-401-connecting-to-local-iis-website-after-3-credential-prompts.aspx"&gt;http://www.sharepointblogs.com/george/archive/2009/04/16/error-401-connecting-to-local-iis-website-after-3-credential-prompts.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I would only recommend to disable the Loopback checking for developing environments.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Disable Loopback Checking&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;open regedit&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Find HKLM\System\CurrentControlSet\Control\Lsa&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a new DWORD value called DisableLoopbackCheck and give it a value of 1&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restart the computer&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4401753528578737913?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/10FYyusGuFg/disable-loopback-checking-on-windows.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/04/disable-loopback-checking-on-windows.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5556999029655958741</guid><pubDate>Tue, 14 Apr 2009 10:11:00 +0000</pubDate><atom:updated>2009-04-14T03:17:08.616-07:00</atom:updated><title>Developers 10 Commandments for preventing errors</title><description>&lt;span xmlns=""&gt;&lt;p&gt;Over the years of programming, I have gone from a simple spaghetti developer to an object oriented, method mineralized, property loving, defensive coding and structure focused (spaghetti) developer. So what is the difference? When I think about it, my code may look like a spaghetti program today, for the untrained eye that is, because of object inheritance, events, properties and so forth. But it's much better organized than it was just 20 years ago. The big advantage is that it is much easier to spot and avoid errors than in the good old spaghetti programming days. But I still need to avoid programmatic and logic errors, therefore I follow these 10 basic commandments in writing code.&lt;br /&gt;&lt;/p&gt;&lt;ol style="MARGIN-LEFT: 41pt"&gt;&lt;li&gt;Assumptions are the mother of all errors.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The most lacy developer do things right the first time.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If something can go wrong, then it will at some point do.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Never implement bad exception handling. Like the Ostrich-algorithm, where you put your head in the ground and pretend that nothing has happened.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Know your events or you program will fail.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Errors usually appears where you least expect them to.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Users come from the dark side and they got errors with them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Unit test... unit what?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Keep it simple! However this does not apply for the female developers, they are able to multi task!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Always include a dead-man switch in a While loop, if it potentially can loop forever.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You will find some of the commandments more relevant than others but they all still holds an important message.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Defensive programming (&lt;a href="http://en.wikipedia.org/wiki/Defensive_programming"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;When using a defensive programming strategy and following the commandments I tend to think what can go wrong in my code and how to prevent it from doing so or simply handling it. This turns into rock solid applications that help me sleep better at night. The effort required is actually less than that of the ordinary "spaghetti code", because you don't spend the time constantly debugging your code in the end when the users keeps coming back with new errors that they have found.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Three strikes and you're program is out.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In the beginning when a user first starts to use a program, they have the stomach for three errors before they tend to give up on it and look for another solution. Therefore it's very important that the users are not presented with the errors directly in the face every time something goes wrong. Fallback gracefully when an error occurs is very important so the users don't feel abandoned.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Detailed description of the commandments.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Assumptions are the mother of all errors.&lt;/strong&gt;&lt;br /&gt;Picked up from the movie Under Siege 2: Dark Territory (1995), where one of the bad henchmen (&lt;a href="http://www.imdb.com/name/nm0569239/"&gt;&lt;span style="TEXT-DECORATION: underline;font-family:times new roman;color:#003399;"  &gt;Penn&lt;/span&gt;&lt;/a&gt;) believes that he has killed &lt;a href="http://www.imdb.com/name/nm0000219/"&gt;Casey Ryback&lt;/a&gt; (played by Steven Seagal), but it's just an assumption and therefore Ryback is able to continue haunting the bad guys and finally finishing them off (think of yourself as one of the bad guys :-) The same thing applies to code - when you assume something will work, it will for sure come back to haunt you. (Nobody wants a Ryback running around and destroying their program). Every error in a program is there because the developer assumed that it was fine there was no possible scenario for an error. Don't make assumptions – know for sure and handle any possible outcome!&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The most lacy developer do things right the first time.&lt;br /&gt;&lt;/strong&gt;If you want to save time and errors when creating a program, do things right the first time. Otherwise you just end up forgetting that you have skipped a step here, cut a corner there, so on and so forth. Yet again resulting in an error when you least except it.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;If something can go wrong, it will at some point do.&lt;br /&gt;&lt;/strong&gt;This is a universal rule (&lt;a href="http://en.wikipedia.org/wiki/Murphy%27s_Law"&gt;another variant&lt;/a&gt;). Don't try ignoring it. The only thing is to make sure that nothing can go wrong. However even the best developers cannot avoid all errors therefore contain the error so it will not affect the outside world and implement a graceful fallback error handling routine.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Never implement bad exception handling. Like the Ostrich-algorithm, where you put your head in the ground and pretend that nothing has happened.&lt;br /&gt;&lt;/strong&gt;This is a common error handling that I have seen in various places, where the developer knows that something can go wrong, but is too lazy to implement a descent error handling logic. Thereby resulting in a possible unstable program. This happened to me once when another developer in my team made an empty try catch statement around a database call. When the call to the database failed - and it did happen from time to time - the code simply just continued like nothing had happened, resulting in that the database data became invalid. So I had to spend 2 full days debugging the entire code in order to find out why the program was unstable and not knowing where the error prune part was hiding. &lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Know your events or you program will fail.&lt;br /&gt;&lt;/strong&gt;This is one of the most important things you can do when coding in object oriented languages. Know in what order things happen in. I have seen a lot of developers writing a lot of bad code in ASP.NET because they simply haven't allowed themselves the time to study how a Page lifecycle works.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Errors usually appears where you least expect them to.&lt;br /&gt;&lt;/strong&gt;This is another law of the Universe. You might as well accept it!&lt;br /&gt;If you ever think a certain situation will never occur, you are properly wrong. I have heard this so many times "This will never happen… yada yada yada" – but trust me, it will! So always implement at least a minimal form of error handling.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Users come from the dark side and they got errors with them.&lt;br /&gt;&lt;/strong&gt;No developer can foresee every possible outcome of a program and users have the tendency to pick out the situations that you had never have thought of. So always think of in general error handling, so you can say to yourself… "Whatever happens, I have covered it."&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Unit test... unit what?&lt;br /&gt;&lt;/strong&gt;This is an important thing to remember, especially when doing a lot of backend logic. There has been written a lot of topics on this subject and therefore I will not cover it here.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Keep it simple! However this does not apply for the female developers, they are able to multi task!&lt;br /&gt;&lt;/strong&gt;Male developers tend to develop programs with their forehead. This puts a constraint on how many of lines of code that they can handle simultaneously. Males like giant things, but giant methods are a bad thing. It is easy to lose overview of what is going on in the method with too many lines of code and therefore the possibility for errors sneaking in is greater. Keep your methods at a minimum, even if they are just used once in a call from one other method.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Always include a dead-man switch in a While loop, if it potentially can loop forever. &lt;/strong&gt;&lt;br /&gt;All developers in world has made this one at least once in their lifetime. Creating a While statement but forgets that they can potentially run forever and it stalls the process. So if there is even the slightest chance that a While statement can loop beyond its intention, introduce a dead-man switch. A simple counter that can only count to a certain amount before ending the while loop. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This more or less concludes my 10 commandments. Read it, learn from it and hopefully improve on it.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-5556999029655958741?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/0ajBDHqoa4U/developers-10-commandments-for.html</link><author>noreply@blogger.com (Content)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/04/developers-10-commandments-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-8709904475060835367</guid><pubDate>Mon, 13 Apr 2009 14:34:00 +0000</pubDate><atom:updated>2009-08-03T04:22:09.494-07:00</atom:updated><title>WSPBuilder documentation</title><description>&lt;span xmlns=""&gt;&lt;p&gt;I know that the documentation on using the WSPBuilder hasn't been fulfilling to say it nicely, but that's the way it is.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The good thing is that other people have been nice and done some work on this. This is what I have found so far (in random order), sorry if have forgot someone.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WSPBuilder - Walkthrough of the Visual Studio Add-in&lt;br /&gt;&lt;a href="http://www.zimmergren.net/archive/2009/04/08/wspbuilder-walkthrough-of-the-visual-studio-add-in.aspx"&gt;http://www.zimmergren.net/archive/2009/04/08/wspbuilder-walkthrough-of-the-visual-studio-add-in.aspx&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;WSS: Development - Quick Start with WSPBuilder&lt;br /&gt;&lt;a href="http://rasor.wordpress.com/2008/10/12/wss-dev-quickstart/"&gt;http://rasor.wordpress.com/2008/10/12/wss-dev-quickstart/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;WSS Dev: WSPBuilder Templates&lt;br /&gt;&lt;a href="http://rasor.wordpress.com/2008/10/12/wss-dev-quickstart/"&gt;http://rasor.wordpress.com/2008/10/12/wss-dev-quickstart/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;WSS Dev: HowTo debug a WebPart&lt;br /&gt;&lt;a href="http://rasor.wordpress.com/2008/10/24/wss-howto-debug-a-webpart/"&gt;http://rasor.wordpress.com/2008/10/24/wss-howto-debug-a-webpart/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Change the WSPBuilder DeploymentTarget to WebApplication&lt;br /&gt;&lt;a href="http://blog.mastykarz.nl/change-wspbuilder-deploymenttarget-webapplication/"&gt;http://blog.mastykarz.nl/change-wspbuilder-deploymenttarget-webapplication/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Intro to WSPBuilder&lt;br /&gt;&lt;a href="http://www.michaelbowersox.com/2009/01/18/intro-to-wspbuilder/"&gt;http://www.michaelbowersox.com/2009/01/18/intro-to-wspbuilder/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;WSPBuilder Folder Structure&lt;br /&gt;&lt;a href="http://www.michaelbowersox.com/2009/01/28/wspbuilder-folder-structure/"&gt;http://www.michaelbowersox.com/2009/01/28/wspbuilder-folder-structure/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;Developing SharePoint Solutions in Visual Studio&lt;br /&gt;&lt;a href="http://greggalipeau.wordpress.com/2008/05/18/developing-sharepoint-solutions-in-visual-studio/"&gt;http://greggalipeau.wordpress.com/2008/05/18/developing-sharepoint-solutions-in-visual-studio/&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;TFS Build and WSPBuilder&lt;br /&gt;&lt;a href="http://alex-tfs.blogspot.com/2009/01/tfs-build-and-wspbuilder.html"&gt;http://alex-tfs.blogspot.com/2009/01/tfs-build-and-wspbuilder.html&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;How to get TFS to automate your WSP builds with WSPBuilder&lt;br /&gt;&lt;a href="http://pointstoshare.spaces.live.com/Blog/cns%21AEC42F315B4528B0%213290.entry"&gt;http://pointstoshare.spaces.live.com/Blog/cns%21AEC42F315B4528B0%213290.entry&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;The WSPBuilser Manual&lt;br /&gt;&lt;a href="http://wspbuilder.codeplex.com/SourceControl/changeset/view/33013#166101"&gt;http://wspbuilder.codeplex.com/SourceControl/changeset/view/33013#166101&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;My Blog.&lt;br /&gt;&lt;a href="http://keutmann.blogspot.com/2008/02/visual-studio-addin-and-templates-for.html"&gt;http://keutmann.blogspot.com/2008/02/visual-studio-addin-and-templates-for.html&lt;/a&gt;&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;New! (2009/08/02)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Creating a code-only webpart and deploying as a feature&lt;a href="http://www.sharepointsean.com/articles/Pages/CreatingaCode-Onlywebpartanddeployingasafeature.aspx"&gt;&lt;br /&gt;http://www.sharepointsean.com/articles/Pages/CreatingaCode-Onlywebpartanddeployingasafeature.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Please comment with more links if you know one.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-8709904475060835367?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/btT1kq0RRkk/wspbuilder-documentation.html</link><author>noreply@blogger.com (Content)</author><thr:total>20</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/04/wspbuilder-documentation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4311067602587336907</guid><pubDate>Fri, 10 Apr 2009 23:03:00 +0000</pubDate><atom:updated>2009-04-10T16:04:59.048-07:00</atom:updated><title>WSPBuilder - Walkthrough of the Visual Studio Add-in</title><description>&lt;span xmlns=''&gt;&lt;p&gt;I know that there are not much documentation on how to use WSPBuilder in the install package, but my good friend Tobias Zimmergren have written a great post on SharePoint development with WSPBuilder Extensions. Check it out. &lt;a href='http://www.zimmergren.net/archive/2009/04/08/wspbuilder-walkthrough-of-the-visual-studio-add-in.aspx'&gt;http://www.zimmergren.net/archive/2009/04/08/wspbuilder-walkthrough-of-the-visual-studio-add-in.aspx&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4311067602587336907?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/IltZcC6ESBA/wspbuilder-walkthrough-of-visual-studio.html</link><author>noreply@blogger.com (Content)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/04/wspbuilder-walkthrough-of-visual-studio.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-2761797407996539104</guid><pubDate>Fri, 10 Apr 2009 22:42:00 +0000</pubDate><atom:updated>2009-04-10T15:42:04.897-07:00</atom:updated><title>WSPBuilder Extensions 1.0.5</title><description>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='color:#30332d'&gt;This version of WSPBuilder Extensions 1.0.5 now fully supports development on an x64 bit systems and Windows Server 2008.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#30332d'&gt;Installs correct CABLIB.DLL for x64 systems. (No need for manually installing)&lt;br/&gt;"Copy to 12 hive" function now works on x64 systems.&lt;br/&gt;Support for IIS7&lt;br/&gt;Minor bug fix for "Recycle App Pools"&lt;br/&gt;Supports VisualBasic Project/Item templates. (Thanks to Chip Sockwell)&lt;br/&gt;wspbuilder.exe is included in this package.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#30332d'&gt;Install notes.:&lt;br/&gt;Be sure to uninstall the old version of WSPBuilder Extensions before installing the new version.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#30332d'&gt;Happy SharePoint coding folks&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:#30332d'&gt;/keutmann&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-2761797407996539104?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/Q8JnqcYnLaM/wspbuilder-extensions-105.html</link><author>noreply@blogger.com (Content)</author><thr:total>12</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/04/wspbuilder-extensions-105.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-9074111256414503499</guid><pubDate>Thu, 12 Mar 2009 17:30:00 +0000</pubDate><atom:updated>2009-03-12T12:50:08.839-07:00</atom:updated><title>Visual Basic Project/Item template support in WSPBuilder Extensions 1.0.4</title><description>&lt;span xmlns=""&gt;&lt;p&gt;Thanks to Chip Sockwell and his work on converting the C# templates to Visual Basic. You are now able to create Visual Basic projects with WSPBuilder templates in Visual Studio.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;However if you are only using C#, you do not need to install the new version (1.0.4). &lt;/p&gt;&lt;p&gt;Get it here: &lt;a href="http://wspbuilder.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24627"&gt;WSPBuilder.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Cheers!&lt;br /&gt;/keutmann&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-9074111256414503499?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/JhEJypA561g/visual-basic-projectitem-template.html</link><author>noreply@blogger.com (Content)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/03/visual-basic-projectitem-template.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-1285488047679937543</guid><pubDate>Thu, 05 Feb 2009 15:03:00 +0000</pubDate><atom:updated>2009-02-05T07:10:42.661-08:00</atom:updated><title>SharePoint Manager 2007 ver 0.9.9.0205</title><description>I have done some work on SPM2007 and implemented a new language Swedish. (Thanks to Andreas Kviby for the translation)&lt;br /&gt;&lt;br /&gt;Ver: 0.9.9.0205-------------------&lt;br /&gt;- Warning on deletion has now been implemented.&lt;br /&gt;- Icons for nodes updated.&lt;br /&gt;- Dutch and Swedish languages implemented.&lt;br /&gt;- Groups and Roles on the Site is now browsable.&lt;br /&gt;&lt;br /&gt;Get it on &lt;a href="http://www.codeplex.com/spm/Release/ProjectReleases.aspx?ReleaseId=22762"&gt;codeplex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Have fun :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-1285488047679937543?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/OK5NQagEGGY/sharepoint-manager-2007-ver-0990205.html</link><author>noreply@blogger.com (Content)</author><thr:total>8</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/02/sharepoint-manager-2007-ver-0990205.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4940867983408482538</guid><pubDate>Fri, 30 Jan 2009 09:41:00 +0000</pubDate><atom:updated>2009-01-30T01:42:43.341-08:00</atom:updated><title>SharePoint MVP</title><description>Oh .. by the way.. I have become a SharePoint MVP.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12969685-4940867983408482538?l=keutmann.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/Ea5wpJ66PWk/sharepoint-mvp.html</link><author>noreply@blogger.com (Content)</author><thr:total>3</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/01/sharepoint-mvp.html</feedburner:origLink></item></channel></rss>

