<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="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" gd:etag="W/&quot;DEYNSHc_fSp7ImA9WhdVFUw.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393</id><updated>2011-09-20T11:56:39.945+01:00</updated><category term="visual studio" /><category term="infopath sharepoint workflow" /><category term="visual studio build" /><category term="users" /><category term="sharepoint" /><category term="administration" /><category term="SharePoint Designer" /><category term="Sharepoint 2010" /><category term="command prompt" /><category term="exception handling workflow sharepoint" /><category term="People Picker" /><category term="wspbuilder" /><category term="sharepoint infopath development tools" /><category term="blogging" /><category term="Reporting Services" /><category term="list schema" /><category term="moss" /><category term="sharepoint tools moss" /><category term="sharepoint moss development best practise." /><category term="stsadm" /><category term="memory leak" /><title>iThink SharePoint Blog</title><subtitle type="html">A blog dedicated to all things related to Windows SharePoint services / Microsoft Office Server System, Business Process Management, Business Intelligence anything that I think will be useful in the SharePoint arena.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://ithinksharepoint.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>64</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/atom+xml" href="http://feeds.feedburner.com/blogspot/ithinksharepoint" /><feedburner:info uri="blogspot/ithinksharepoint" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>blogspot/ithinksharepoint</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DUAEQnozeyp7ImA9Wx9UGU8.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-985817383442686356</id><published>2011-02-17T07:28:00.000Z</published><updated>2011-02-17T07:28:23.483Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-17T07:28:23.483Z</app:edited><title>Blog Moved</title><content type="html">My blog has moved to &lt;a href="http://blog.ithinksharepoint.com/"&gt;http://blog.ithinksharepoint.com&lt;/a&gt;. I decided to move my blog over to a Wordpress based blog after looking at other SharePoint bloggers such as &lt;a href="http://www.glynblogs.com/"&gt;Glyn Clough's Blog&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately&amp;nbsp;it seems that blogger.com is falling behind&amp;nbsp;in providing a simple to use experience and I have been impressed with the ease that social features can be added to the Wordpress platform.&lt;br /&gt;
&lt;br /&gt;
I hope you enjoy the new look and experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-985817383442686356?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://blog.ithinksharepoint.com" title="Blog Moved" /><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/985817383442686356/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=985817383442686356" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/985817383442686356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/985817383442686356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/MNbuqqlUWvY/blog-moved.html" title="Blog Moved" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2011/02/blog-moved.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YBRnozfyp7ImA9Wx9UGEQ.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-7684498554293645770</id><published>2011-02-16T22:11:00.000Z</published><updated>2011-02-16T22:25:57.487Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-16T22:25:57.487Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Designer" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint 2010" /><title>Logging in as a different user in SharePoint Designer 2010</title><content type="html">&lt;p&gt;Yesterday I was reading the SharePoint Designer 2010 section of the &lt;a href="http://www.amazon.co.uk/Real-World-SharePoint-2010-Indispensable/dp/0470597135/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1297894264&amp;amp;sr=8-1" target="_blank"&gt;MVP Real World SharePoint&amp;#160; 2010&lt;/a&gt; book. There was this great tip explaining how to login as a different user with SharePoint Designer 2010. &lt;/p&gt;  &lt;p&gt;The issue is that the functionality is pretty hidden away!&lt;/p&gt;  &lt;p&gt;To login as a different user do the following:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open SharePoint Designer 2010 &lt;/li&gt;    &lt;li&gt;If you look down on the bottom left hand side you will see an icon that looks like this: &lt;a href="http://www.ithinksharepoint.com/itspblog/images/df70ea08c2ce_13316/image.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 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://www.ithinksharepoint.com/itspblog/images/df70ea08c2ce_13316/image_thumb.png" width="42" height="27" /&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.ithinksharepoint.com/itspblog/images/df70ea08c2ce_13316/image_3.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.ithinksharepoint.com/itspblog/images/df70ea08c2ce_13316/image_thumb_3.png" width="393" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on this icon &lt;/li&gt;    &lt;li&gt;A message will appear saying “You are logged in as DOMAIN\username, Click OK to close all items and login as someone else.” &lt;/li&gt;    &lt;li&gt;Click OK and you will be prompted for a username and password &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-7684498554293645770?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/7684498554293645770/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=7684498554293645770" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/7684498554293645770?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/7684498554293645770?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/J0dpjGLw41E/logging-in-as-different-user-in.html" title="Logging in as a different user in SharePoint Designer 2010" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2011/02/logging-in-as-different-user-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYFSXw_eSp7ImA9Wx9UFk8.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-6637168378630580094</id><published>2011-02-13T18:35:00.000Z</published><updated>2011-02-13T18:51:58.241Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-13T18:51:58.241Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint" /><category scheme="http://www.blogger.com/atom/ns#" term="list schema" /><title>Issues with Custom List Schema and Editing Field Settings (Cannot Perform this Action)</title><content type="html">&lt;p&gt;Why is it that when you have a deadline looming then you have a problem which takes an age to fix?!&lt;/p&gt; &lt;p&gt;Well I hope that if you have the problem that I had then this post will help you fix it a bit more quickly!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The problem occurred within a custom list definition which held a lookup field. When the field settings were adjusted, using Settings-&amp;gt;List Settings, modifying a field and clicking ok, an error message would be displayed.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;“Cannot Perform this Action”&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This error message fills me with dread as you have very little information to help you discover the problem. &lt;/p&gt; &lt;p&gt;Some background information, the field was in a custom list created from the custom list feature found in the SharePoint HIVE.&lt;/p&gt; &lt;p&gt;The custom list schema was updated with a unique content type and some additional fields were added. This content type was a list content type which was derived from the Item Content Type and had the ID: 0x0100[GUID]. The content type was stored inside a folder /Folder/Contacts.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The solution was found by examining other custom list schemas that I have created in the past. The difference was that mine was using a Folder and it didnt have the tag:-&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;ContentTypeRef ID="0x0120" /&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;So I added this ContentTypeRef, which is the reference for the Folder content type within the &amp;lt;MetaData&amp;gt;&amp;lt;ContentTypes&amp;gt; element at the top of the schema.xml file. &lt;p&gt;A redeployment of the feature with updated schema.xml updated the schema.xml file in the 12 HIVE and the issue was fixed, fields could now be edited and updated. &lt;p&gt;I hope this helps save someone a few hours! &lt;p&gt;Cheers &lt;p&gt;Simon   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-6637168378630580094?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/6637168378630580094/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=6637168378630580094" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/6637168378630580094?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/6637168378630580094?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/axb3Qner-iQ/issues-with-custom-list-schema-and.html" title="Issues with Custom List Schema and Editing Field Settings (Cannot Perform this Action)" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2011/02/issues-with-custom-list-schema-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkECRXwyfip7ImA9Wx9SEUg.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-622030188404158158</id><published>2010-11-30T23:11:00.000Z</published><updated>2010-11-30T23:11:04.296Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-30T23:11:04.296Z</app:edited><title>Blogo on the Mac</title><content type="html">Since 2008 I have been using a combination of Mac and virtualisation to run Windows on the Mac. Overall its been ok, it always seems to be a little bit tempremental. However over the past few weeks I have been fighting VMWare Fusion and it always showing a blank black screen. The screen comes back if the virtual machine is rebooted but its been driving me mad.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;So I haven't been blogging much and thought I should look at some Mac blogging software. The first one that I am trying is Blogo (http://www.drinkbrainjuice.com/blogo). So far so good though it does seem to be missing formatting features. This is especially apparent when trying to layout code snippets. One area which is good though is the spell checker, its already saved me a few times on this post!&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Anyway I'll let you know how I get on. However I think I will be coming back to a Windows laptop soon.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-622030188404158158?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/622030188404158158/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=622030188404158158" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/622030188404158158?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/622030188404158158?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/9MNrQanCNXs/blogo-on-mac.html" title="Blogo on the Mac" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/11/blogo-on-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4CSHg9fip7ImA9Wx9SEUg.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-8327718432404114427</id><published>2010-11-30T22:49:00.000Z</published><updated>2010-11-30T22:59:29.666Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-30T22:59:29.666Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wspbuilder" /><category scheme="http://www.blogger.com/atom/ns#" term="visual studio build" /><title>Building WSP Solution out of Multiple Visual Studio Projects</title><content type="html">&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div&gt;&lt;span style="font-size: medium; font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Recently I have been building a reasonable sized SharePoint solution which is using multiple Visual Studio projects. Using the excellent &lt;a href="http://www.codeplex.com/wspbuilder"&gt;WSPBuilder&lt;/a&gt; by Carlos Keutmann, the SharePoint content can be packaged up build individual solution files. &lt;/span&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/wspbuilder"&gt;&lt;strong&gt;WSP Builder&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Ok so as with these things there have been a few hacks to ensure that WSPBuilder does the right thing when building the package. Before I start I should explain how to use WSPBuilder, basically what you do is define the structure of the SharePoint 12 Hive in your project. So you create one folder called 12 and then create sub folders which mimics the SharePoint 12 Hive structure.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;So under the 12 folder you would add the appropriate sub folders for your solution :-&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote style="clear: both"&gt;&lt;p&gt;&lt;pre style="clear: both"&gt;TEMPLATES&lt;br /&gt;TEMPLATES\LAYOUTS\[YourAppFolder]&lt;br /&gt;TEMPLATES\IMAGES\[YourAppFolder]&lt;br /&gt;TEMPLATES\FEATURES&lt;br /&gt;TEMPLATES\SITETEMPLATES\YOURSITEDEFFOLDER&lt;br /&gt;.....&lt;/pre&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="clear: both"&gt;&lt;span style="font-size: x-small;"&gt;To add assemblies to your solution you create a GAC folder and an 80 folder at the same level as the 12 Folder.&lt;br /&gt;To add an assembly into the GAC put the assembly in the GAC folder. To add an assembly into the web application bin folder put the assembly in the 80 folder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;The Problem&lt;/span&gt;&lt;br /&gt;So far so good but when you have multiple projects building multiple assemblies, it is difficult to organise the files so that WSP Builder can build the solution correctly.&lt;br /&gt;&lt;br /&gt;This is made worse when you have a project that builds an assembly which is then used by another of the projects.&lt;br /&gt;&lt;br /&gt;To explain this if we have two projects, Project A and Project B. Project A builds assembly ProjectA.dll and Project B builds ProjectB.dll, Project B uses Project A.&lt;br /&gt;&lt;br /&gt;When Project B is built it relies on the Project A dll and the assembly is copied into Project B’s build directory.&lt;br /&gt;&lt;br /&gt;Now if you wanted to package up the solution using WSP Builder, you can run WSP Builder as part of the post build event by running “c:\program files\wspbuilder\wspbuilder.exe”. However if the assemblies, ProjectA.dll and ProjectB.dll need to be in the GAC then we need to build the project and then copy the dlls into the GAC folder.&lt;br /&gt;&lt;br /&gt;Thus when the WSP Builder runs it will pickup that the assemlbies need to go into the GAC and build the wsp solution correctly.&lt;br /&gt;&lt;br /&gt;These post build events become more and more complex as the number of projects is included in the solution, more complexity equals more room for errors.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Solution&lt;br /&gt;&lt;/strong&gt;In order to make things less complex I use the post build events for the projects to copy all the appropriate content from the project directory and build a directory structure under the solution dir.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This can be done as follows:- &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote style="clear: both"&gt;&lt;p&gt;&lt;pre style="clear: both"&gt;echo Running WSP Builder&lt;br /&gt;echo Copying GAC Dlls to $(ProjectDir)GAC&lt;br /&gt;copy /y "$(TargetDir)*.dll" "$(ProjectDir)GAC\"&lt;br /&gt;&lt;br /&gt;echo Copying 12 Directory to Solution Build&lt;br /&gt;xcopy /S /E /I /H /Y "$(ProjectDir)12" "$(SolutionDir)Build\12\"&lt;br /&gt;&lt;br /&gt;echo Copying GAC Directory to Solution Build&lt;br /&gt;xcopy /S /E /I /H /Y "$(ProjectDir)GAC" "$(SolutionDir)Build\GAC\"&lt;br /&gt;&lt;br /&gt;echo Running WSP Builder against FCT System Solution&lt;br /&gt;cd "$(SolutionDir)Build\%programfiles%\WSPTools\WSPBuilderExtensions\wspbuilder" -WSPName [solutionfilename.wsp]-SolutionId [SolutionIDGUID]&lt;br /&gt;&lt;br /&gt;echo Copying packages to Deployment\Package&lt;br /&gt;copy /y "$(SolutionDir)Build\*.wsp" "$(SolutionDir)Deployment\Package\" &lt;br /&gt;copy /y "$(ProjectDir)Package\*.*" "$(SolutionDir)Deployment\Package\"&lt;br /&gt;:exit&lt;/pre&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="clear: both"&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;Some enhancements&lt;/strong&gt;&lt;br /&gt;One of the annoying things when you are coding is that there is a cycle of fix, build, deploy, debug. If you are building the WSP file each time then the cycle between build-&amp;gt;deploy-&amp;gt;debug can be quite slow. To speed things up I use different build configurations. For example the Debug build does not call the wsp builder command but uses gacutil to add the assembly to the GAC or copies the assembly to the web application bin directory. The application pool is then recycled.&lt;/span&gt;&lt;/p&gt;&lt;blockquote style="clear: both"&gt;&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style="clear: both"&gt;&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="clear: both"&gt;echo Copying content into $(SolutionDir)&lt;/p&gt;&lt;p style="clear: both"&gt;copy /y /e /s/i “$(ProjectDir)\12” “$(SolutionDir)\Build\12”&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;span style="font-size: x-small;"&gt;For example:-&lt;/span&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;This is achieved in the following manner:-&lt;/p&gt;&lt;p style="clear: both"&gt;I hope that you find this useful, I would love to hear about other ways that people achieve this and also if anyone has any enhancements to this solution.&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-8327718432404114427?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/8327718432404114427/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=8327718432404114427" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/8327718432404114427?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/8327718432404114427?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/DBgSYosSJ2A/building-wsp-solution-out-of-multiple.html" title="Building WSP Solution out of Multiple Visual Studio Projects" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/11/building-wsp-solution-out-of-multiple.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EDQH8ycSp7ImA9Wx5TEks.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-221120692675117893</id><published>2010-07-27T21:14:00.001+01:00</published><updated>2010-07-27T21:14:31.199+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-27T21:14:31.199+01:00</app:edited><title>Manage Content and Structure (An Unknown Error Occured)</title><content type="html">&lt;p&gt;Sometimes you have got to love SharePoint, or more importantly love the developers who developed SharePoint to return an exception message such as “An unknown error occured” when something bad happens.&lt;/p&gt;  &lt;p&gt;This message occurred when using the Site Actions-&amp;gt;Manage Content and Structure feature.&lt;/p&gt;  &lt;p&gt;After some investigation a couple of posts on MSDN were found these talked about checking various xml files which customise the Publishing Editing Toolbar and Site Actions toolbar.&lt;/p&gt;  &lt;p&gt;The MSDN post said to check that the files were both checked in and published.&lt;/p&gt;  &lt;p&gt;However, this did not fix the problem. After further investigation I could see that some lists had two entries in the View All Site Content page (/_layouts/viewlsts.aspx), both which linked to the same list. So the problem is how can we get rid of one of these links?&lt;/p&gt;  &lt;p&gt;The first idea was to backup the list as a list template and then delete the list, however this would change the list id when a new list was created from the template.&lt;/p&gt;  &lt;p&gt;Instead I had the idea to use the recycle bin feature to bring the list back.&lt;/p&gt;  &lt;p&gt;Deleting and restoring the list from the recycle bin did indeed fix the duplicate list links and also fixed the Manage Content and Structure feature!&lt;/p&gt;  &lt;p&gt;Next, is to workout why these list entries are duplicated.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-221120692675117893?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/221120692675117893/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=221120692675117893" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/221120692675117893?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/221120692675117893?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/66nt0goXnL4/manage-content-and-structure-unknown.html" title="Manage Content and Structure (An Unknown Error Occured)" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/07/manage-content-and-structure-unknown.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4NQHw6eyp7ImA9WxFbEEQ.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-4255976699526827105</id><published>2010-07-02T19:18:00.001+01:00</published><updated>2010-07-02T19:23:11.213+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-02T19:23:11.213+01:00</app:edited><title>Error when creating custom list from New.aspx</title><content type="html">&lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;Anyone who’s been developing SharePoint will I am sure have had problems building custom list schemas. However, this one I hadn’t seen before.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;The Problem&lt;/h3&gt;  &lt;p&gt;A custom site definition had been built which activated a feature which created an instance of a custom list for holding event list items.&lt;/p&gt;  &lt;p&gt;When the site was created the events list was created perfectly, no problems. &lt;/p&gt;  &lt;p&gt;However, when the list is created through the GUI, by clicking on Site Actions-&amp;gt;View All Site Content and clicking Create and choosing the custom list type.&lt;/p&gt;  &lt;p&gt;This brings up the new.aspx form, once the title and description is filled out and the create button clicked then the following exception was thrown :-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Exception occurred. (Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION)) at Microsoft.SharePoint.Library.SPRequestInternalClass.CreateListFromFormPost(String bstrUrl, String&amp;amp; pbstrGuid, String&amp;amp; pbstrNextUrl)      &lt;br /&gt;at Microsoft.SharePoint.Library.SPRequest.CreateListFromFormPost(String bstrUrl, String&amp;amp; pbstrGuid, String&amp;amp; pbstrNextUrl)&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Solution&lt;/h3&gt;  &lt;p&gt;So the problem is something to do with the list schema.xml file. This schema.xml file is found in the feature directory. I use the following directory structure:-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;12HIVE\Templates\Features\ListFeatureName\ListName\schema.xml&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Looking at the error, the stack trace mentions the function, CreateListFromFormPost. I thought the issue was due to a custom NewForm page that we were using. &lt;/p&gt;  &lt;p&gt;I could not find anything that would fix the issue, even replacing all the custom xml relating to the NewForm element. &lt;/p&gt;  &lt;p&gt;However, the schema.xml was missing an attribute, this was the Url=”” attribute part of the &amp;lt;List&amp;gt; element.&lt;/p&gt;  &lt;p&gt;This issue was found by comparing the schema.xml file with an out of the box schema.xml. As soon as the Url attribute was provided (even if the attribute was blank) then the list was created properly.&lt;/p&gt;  &lt;p&gt;To recap the section of the schema that needed to updated was:-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;List xmlns:ows=&amp;quot;Microsoft SharePoint&amp;quot; Title=&amp;quot;Events&amp;quot; DisableAttachments=&amp;quot;TRUE&amp;quot; FolderCreation=&amp;quot;FALSE&amp;quot; &lt;em&gt;&lt;strong&gt;Url=&amp;quot;Lists/Events&amp;quot;&lt;/strong&gt;&lt;/em&gt; EnableContentTypes=&amp;quot;TRUE&amp;quot; BaseType=&amp;quot;0&amp;quot;&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The way that a list is created through a List Feature Instance must be called by some separate code function probably something like CreateListFromListInstanceFeature() instead of CreateListFromFormPost() and hence the list is created ok by the List Feature.&lt;/p&gt;  &lt;p&gt;There are a few conversations about this on MSDN but when I first read them I didn’t realise the solution that they were pointing to.&lt;/p&gt;  &lt;p&gt;These posts are:-   &lt;br /&gt;&lt;a title="http://social.msdn.microsoft.com/Forums/en/sharepointcustomization/thread/458e5716-4fa4-425c-9fda-88ce4ccc6203" href="http://social.msdn.microsoft.com/Forums/en/sharepointcustomization/thread/458e5716-4fa4-425c-9fda-88ce4ccc6203"&gt;http://social.msdn.microsoft.com/Forums/en/sharepointcustomization/thread/458e5716-4fa4-425c-9fda-88ce4ccc6203&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and&lt;/p&gt;  &lt;p&gt;&lt;a title="http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/86dd7485-48cc-4836-ad09-40192bd54841" href="http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/86dd7485-48cc-4836-ad09-40192bd54841"&gt;http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/86dd7485-48cc-4836-ad09-40192bd54841&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Anyway hope that helps.&lt;/p&gt;  &lt;p&gt;Simon&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-4255976699526827105?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/4255976699526827105/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=4255976699526827105" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4255976699526827105?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4255976699526827105?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/iNCy7tgWv7w/error-when-creating-custom-list-from.html" title="Error when creating custom list from New.aspx" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/07/error-when-creating-custom-list-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MFQX8zeyp7ImA9WxFVFUg.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-2891094617076876968</id><published>2010-06-14T22:36:00.001+01:00</published><updated>2010-06-14T22:36:50.183+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-14T22:36:50.183+01:00</app:edited><title>Experiences applying SharePoint Themes to a SharePoint Farm</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;So I have already written this blog post once, but Windows Update decided to reboot as I was finishing the blog post. Unfortunately I hit Ctrl + V as it asked if I wanted to save the post – then it rebooted.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Windows Live Writer has an auto save post function, I have now enabled this to save further frustrations. Shame it’s not on by default!&lt;/p&gt;  &lt;p&gt;Anyway so what did I write..? &lt;/p&gt;  &lt;p&gt;I have been recently updating some themes that have already been deployed to a SharePoint farm. I thought the process would be pretty straight-forward as the files were already packaged up as a WSP. I thought the process would be something like this:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;update theme.css within the theme folder&lt;/li&gt;    &lt;li&gt;package up the changes into a WSP file&lt;/li&gt;    &lt;li&gt;update the solution with stsadm –o updatesolution&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Unfortunately this wasn’t the case.&lt;/p&gt;  &lt;p&gt;So what happened? Well I updated the solution and loaded up the SharePoint site and nothing had changed. “Ah ha” I thought it’s probably because IE is caching the CSS file. So pressed CTRL+F5 to expire the cache the page loaded again with no change. &lt;/p&gt;  &lt;p&gt;Using the IE developer toolbar I selected the element and used trace style to find out why the CSS class hadn’t changed. The toolbar opened up a strangely named CSS file called ITSP1001-65001.css. Looking at the CSS styles I could see that yep, the style hadn’t changed.&lt;/p&gt;  &lt;p&gt;So what the heck was this file? I certainly hadn’t created it and its not in my THEME folder inside c:\program files\common files\microsoft\web server extensions\12\template\themes\THEME.&lt;/p&gt;  &lt;p&gt;After some investigation and reading a couple of blog posts such as this one from Shane Perran’s blog site. (&lt;a title="http://www.graphicalwonder.com/?p=419" href="http://www.graphicalwonder.com/?p=419"&gt;http://www.graphicalwonder.com/?p=419&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;I discovered that the file is automatically created when a theme is applied.&lt;/p&gt;  &lt;p&gt;So what happens? Well SharePoint merges the following css files:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;core.css&lt;/li&gt;    &lt;li&gt;[alternative css file for your site definition]&lt;/li&gt;    &lt;li&gt;theme.css&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This creates a file using the first 4 letters of the THEME name with 1001-65001.css&amp;#160; appended to the end. This file along with the rest of the files from the Theme folder is uploaded into a folder _theme/THEMENAME found at the root of the site. You can see this folder in SharePoint Designer.&lt;/p&gt;  &lt;p&gt;So because this file is only created when you apply a theme that is why it was not updated when the solution updated. So I applied the theme again and still no luck!&lt;/p&gt;  &lt;p&gt;It turns out that you need to apply another theme first such as CLASSIC and then reapply your custom theme. &lt;/p&gt;  &lt;p&gt;Tada the theme is now updated!&lt;/p&gt;  &lt;p&gt;Unfortunately the process of reapplying the theme is tedious but fortunately Gary LaPointe’s stsadm extensions came to the rescue in the form of &lt;a href="http://stsadm.blogspot.com/2008/01/apply-theme.html" target="_blank"&gt;stsadm –o gl-applytheme&lt;/a&gt; (&lt;a title="http://stsadm.blogspot.com/2008/01/apply-theme.html" href="http://stsadm.blogspot.com/2008/01/apply-theme.html"&gt;http://stsadm.blogspot.com/2008/01/apply-theme.html&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;The following stsadm commands were used:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;stsadm –o gl-applytheme –theme CLASSIC –url [http://sharepoint]&lt;/li&gt;    &lt;li&gt;stsadm –o gl-applytheme – theme THEMENAME –url [http://sharepoint]&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Once all the changes had been made then all the sites needed to be updated, not a fun task! Once again the stsadm –o gl-applytheme came to the rescue in the form of a recursive option.&lt;/p&gt;  &lt;p&gt;Using the stsadm command with the recursive option all the SharePoint site collection were updated in no time.&lt;/p&gt;  &lt;p&gt;I hope that this post helped, if you have any questions or there is something that you need more info on then just leave a comment.&lt;/p&gt;  &lt;p&gt;Thanks for reading&lt;/p&gt;  &lt;p&gt;Simon&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-2891094617076876968?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/2891094617076876968/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=2891094617076876968" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/2891094617076876968?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/2891094617076876968?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/A3GIDW0FReo/experiences-applying-sharepoint-themes.html" title="Experiences applying SharePoint Themes to a SharePoint Farm" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/06/experiences-applying-sharepoint-themes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8BRnY5cCp7ImA9WxFWE0k.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-1304305785116458976</id><published>2010-05-31T22:20:00.001+01:00</published><updated>2010-05-31T22:20:57.828+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-31T22:20:57.828+01:00</app:edited><title>Password prompt when posting a note in SharePoint 2010</title><content type="html">&lt;p&gt;When you post a note within a SharePoint 2010 site the note is recorded against your user profile. If your IE zone settings have your My Site URL in the Internet Zone then you will be prompted for a password.&lt;/p&gt;  &lt;p&gt;To resolve this issue add the SharePoint mysites URL to your Local Intranet zone.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-1304305785116458976?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/1304305785116458976/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=1304305785116458976" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/1304305785116458976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/1304305785116458976?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/3ndy2efLjsg/password-prompt-when-posting-note-in.html" title="Password prompt when posting a note in SharePoint 2010" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/05/password-prompt-when-posting-note-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08GQX8_fyp7ImA9WxFWEkk.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-1061274978771066566</id><published>2010-05-30T19:36:00.001+01:00</published><updated>2010-05-30T19:57:00.147+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-30T19:57:00.147+01:00</app:edited><title>Experiences building SharePoint Designer Custom Workflow Actions</title><content type="html">&lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;Introduction&lt;/h4&gt;  &lt;p&gt;For some reason I have shyed away from creating custom SharePoint Designer Workflow Actions. However, one of my clients uses a fair amount of SharePoint designer based workflows. &lt;/p&gt;  &lt;p&gt;The requirement was to retrieve the workflow id so that they could provide a user a link to the workflow status page.   &lt;br /&gt;    &lt;br /&gt;With the out of the box workflow actions this is not possible. So the only method would be to build a custom workflow action. Initially, I thought the process was going to be pretty straightforward. Over the last few years I have read plenty of articles about how to build custom actions including a few of the pitfalls. However, the process wasn’t as straight forward as I thought and I hit a few problems. This blog entry will hopefully share my experiences and     &lt;br /&gt;explain how I figured them out. In the end the final error was a stupid eror! Though it came about through the process of fixing a previous error I had. Hopefully my experience will help others to figure this out quicker, so here goes. &lt;/p&gt;  &lt;p&gt;Using Visual Studio I created a new Visual Studio project using the Workflow Activity project type. The first discussion to make was whether to build from the SequentialActivity or Activity base class. I decided to use a SequentialActivity base class.&lt;/p&gt;  &lt;p&gt;The following code was created:-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;public partial class GetWorkflowInstanceInfoActivity : SequenceActivity     &lt;br /&gt;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #region Dependency Properties &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //The SharePoint workflow properties activation object     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static DependencyProperty __ActivationPropertiesProperty = DependencyProperty.Register(&amp;quot;__ActivationProperties&amp;quot;, typeof(SPWorkflowActivationProperties), typeof(GetWorkflowInstanceInfoActivity)); &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Using a DependencyProperty as the backing store for WorkflowInstanceIdProperty.&amp;#160; This enables animation, styling, binding, etc...     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static DependencyProperty WorkflowInstanceIdVariableProperty = DependencyProperty.Register(&amp;quot;WorkflowInstanceIdVariable&amp;quot;, typeof(string), typeof(GetWorkflowInstanceInfoActivity)); &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Using a DependencyProperty as the backing store for WorkflowInstanceIdProperty.&amp;#160; This enables animation, styling, binding, etc...     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static DependencyProperty __ContextProperty = DependencyProperty.Register(&amp;quot;__Context&amp;quot;, typeof(WorkflowContext), typeof(GetWorkflowInstanceInfoActivity)); &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Description(&amp;quot;The WorkflowInstanceId for the workflow.&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ValidationOption(ValidationOption.Required)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string WorkflowInstanceIdVariable      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get { return (string)(base.GetValue(WorkflowInstanceIdVariableProperty)); }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set { base.SetValue(WorkflowInstanceIdVariableProperty, value); }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Description(&amp;quot;The Workflow Properties&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ValidationOption(ValidationOption.Required)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public SPWorkflowActivationProperties __ActivationProperties      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get { return (SPWorkflowActivationProperties)(base.GetValue(__ActivationPropertiesProperty)); }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set { base.SetValue(__ActivationPropertiesProperty, value); }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Description(&amp;quot;The Workflow Context object&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [ValidationOption(ValidationOption.Optional)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Browsable(false)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public WorkflowContext __Context      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return (WorkflowContext)(base.GetValue(__ContextProperty));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.SetValue(__ContextProperty, value);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #endregion &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public GetWorkflowInstanceInfoActivity()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ActivityExecutionStatus status = ActivityExecutionStatus.Faulting;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //build up the workflow information class.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (__ActivationProperties != null)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkflowInstanceIdVariable = __ActivationProperties.WorkflowId.ToString();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; status = ActivityExecutionStatus.Closed;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception ex)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; status = ActivityExecutionStatus.Faulting; &lt;/p&gt;    &lt;p align="left"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; throw;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return status;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In order for project to work two references were added to the project, these were Microsoft.SharePoint.dll and Microsoft.SharePoint.WorkflowActivities.dll.&lt;/p&gt;  &lt;p&gt;Within the code there are two special properties, __ActivationProperties and __Context. Both these properties are always made available by the SharePoint Designer workflow actions framework. This post by Phil Allen is incredibly useful and explains a lot about how the SharePoint Designer workflow actions work: &lt;a href="http://blogs.msdn.com/b/sharepointdesigner/archive/2007/09/30/getting-to-workflow-information.aspx"&gt;http://blogs.msdn.com/b/sharepointdesigner/archive/2007/09/30/getting-to-workflow-information.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The following properties are provided by the SharePoint Designer workflow action framework:   &lt;br /&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p&gt;&lt;b&gt;Property Name&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;&lt;b&gt;Value it is set to&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;&lt;b&gt;.Net type&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p&gt;__ActivationProperties&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;__initProps, the SPWorkflowActivationProperties that was passed in via OnWorkflowActivated&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p&gt;__ListId&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;__list, the name of the &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspx"&gt;SPList&lt;/a&gt; the workflow is executing on. This is typically a string datatype which contains the text of a System.Guid.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;System.String&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p&gt;__ListItem&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;__item, the integer value of the list item in the list that the workflow is running on.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;System.Int32&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p&gt;__Context&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;__context, the object that contains many helper methods and objects for use as part of workflow actions&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.workflowactions.workflowcontext.aspx"&gt;Microsoft.SharePoint.WorkflowActions.WorkflowContext&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Once the workflow assembly compiles then it needs to be signed as the assembly needs to be deployed to the GAC.&lt;/p&gt;  &lt;p&gt;Next a .ACTIONS file is created. This file describes how SharePoint Designer displays the Custom Action within the SharePoint Designer Workflow builder.&lt;/p&gt;  &lt;p&gt;This ACTION file should be deployed in the 12HIVE\Templates\1033\Layouts\Workflow folder. To help you understand the ACTIONS file take a look at the WSS.ACTIONS which describes the out of the box actions.&lt;/p&gt;  &lt;p&gt;Our action file should look like this:-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;     &lt;br /&gt;&amp;lt;WorkflowInfo&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;Actions Sequential=&amp;quot;then&amp;quot; Parallel=&amp;quot;and&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Action Name=&amp;quot;Get WorkflowInstanceId&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ClassName=&amp;quot;ITSP.Foundation.SPDActivities.GetWorkflowInstanceInfoActivity&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Assembly=&amp;quot;ITSP.Foundation.SPDActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a52a37e312a5558&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AppliesTo=&amp;quot;all&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CreatesTask =&amp;quot;false&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Category=&amp;quot;Custom&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;RuleDesigner Sentence=&amp;quot;Store WorkflowInstanceID in %1&amp;quot; AppliesTo=&amp;quot;all&amp;quot; Name=&amp;quot;AssignWorkflowInstanceVariable&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FieldBind Field=&amp;quot;WorkflowInstanceIdVariable&amp;quot; Text=&amp;quot;variable&amp;quot; Id=&amp;quot;1&amp;quot; DesignerType=&amp;quot;ParameterNames&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/RuleDesigner&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Parameters&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Parameter Name=&amp;quot;WorkflowInstanceIdVariable&amp;quot; Type=&amp;quot;System.String, mscorlib&amp;quot; Direction=&amp;quot;Out&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Parameter Name=&amp;quot;__Context&amp;quot; Type=&amp;quot;Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions&amp;quot; Direction=&amp;quot;In&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Parameter Name=&amp;quot;__ActivationProperties&amp;quot; Type=&amp;quot;Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties, Microsoft.SharePoint&amp;quot; Direction=&amp;quot;Out&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Parameters&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Action&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/Actions&amp;gt;      &lt;br /&gt;&amp;lt;/WorkflowInfo&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Once the ACTION file has been created then we need to deploy our custom activity using the SharePoint solution framework. For this I recommend using WSPBuilder (&lt;a href="http://wspbuilder.codeplex.com"&gt;http://wspbuilder.codeplex.com&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Once the Custom Action has been built as a solution deploy the solution file then deploy using stsadm –o addsolution and deploy with stsadm –o deploysolution.&lt;/p&gt;  &lt;p&gt;The final two steps are :-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ensure SharePoint can load our assembly reference to the web.config&lt;/li&gt;    &lt;li&gt;Ensure that SharePoint Designer can trust the assembly&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To add our assembly to the web.config add the following line within the &amp;lt;assemblies&amp;gt; &amp;lt;/assemblies&amp;gt; elements :-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;add assembly=&amp;quot;ITSP.Foundation.SPDActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a52a37e312a5558&amp;quot; /&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This should be added to the web.config file which belongs to the web application in which the workflow will run.&lt;/p&gt;  &lt;p&gt;To ensure that SharePoint Designer is able to trust the assembly then need to add another configuration setting to the same web.config file.&lt;/p&gt;  &lt;p&gt;This should be added to the &amp;lt;authorisedTypes&amp;gt;&amp;lt;/authorisedTypes&amp;gt; elements.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;authorizedTypes&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authorizedType Assembly=&amp;quot;ITSP.Foundation.SPDActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a52a37e312a5558&amp;quot; Namespace=&amp;quot;ITSP.Foundation.SPDActivities&amp;quot; TypeName=&amp;quot;*&amp;quot; Authorized=&amp;quot;True&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;/authorizedTypes&amp;gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Take special notice to the Namespace tag, I have seen examples on the web that state this should be ITSP.Foundation.SPDActivities.* when this was used then SharePoint Designer could not add the action to the workflow.&lt;/p&gt;  &lt;p&gt;Once the solution has been deployed and the assemblies setup within the web.config we are ready to the test the workflow.&lt;/p&gt;  &lt;p&gt;Fire up SharePoint Designer and open up the site and then:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click New-&amp;gt;Workflow&lt;/li&gt;    &lt;li&gt;Choose the Blank Workflow&lt;/li&gt;    &lt;li&gt;Give the workflow a name&lt;/li&gt;    &lt;li&gt;Click Next&lt;/li&gt;    &lt;li&gt;Give the workflow step a name such as Get WorkflowID&lt;/li&gt;    &lt;li&gt;Click on the Actions button and click the last list item to display all workflow actions available. From the categories you should have a custom group, choose Get Workflow Instance ID&lt;/li&gt;    &lt;li&gt;This should now display the action and allow you to assign a variable to store the variable into.&lt;/li&gt;    &lt;li&gt;Finally create another action, this time use Build a Dynamic String. This will be used to build a string and store our concatenated string to the workflow history log. Create a variable called LoggingVariable to store the results of the Build Dynamic String Action&lt;/li&gt;    &lt;li&gt;Click on the f(x) button and then type “This is the workflow id: “ and then insert the variable that was used to retrieve the workflow instance id.&lt;/li&gt;    &lt;li&gt;Finally create another action using “Log to History” to log the LoggingVariable into the history log&lt;/li&gt;    &lt;li&gt;Click Check Workflow, everything should be ok and then click Finish.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally test the workflow.&lt;/p&gt;  &lt;p&gt;All of this took a while to get working and I liked to explains some of the issues I had and then the method that was used to fix them.&lt;/p&gt;  &lt;h3&gt;Issues&lt;/h3&gt;  &lt;h4&gt;Issue 1&lt;/h4&gt;  &lt;p&gt;Once the action file was created it did not appear in SharePoint designer. The fix: restart SharePoint designer and add an entry to SharePoint's web application web.config within the &amp;lt;authorizedTypes&amp;gt; tag.&lt;/p&gt;  &lt;h4&gt;Issue 2&lt;/h4&gt;  &lt;p&gt;When the custom action did show up in SharePoint Designer, and was selected to be added as a Workflow Action nothing would show. This was because of a problem with Namespace attribute in the &amp;lt;authorizedType&amp;gt; element.   &lt;br /&gt;    &lt;br /&gt;The value was ITSP.Foundation.SPDActivities.* as soon as this was changed to ITSP.Foundation.SPDActivities then the action was entered in correctly. This didn't require a restart of SharePoint designer.    &lt;br /&gt;eg.    &lt;br /&gt;&amp;lt;authorizedTypes&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authorizedType Assembly=&amp;quot;ITSP.Foundation.SPDActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a52a37e312a5558&amp;quot; Namespace=&amp;quot;ITSP.Foundation.SPDActivities&amp;quot; TypeName=&amp;quot;*&amp;quot; Authorized=&amp;quot;True&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;lt;/authorizedTypes&amp;gt; &lt;/p&gt;  &lt;h4&gt;Issue 3&lt;/h4&gt;  &lt;p&gt;This problem took the longest to solve and I have seen loads of people post similar problems. This issue seemed to only affect any output fields, particularly ones which used a Field Binding with DesignerType=”ParameterNames”. The symptoms would be that once the action was added in a workflow step and you tried to select a variable to store the action's result in it would reset back to nothing. That is the variable would never be stored properly.&lt;/p&gt;  &lt;p&gt;The problem was caused by the action file assembly details being incorrect. The ActivityClass was set to ITSP.Foundation.SPDActivities.GetWorkflowInfo and not ITSP.Foundation.SPDActivities.GetWorkflowInfoActivity.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&amp;lt;Action Name=&amp;quot;Get WorkflowInstanceID”&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ClassName=&amp;quot;ITSP.Foundation.SPDActivities.GetWorkflowInstanceInfoActivity&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Assembly=&amp;quot;ITSP.Foundation.SPDActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6a52a37e312a5558&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AppliesTo=&amp;quot;all&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CreatesTask =&amp;quot;false&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Category=&amp;quot;Custom&amp;quot;&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This issue came about because of changes made when trying to fix issue 2. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;Once again Phil Allen's article helped a lot and I ended up also updating the Actions parameter file to include the following:-     &lt;br /&gt;The important part in the &amp;lt;Parameters&amp;gt; elements is the &lt;strong&gt;Type&lt;/strong&gt; field which should include both Class and Assembly.      &lt;br /&gt;&amp;lt;Parameters&amp;gt;      &lt;br /&gt;&amp;lt;Parameter Name=&amp;quot;WorkflowInstanceIdVariable&amp;quot; Type=&amp;quot;System.String, mscorlib&amp;quot; Direction=&amp;quot;Out&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;Parameter Name=&amp;quot;__Context&amp;quot; Type=&amp;quot;Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions&amp;quot; Direction=&amp;quot;In&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;Parameter Name=&amp;quot;__ActivationProperties&amp;quot; Type=&amp;quot;Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties, Microsoft.SharePoint&amp;quot; Direction=&amp;quot;Out&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;/Parameters&amp;gt;&lt;/p&gt;    &lt;p align="left"&gt;     &lt;br /&gt;Note: because I was using a Parameter which had the class SPWorklowActivationProperties I had to include a reference to Microsoft.SharePoint.dll. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So how did I resolve issue 3? Well when a workflow is created within SharePoint Designer there is a moment where SharePoint downloads details of the workflow actions which are available. In doing this it cache’s the various assemblies and creates a proxy stub which is stored on your machine.    &lt;br /&gt;This is the reason why you need to restart SharePoint designer after you make changes to the assembly.    &lt;br /&gt;This proxy stub is found in your user's %userprofile%\Local Settings\Application Data\Microsoft\WebsiteCache\ directory. Within this directory is a directory for each website that there are assembly caches for. I opened up the assembly proxy in &lt;a href="http://www.red-gate.com/products/reflector/" target="_blank"&gt;.NET Reflector&lt;/a&gt;. Once opened this allowed me to workout that there were two classes in this assembly. The class that my ACTIONS file was pointing to was the wrong one!    &lt;br /&gt;So there were two classes being :-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ITSP.Foundation.SPDActivities.GetWorkflowInstanceInfoActivity&lt;/li&gt;    &lt;li&gt;ITSP.Foundation.SPDActivities.GetWorkflowInstanceInfo.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It turns out that I had forgotten to rename the class properly. I had updated the workflow activity code file but not the designer.cs file!! &lt;/p&gt;  &lt;p&gt;Once the assembly was fixed, solution redeployed and SharePoint Designer restarted then everything worked beautifully. &lt;/p&gt;  &lt;p&gt;You can download the projects here:   &lt;br /&gt;&lt;a href="http://www.ithinksharepoint.com/code/ITSP.Foundation.SPDActivities.zip" target="_blank"&gt;ITSP.Foundation.SPDActivities.zip&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Please let me know if you found this post useful!&lt;/p&gt;  &lt;p&gt;Good luck&lt;/p&gt;  &lt;p&gt;Simon&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-1061274978771066566?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/1061274978771066566/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=1061274978771066566" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/1061274978771066566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/1061274978771066566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/I0ggoRgdNME/experiences-building-sharepoint.html" title="Experiences building SharePoint Designer Custom Workflow Actions" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/05/experiences-building-sharepoint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUASHY7eCp7ImA9WxFRE0g.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-2855880368890878786</id><published>2010-04-27T07:35:00.001+01:00</published><updated>2010-04-27T07:37:29.800+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-27T07:37:29.800+01:00</app:edited><title>Infopath Form Services error due to Missing State Service</title><content type="html">&lt;p&gt;In SharePoint 2007, if you tried to run an InfoPath form on InfoPath form services before installing a Shared Service Provider you received an error saying that there was no session state available. &lt;/p&gt;  &lt;p&gt;I have been setting up SharePoint 2010 manually to understand the process in more detail and had been looking out for some service to do with Session State. However, the State Service is not a service you can create through the Central Administration site. As this is the cause, I presumed that session state would be handled by another SharePoint managed service.&lt;/p&gt;  &lt;p&gt;After setting up a web application and site collection, I tried to publish a page and received an error something like the following, &amp;quot;An error has occurred with the Form Service there is a misconfiguration of the Microsoft SharePoint State Service”.&lt;/p&gt;  &lt;p&gt;So there is a state service! Unfortunately the state service can only be created via the Farm Configuration Wizard or&amp;#160; manually by using Powershell. &lt;/p&gt;  &lt;p&gt;After some digging I found the following post on &lt;a href="http://technet.microsoft.com/en-us/library/ee704548%28office.14%29.aspx" target="_blank"&gt;Technet&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Essentially the process to create the State Service is the following:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Logon to SharePoint Farm&lt;/li&gt;    &lt;li&gt;Run the SharePoint Powershell Management Console&lt;/li&gt;    &lt;li&gt;Create the state service app by typing: &lt;strong&gt;$stateserviceApp = New-SPStateServiceApplication -Name &amp;quot;My State Service&amp;quot;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Associate a database with the state service by typing:&lt;strong&gt; New-SPStateServiceDatabase -Name &amp;quot;MyStateServiceDatabase&amp;quot; -ServiceApplication $stateserviceApp&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;Associate a state service proxy to the state service by typing: &lt;strong&gt;New-SPStateServiceApplicationProxy -Name &amp;quot;My State Service Proxy&amp;quot; -ServiceApplication $stateserviceApp -DefaultProxyGroup&lt;/strong&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This will create a State Service for your SharePoint farm.&lt;/p&gt;  &lt;p&gt;For more information please see the following &lt;a href="http://technet.microsoft.com/en-us/library/ee704548%28office.14%29.aspx" target="_blank"&gt;Technet Article&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/5437967044881593393-2855880368890878786?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/2855880368890878786/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=2855880368890878786" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/2855880368890878786?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/2855880368890878786?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/PZo23i1Tx2A/infopath-form-services-error-due-to.html" title="Infopath Form Services error due to Missing State Service" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/04/infopath-form-services-error-due-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYNQ3k5eyp7ImA9WxFRE0w.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-3505006079594196343</id><published>2010-03-23T10:49:00.001Z</published><updated>2010-04-26T22:26:32.723+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-26T22:26:32.723+01:00</app:edited><title>Terrible VMWare Server Guest Network Performance</title><content type="html">With SharePoint 2010 almost out, I started building a new development server using VMWare Server 2.0 running on a Windows 2008 R2 host. The details of the build will be posted on here later.&lt;br /&gt;
However, one of the biggest problems I faced was getting software installed on the guests. Currently I am trying to install SQL Server 2008 which was take an extrodinary longtime to install, so much so that I thought it was hanging. Eventually I decided to copy over the setup files to the guest machine. Originally the installer had been run from a share on the host, it was only when I started the copy did the problem become apparent.&lt;br /&gt;
&lt;br /&gt;
The file copy speed was 10kb/s!! Obviously this is rather slow and I started to do some investigation.&lt;br /&gt;
&lt;br /&gt;
There were a number of posts relating to TCP Offloading on the VMWare site however the fixes had no effect. I was disabling the TCP offloading within the guest on the Intel Pro e1000 driver.&lt;br /&gt;
&lt;br /&gt;
However, it was this set of posts which lead me to solving the problem:&lt;br /&gt;
&lt;a href="http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/bdc40358-45c8-4c4b-883b-a695f382e01a"&gt;http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/bdc40358-45c8-4c4b-883b-a695f382e01a &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Basically rather than disabling it on the guest you need to disable it on the host. My guest machines are all setup to use bridged networking so I disabled the TCP Offloading / Large Send Offloading (v4) for the Realtek device using Start-&amp;gt;Network-&amp;gt;Network and Sharing Centre. Click on the Local Network Connection-&amp;gt;Properties-&amp;gt;Configure (under network adapter)-&amp;gt;Advanced-&amp;gt;Large Send Offloading (v4) = Disabled.&lt;br /&gt;
&lt;br /&gt;
Anyway hope that helps anyone else who is experiencing similar problems.&lt;br /&gt;
&lt;br /&gt;
Whilst I write this post the SQL Server setup files have copied over in less than 10 mins (instead of 3 to 4 hours hurrah!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-3505006079594196343?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/3505006079594196343/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=3505006079594196343" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/3505006079594196343?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/3505006079594196343?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/RsG7ImcuptE/terrible-vmware-server-guest-network.html" title="Terrible VMWare Server Guest Network Performance" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/03/terrible-vmware-server-guest-network.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGRH0zeip7ImA9WxBWGEw.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-8212619446906905399</id><published>2010-02-10T14:33:00.000Z</published><updated>2010-02-10T14:33:45.382Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-10T14:33:45.382Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="memory leak" /><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint" /><title>SharePoint Memory Leak (one for the geeks)</title><content type="html">&lt;h4&gt;Introduction&lt;/h4&gt;  &lt;p&gt;&lt;a href="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx" target="_blank"&gt;Todd Carter&lt;/a&gt; has found a core issue with SharePoint 2007 relating to the way that memory is disposed. Over the past couple of years memory management has become quite a hot topic and best practises have been published such as ensuring that you dispose of certain SharePoint objects (e.g. SPSite and SPWeb) after using them. These discoveries have lead to tools such &lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/11/12/announcing-spdisposecheck-tool-for-sharepoint-developers.aspx" target="_blank"&gt;SPDisposeCheck&lt;/a&gt; being released.&lt;/p&gt;  &lt;p&gt;Todd however thought there was more to it and has investigated into SharePoint’s memory usage even further and uncovered a bigger issue.&lt;/p&gt;  &lt;p&gt;An interesting article delving into the internals of Sharepoint, explaining the problem and then providing a workaround, a full fix is due shortly. &lt;/p&gt;  &lt;p&gt;Funnily enough SharePoint 2010 does not seem to suffer from this problem, maybe thats a good reason for a client to upgrade!&lt;/p&gt;  &lt;p&gt;&lt;a title="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx" href="http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx"&gt;http://todd-carter.com/post/2010/02/08/SharePointe28099s-Sasquatch-Memory-Leak.aspx&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/5437967044881593393-8212619446906905399?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/8212619446906905399/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=8212619446906905399" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/8212619446906905399?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/8212619446906905399?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/DYqT92TpQ7s/sharepoint-memory-leak-one-for-geeks.html" title="SharePoint Memory Leak (one for the geeks)" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/02/sharepoint-memory-leak-one-for-geeks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHQXg_eip7ImA9WxBQFU0.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-896219100236388685</id><published>2010-01-14T20:20:00.000Z</published><updated>2010-01-14T20:20:30.642Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-14T20:20:30.642Z</app:edited><title>SharePoint 2010 Exams</title><content type="html">Recently I have been going through the process of studying and taking my MCTS: SharePoint exams. Anyway I am halfway through and thought I should take a look at what Microsoft have got in store for SharePoint 2010. From the&lt;a href="http://go.microsoft.com/fwlink/?LinkId=167787"&gt; SharePoint 2010 Learning Plan&lt;/a&gt; I found these:-&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Technology Specialist: Configuring SharePoint 2010 (70-667) &lt;/b&gt;&lt;br /&gt;
With the training courses of this MCTS certification, IT Professionals can learn configuration skills for SharePoint, including deployment, upgrade, management and operation on a server farm.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;IT Professional: Administrating SharePoint 2010 (70-668)&amp;nbsp; &lt;/b&gt;&lt;br /&gt;
The training courses of this MCITP certification cover advanced SharePoint 2010 topics like capacity planning, topology designing and performance tuning.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;     &lt;b&gt;TS: Microsoft SharePoint 2010, Application Development&lt;/b&gt;         (&lt;b&gt;70-573)&lt;/b&gt;&lt;br /&gt;
Microsoft Official Curriculum: Five-day instructor-led course designed for developers with six months or more of .NET development experience. Course covers what you need to know to be an effective member of a SharePoint development team using Visual Studio 2010. &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;     &lt;b&gt;PRO: Designing and Developing Microsoft SharePoint 2010 Applications&lt;/b&gt;         (&lt;b&gt;70-576)&lt;/b&gt;&lt;br /&gt;
Microsoft Official Curriculum: Five-day instructor-led training course designed for development team leads who have already passed the Developing on SharePoint 2010 technical specialist exam. The course covers choosing technologies for and scoping a SharePoint project, best practices for SharePoint development, configuring a SharePoint development environment, advanced use of SharePoint developer features, and debugging of code in a SharePoint project. &lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-896219100236388685?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/896219100236388685/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=896219100236388685" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/896219100236388685?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/896219100236388685?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/6K7A2dP8Sn4/sharepoint-2010-exams.html" title="SharePoint 2010 Exams" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/01/sharepoint-2010-exams.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUMSHg5fSp7ImA9WxBRGEQ.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-4551526430509573563</id><published>2010-01-05T10:30:00.000Z</published><updated>2010-01-07T20:48:09.625Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-07T20:48:09.625Z</app:edited><title>MCP Virtual Business Cards</title><content type="html">I received an email from the UK SharePoint User Group and saw a message for a meeting in&amp;#160; Nottingham. One of the guys involved Andrew Pounder had a cool feature which I hadn't seen before he had an Microsoft Virtual Business Card!  &lt;br /&gt;  &lt;br /&gt;The business card is available to anyone with an MCP qualification and allows you to promote t those certifications that you spent so much time studying for!  &lt;br /&gt;  &lt;br /&gt;Take a look at &lt;a href="https://www.mcpvirtualbusinesscard.com/"&gt;https://www.mcpvirtualbusinesscard.com&lt;/a&gt;  &lt;br /&gt;  &lt;br /&gt;My profile is here: &lt;a href="https://www.mcpvirtualbusinesscard.com/VBCServer/simondoy/profile"&gt;https://www.mcpvirtualbusinesscard.com/VBCServer/simondoy/profile&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-4551526430509573563?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="https://www.mcpvirtualbusinesscard.com/VBCServer/simondoy/profile" title="MCP Virtual Business Cards" /><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/4551526430509573563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=4551526430509573563" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4551526430509573563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4551526430509573563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/_9ULFL4sSas/mcp-virtual-business-cards.html" title="MCP Virtual Business Cards" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2010/01/mcp-virtual-business-cards.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcMQnY_cCp7ImA9WxBTGUg.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-5000343459480956822</id><published>2009-12-16T09:01:00.000Z</published><updated>2009-12-16T09:01:23.848Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-16T09:01:23.848Z</app:edited><title>SPVSX (SharePoint Visual Studio Extensions) Alpha Released</title><content type="html">One of my teammates, &lt;a href="http://blog.mattsmith.co.nz/default.aspx"&gt;Matt Smith&lt;/a&gt;, has been working hard alongside &lt;a href="http://weshackett.spaces.live.com/"&gt;Wes Hackett&lt;/a&gt;, &lt;a href="http://www.glynblogs.com/"&gt;Glyn&amp;nbsp;Clough&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.martinhatch.com/"&gt;Martin Hatch&lt;/a&gt;&amp;nbsp;on what looks to be a very interesting tool to help us developers. &lt;br /&gt;
&lt;br /&gt;
The tool extends the new Visual Studio 2010 SharePoint development features&amp;nbsp;further providing the following key points:-&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Deployment &lt;/li&gt;
&lt;li&gt;Quick Deploy (similar to Copy to 12/GAC in old-school WSPBuilder and VSeWSS 1.3) &lt;/li&gt;
&lt;li&gt;Quick Deploy Custom Deployment Steps and Configurations &lt;/li&gt;
&lt;li&gt;Project and Solution-level Quick Deploy (without changing deployment configuration) &lt;/li&gt;
&lt;li&gt;Copy to SharePoint Root at File and SharePoint Item (SPI)-level (right-click in Solution Explorer) &lt;/li&gt;
&lt;li&gt;Auto Copy to SharePoint Root when saving a file (e.g. auto deploy a change to an ASCX) &lt;/li&gt;
&lt;li&gt;Auto Copy to GAC/BIN when building a project &lt;/li&gt;
&lt;li&gt;Restart IIS &lt;/li&gt;
&lt;li&gt;Recycle app pools &lt;/li&gt;
&lt;li&gt;Attach to IIS worker processes (for quicker debugging!)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;Matt has more details on his &lt;a href="http://blog.mattsmith.co.nz/Lists/Posts/Post.aspx?ID=123"&gt;blog&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;To download the extensions take go to the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e0b3896e-4e44-459a-ba88-735be12de514"&gt;SPVSX Visual Studio Plugin Gallery&lt;/a&gt;&amp;nbsp;and provide feedback/comments/requests on&amp;nbsp;the &lt;a href="http://spvsx.codeplex.com/"&gt;SPVSX Codeplex site&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-5000343459480956822?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://blog.mattsmith.co.nz/Lists/Posts/Post.aspx?ID=123" title="SPVSX (SharePoint Visual Studio Extensions) Alpha Released" /><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/5000343459480956822/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=5000343459480956822" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/5000343459480956822?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/5000343459480956822?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/tPBIq5NGf-I/spvsx-sharepoint-visual-studio.html" title="SPVSX (SharePoint Visual Studio Extensions) Alpha Released" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/12/spvsx-sharepoint-visual-studio.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8EQns_cCp7ImA9WxNbFUU.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-2319941393589080513</id><published>2009-11-18T23:43:00.000Z</published><updated>2009-11-18T23:43:23.548Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-18T23:43:23.548Z</app:edited><title>Visual Studio 2010 SharePoint Extensions Project</title><content type="html">So Matt Smith, Wes Hackett and Martin Hatch from Content and Code are getting together to start doing &lt;a href="http://spvsx.codeplex.com/"&gt;Visual Studio 2010 SharePoint extensions &lt;/a&gt;for the SharePoint community.&lt;br /&gt;
&lt;br /&gt;
They have some good ideas but need more, take a look and if there are any features which you would like that would aid your deployment then post a message in the &lt;a href="http://spvsx.codeplex.com/Thread/View.aspx?ThreadId=75499"&gt;suggestions&lt;/a&gt; section of the project site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-2319941393589080513?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://spvsx.codeplex.com/" title="Visual Studio 2010 SharePoint Extensions Project" /><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/2319941393589080513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=2319941393589080513" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/2319941393589080513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/2319941393589080513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/zRHG-o8OuNg/visual-studio-2010-sharepoint.html" title="Visual Studio 2010 SharePoint Extensions Project" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/11/visual-studio-2010-sharepoint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYDRHg4fSp7ImA9WxNbFUg.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-1686300755799650776</id><published>2009-11-18T15:13:00.002Z</published><updated>2009-11-18T15:29:35.635Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-18T15:29:35.635Z</app:edited><title>Reporting Services and speeding up reports with Images</title><content type="html">Recently I have been working on some reporting services report interfaces and do hope to blog about this in more detail later.&lt;br /&gt;
&lt;br /&gt;
Until then though I would like to share some pain points that I have had particularly when using images within Reporting Services.&lt;br /&gt;
&lt;br /&gt;
Two issues come to mind:-&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;slow rendering&lt;/li&gt;
&lt;li&gt;columns containing images not being sized correctly.&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Slow Rendering&lt;/strong&gt;&lt;br /&gt;
So one of the issues that I had is slow rendering of the reports.&amp;nbsp;To explain&amp;nbsp;the scenario a particular column uses images to display the status of the column. The images are changed&amp;nbsp;via an&amp;nbsp;functional express based on a status id field. For a certain status the client did not want to see an image, to achieve this, the image was set to "" to indicate no image. &lt;br /&gt;
&lt;br /&gt;
However,&amp;nbsp;as more images were used the&amp;nbsp;rendering of this column became really slow. To solve this, I created an image called 'blank'&amp;nbsp;that&amp;nbsp;was a&amp;nbsp;1x1 pixel PNG image which is embedded in the report. Instead of using "", I would use "blank". This seems to speed things up, in fact doing some testing, the report now loads up after a refresh of IIS app pools and the Reporting Services report in 24 seconds opposed to 85 seconds!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Columns Not Sized Correctly&lt;/strong&gt;&lt;br /&gt;
When the report was rendered columns that had images would sometimes not size correcly leaving a big space after the image. Sometimes the column would fix itself and other times not, it took me a long time to get a solution and this is what I had to.&lt;br /&gt;
First ensure that the image properties-&amp;gt;size is set to original. Also add padding of Top=1 and Left=1.&lt;br /&gt;
&lt;br /&gt;
This combination seemed to fix the issue.&lt;br /&gt;
&lt;br /&gt;
Hope that helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-1686300755799650776?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/1686300755799650776/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=1686300755799650776" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/1686300755799650776?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/1686300755799650776?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/VGtRccivV94/reporting-services-and-speeding-up.html" title="Reporting Services and speeding up reports with Images" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/11/reporting-services-and-speeding-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYBR3c5eyp7ImA9WxNbEkU.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-8509213139968381907</id><published>2009-11-15T12:11:00.001Z</published><updated>2009-11-15T12:12:36.923Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-15T12:12:36.923Z</app:edited><title>SharePoint Overflow</title><content type="html">Whilst listening to the latest installments of the &lt;a href="http://www.sharepointpodshow.com/"&gt;SharePoint Pod Show&lt;/a&gt;, Nick Swan mentioned a new site that they have started called SharePoint Overflow, borrowing some key ideas from Stack Overflow they have created a really simple and neat site which allows you to post and answer questions.&lt;br /&gt;
&lt;br /&gt;
As you answer questions you gain more reputation and this allows you to do more on the site. As some of you maybe aware I am a bit of a Playstation, gaming nut and I love the idea that you can score points.&lt;br /&gt;
&lt;br /&gt;
There seem to be all the top SharePoint dogs there so you are sure to get your questions answered quickly and learn a few things as well. I learnt a new way to handle the SPWebConfigurationModificiation object thanks to&lt;a href="http://www.sharepointoverflow.com/questions/306/cant-remove-web-config-entries-with-spwebconfigurationmodification"&gt; Andrew Woodward and The Kid&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
One thing that I havent seen before is the OpenId authentication piece. OpenId is similar to Microsoft's passport along users to login via a single sign on username/password. Therefore&amp;nbsp; I can log in via my blogger/Google account.&lt;br /&gt;
&lt;br /&gt;
Although Microsoft have been trying to do this for a while this does seem like a nice alternative and I am guessing it was selected because it gave the broadest choice.&lt;br /&gt;
&lt;br /&gt;
Anyway sign up and take a look.&lt;br /&gt;
Nice work chaps!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.sharepointoverflow.com/"&gt;http://www.sharepointoverflow.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-8509213139968381907?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://www.sharepointoverflow.com" title="SharePoint Overflow" /><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/8509213139968381907/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=8509213139968381907" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/8509213139968381907?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/8509213139968381907?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/D1BC8QfgSek/sharepoint-overflow.html" title="SharePoint Overflow" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/11/sharepoint-overflow.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYHSX48eyp7ImA9WxNUF0Q.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-7737443855918543778</id><published>2009-11-09T19:48:00.000Z</published><updated>2009-11-09T19:48:58.073Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-09T19:48:58.073Z</app:edited><title>Pages is not a valid document library</title><content type="html">Had an problem at a client's site where when you created a new layout page using the New-&amp;gt;Welcome Page content type an error would display saying that "Pages is not a valid document library".&lt;br /&gt;
&lt;br /&gt;
Looking into the issue further, Layout pages within the library could be accessed properly and using Manage Site and Content you could copy files into the library.&lt;br /&gt;
&lt;br /&gt;
One thing that I did notice is that the Modify Navigation link from Site Actions-&amp;gt;Site Settings was greyed out.&lt;br /&gt;
&lt;br /&gt;
First thing was to check the web's Publishing Feature, the Standard feature was enabled but this had no effect.&lt;br /&gt;
&lt;br /&gt;
The solution was to deactivate and then reactivate the web's publishing feature.&lt;br /&gt;
&lt;br /&gt;
The client has recently applied June 2009 cumulative update to the server farm the previous day, wondering if this caused the problem. &lt;br /&gt;
&lt;br /&gt;
Thank you to &lt;a href="http://myryama.blogspot.com/2009/06/site-is-not-valid-pages-document.html"&gt;Myryama for a helping hand!&lt;/a&gt; in finding a solution.&lt;br /&gt;
&lt;br /&gt;
Simon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-7737443855918543778?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/7737443855918543778/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=7737443855918543778" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/7737443855918543778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/7737443855918543778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/fref1fr34C0/pages-is-not-valid-document-library.html" title="Pages is not a valid document library" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/11/pages-is-not-valid-document-library.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYFQH08fCp7ImA9WxNUEkU.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-3189607017559360098</id><published>2009-11-03T21:01:00.000Z</published><updated>2009-11-03T21:01:51.374Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T21:01:51.374Z</app:edited><title>Passed WSS Configuration Exam 70-631</title><content type="html">Well finally I have taken my first Microsoft Exam since doing my NT4 MCSE. Managed to pass the WSS Configuration 70-631 exam.&lt;br /&gt;
&lt;br /&gt;
Found the &lt;a href="http://www.amazon.co.uk/Windows-SharePoint-Services-Configuration-Study/dp/0470449314/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1257282051&amp;amp;sr=8-2"&gt;MCTS WSS Configuration Exam Study Guide&lt;/a&gt; from Sybex very useful, highly recommend. Though if you have been using WSS / MOSS for a while then the exam is not going to tax you too much.&lt;br /&gt;
&lt;br /&gt;
Next the WSS Application Dev exam, now this is supposed to be much harder, so think I better study a lot more. I'll post up any useful reading that I find.&lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
Simon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-3189607017559360098?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/3189607017559360098/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=3189607017559360098" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/3189607017559360098?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/3189607017559360098?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/YK8wbMWP0Fw/passed-wss-configuration-exam-70-631.html" title="Passed WSS Configuration Exam 70-631" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/11/passed-wss-configuration-exam-70-631.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIFR30yeCp7ImA9WxNVFko.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-3279806462853634104</id><published>2009-10-27T21:03:00.001Z</published><updated>2009-10-27T21:05:16.390Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T21:05:16.390Z</app:edited><title>Get started developing in SharePoint 2010</title><content type="html">Microsoft have released a set of &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C010FC68-B47F-4DB6-B8A8-AD4BA33A35C5&amp;amp;displaylang=en#filelist"&gt;Hands-On Labs&lt;/a&gt; where you can go through the process of developing with SharePoint 2010.&lt;br /&gt;
&lt;br /&gt;
Oh and you'll need&amp;nbsp;&lt;a href="http://www.microsoft.com/visualstudio/en-gb/try/default.mspx#download"&gt;Visual Studio 2010&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Looks like another late night!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C010FC68-B47F-4DB6-B8A8-AD4BA33A35C5&amp;amp;displaylang=en#filelist"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Simon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-3279806462853634104?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C010FC68-B47F-4DB6-B8A8-AD4BA33A35C5&amp;displaylang=en#filelist" title="Get started developing in SharePoint 2010" /><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/3279806462853634104/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=3279806462853634104" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/3279806462853634104?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/3279806462853634104?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/tKDAdoAyyNo/get-started-developing-in-sharepoint.html" title="Get started developing in SharePoint 2010" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/10/get-started-developing-in-sharepoint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCQno9eSp7ImA9WxNVEUw.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-4496328174476005123</id><published>2009-10-21T09:04:00.000+01:00</published><updated>2009-10-21T09:04:23.461+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-21T09:04:23.461+01:00</app:edited><title>SharePoint 2010 Conference - Content and Code Posts</title><content type="html">I am so jealous but a few of my colleagues at Content and Code are at the SharePoint 2010 Conference and they are blogging some great content about all the new features being released.&lt;br /&gt;
&lt;br /&gt;
Definately worth checking out here: &lt;a href="http://community.contentandcode.com/"&gt;http://community.contentandcode.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Well back to finishing the deployment of the latest project I have been working on ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-4496328174476005123?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/4496328174476005123/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=4496328174476005123" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4496328174476005123?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4496328174476005123?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/d_2rHSqkmJI/sharepoint-2010-conference-content-and.html" title="SharePoint 2010 Conference - Content and Code Posts" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/10/sharepoint-2010-conference-content-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAMQX0ycSp7ImA9WxNVEEo.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-4870043469609420751</id><published>2009-10-20T22:23:00.000+01:00</published><updated>2009-10-20T22:23:00.399+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-20T22:23:00.399+01:00</app:edited><title>SharePoint 2010 - Emphasis on resource efficient code</title><content type="html">From the reading that I have been doing about SharePoint 2010, one of the areas that Microsoft seem to be trying to tackle is allowing people to build components that are not too resource hungry.&lt;br /&gt;
&lt;br /&gt;
Whilst reading the SharePoint 2010 Server Core Class Library documentation one of the namespaces that looked interesting is the &lt;a href="http://msdn.microsoft.com/en-gb/library/microsoft.office.server.utilities%28office.14%29.aspx"&gt;Microsoft.Office.Server.Utilities.&lt;/a&gt; In here are delegates which can be called to enumerate SharePoint objects. The advantage (and this is purely from the documentation) is that they enumerate without consuming too many database resources.&lt;br /&gt;
&lt;br /&gt;
Another feature that I have already mentioned is the sandbox solution which allows a site administrator to deploy a wsp solution file with code to a particular site. The code that is deployed by this solution is then run in a separate process with limits on the amount of resource that it can consume. &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
With SharePoint being a shared platform which can be used by many different areas within the business implementing code which is scalable and efficient in terms of resources used is going to become more important and undoubtable be a best practice in similar vein as disposing of SPSite and SPWeb objects correctly.&lt;br /&gt;
&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-4870043469609420751?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/4870043469609420751/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=4870043469609420751" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4870043469609420751?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/4870043469609420751?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/w870kSbZp8M/sharepoint-2010-emphasis-on-resource.html" title="SharePoint 2010 - Emphasis on resource efficient code" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/10/sharepoint-2010-emphasis-on-resource.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYBRngzeSp7ImA9WxNVEEs.&quot;"><id>tag:blogger.com,1999:blog-5437967044881593393.post-5473974100374237192</id><published>2009-10-20T20:15:00.000+01:00</published><updated>2009-10-20T20:15:57.681+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-20T20:15:57.681+01:00</app:edited><title>SharePoint 2010 - What I have been reading at home (Part 1)</title><content type="html">With the SharePoint conference starting this week and seeing all the Twitter posts about all the great new feature I have been feeling a little left out. To counter this I thought I'd post the things that I have been reading.&lt;br /&gt;
&lt;br /&gt;
Firstly SharePoint 2010 looks amazing, some really interesting features for us developers and some super cool resource management for the more infrastructure orientated among us.&lt;br /&gt;
&lt;br /&gt;
To get started I read &lt;a href="http://blogs.zdnet.com/collaboration/?p=988"&gt;this post&lt;/a&gt; from Oliver Marks from ZDNet. Whilst the post isn't anything ground breaking there is a interesting interview with Kirk Koenigsbauer from Microsoft discussing Groove. I was particularly interested in the offline capabilities which allow document libraries and even sites offline!.&amp;nbsp; One really cool feature was the ability for a document to be part of a workflow which is started offline and when Groove sync's then the workflow is kicked off the SharePoint server!&lt;br /&gt;
&lt;br /&gt;
Second port of call was to start reviewing all the new documentation from Microsoft which can be found at &lt;a href="http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx"&gt;http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx&amp;nbsp; &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The video from Paul Andrew is great and shows some of the new features such as accessing data in SharePoint from a client app using REST and ADO.NET. Also he goes over a SharePoint Site Workflow and a sandbox solution which is a wsp which is uploaded to a site. The differenct between a sandbox solution as opposed to a farm solution is that the code is run in a separate process which has its resources managed so that if the process was to run away it will get terminated.&lt;br /&gt;
&lt;br /&gt;
Finally for tonights reading is the new &lt;a href="http://msdn.microsoft.com/en-gb/library/ee557253%28office.14%29.aspx"&gt;SharePoint 2010 SDK beta... &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Happy Reading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5437967044881593393-5473974100374237192?l=ithinksharepoint.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ithinksharepoint.blogspot.com/feeds/5473974100374237192/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5437967044881593393&amp;postID=5473974100374237192" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/5473974100374237192?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5437967044881593393/posts/default/5473974100374237192?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/ithinksharepoint/~3/eUGzyj99n38/sharepoint-2010-what-i-have-been.html" title="SharePoint 2010 - What I have been reading at home (Part 1)" /><author><name>quannum</name><uri>http://www.blogger.com/profile/17636324741942744426</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/_EMATtZm3EAg/TC4tVGQedfI/AAAAAAAAACU/rOBIy0LqIkM/S220/simonovermountain.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ithinksharepoint.blogspot.com/2009/10/sharepoint-2010-what-i-have-been.html</feedburner:origLink></entry></feed>

