<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>.Net Jonesie - Sharepoint</title>
    <link>http://jonesie.net.nz/</link>
    <description>A simple programmers blog</description>
    <language>en-us</language>
    <copyright>Peter G Jones</copyright>
    <lastBuildDate>Wed, 05 May 2010 21:56:27 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>peter@jonesie.net.nz</managingEditor>
    <webMaster>peter@jonesie.net.nz</webMaster>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=83274683-123b-47e3-b4f1-ee46d47fb318</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,83274683-123b-47e3-b4f1-ee46d47fb318.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,83274683-123b-47e3-b4f1-ee46d47fb318.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=83274683-123b-47e3-b4f1-ee46d47fb318</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’ve been working on a sample app for SharePoint 2010 that demonstrates the Sync Framework,
Custom Service Applications and a Custom Timer.
</p>
        <p>
There’s a few good articles on <a href="http://msdn.microsoft.com/en-us/library/cc406686.aspx" target="_blank">MSDN</a> and <a href="http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx" target="_blank">elsewhere</a> that
document the process of creating a custom timer job pretty well.  This hasn’t
changed much in 2010 – if at all – from what I can see.  However, the samples
don’t show you how to create a Service/Server level job definition, so here’s my small
addendum to show how to do this.
</p>
        <p>
          <strong>Creating a Service Job</strong>
        </p>
        <p>
When you construct a new job definition – custom or otherwise – there are two constructors
you use:
</p>
        <blockquote>
          <p>
protected SPJobDefinition(string name, SPWebApplication webApplication, SPServer server,
SPJobLockType lockType);
</p>
          <p>
protected SPJobDefinition(string name, SPService service, SPServer server, SPJobLockType
lockType);
</p>
        </blockquote>
        <p>
You can override the constructors in your custom job.  For a service timer you
should use the 2nd constructor.  In this case, the lockType can only be Job or
None.
</p>
        <p>
          <strong>Persisted Configuration</strong>
        </p>
        <p>
If you take a look at the definition of SPJobDefinition you will notice that it inherits
SPPersistedObject.  The MSDN sample talks about creating a separate persisted
object for the job configuration data.  This is not necessary.  Instead,
you can add your [Persisted] public fields directly to your custom job definition.
</p>
        <p>
          <strong>Errors</strong>
        </p>
        <p>
When you run a timer job that is created for a service, the service must be running
– yes, strangely :)  If it’s not the job will fail silently and you have to look
in the logs to see the error.  There doesn’t seem to be any way to catch this
exception.
</p>
        <p>
          <strong>Weirdness</strong>
        </p>
        <p>
I managed to waste about 3 hours trying to track down why timer execution of my service
method was failing when calling it directly would work.  There is no special
logic in the timer.  The bug I was seeing was something that I had fixed previously
so I was baffled why it was failing for the timer and not for my web page.
</p>
        <p>
Overnight, and after a few IISResets, redeployments and reboots, it came right and
now works correctly.  I also made sure the GAC was cleared out between deployments. 
It seems to me like there was an old version of the service application dll that the
timer was using and the rest of the site wasn’t.  I cant prove this but that’s
certainly how it appeared.
</p>
        <p>
          <strong>Debugging</strong>
        </p>
        <p>
As Andrew Connell points out in his articles, you need to fire an Assert() to get
the debugger to stop in the job Execute() method.  
</p>
        <blockquote>
          <p>
#if DEBUG<br />
            System.Diagnostics.Trace.Assert(false);<br />
#endif
</p>
        </blockquote>
        <p>
Attaching to OWTIMER.exe is not enough.  However, for me, this Assert does not
popup a message – you need to attached to OWTIMER first.  This maybe a SP or
VS 2010 thing.
</p>
        <p>
 
</p>
        <p>
Enjoy :)
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=83274683-123b-47e3-b4f1-ee46d47fb318" />
      </body>
      <title>SharePoint 2010 Custom Timer Jobs</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,83274683-123b-47e3-b4f1-ee46d47fb318.aspx</guid>
      <link>http://jonesie.net.nz/2010/05/05/SharePoint2010CustomTimerJobs.aspx</link>
      <pubDate>Wed, 05 May 2010 21:56:27 GMT</pubDate>
      <description>&lt;p&gt;
I’ve been working on a sample app for SharePoint 2010 that demonstrates the Sync Framework,
Custom Service Applications and a Custom Timer.
&lt;/p&gt;
&lt;p&gt;
There’s a few good articles on &lt;a href="http://msdn.microsoft.com/en-us/library/cc406686.aspx" target="_blank"&gt;MSDN&lt;/a&gt; and &lt;a href="http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx" target="_blank"&gt;elsewhere&lt;/a&gt; that
document the process of creating a custom timer job pretty well.&amp;nbsp; This hasn’t
changed much in 2010 – if at all – from what I can see.&amp;nbsp; However, the samples
don’t show you how to create a Service/Server level job definition, so here’s my small
addendum to show how to do this.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Creating a Service Job&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When you construct a new job definition – custom or otherwise – there are two constructors
you use:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
protected SPJobDefinition(string name, SPWebApplication webApplication, SPServer server,
SPJobLockType lockType);
&lt;/p&gt;
&lt;p&gt;
protected SPJobDefinition(string name, SPService service, SPServer server, SPJobLockType
lockType);
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
You can override the constructors in your custom job.&amp;nbsp; For a service timer you
should use the 2nd constructor.&amp;nbsp; In this case, the lockType can only be Job or
None.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Persisted Configuration&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you take a look at the definition of SPJobDefinition you will notice that it inherits
SPPersistedObject.&amp;nbsp; The MSDN sample talks about creating a separate persisted
object for the job configuration data.&amp;nbsp; This is not necessary.&amp;nbsp; Instead,
you can add your [Persisted] public fields directly to your custom job definition.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Errors&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
When you run a timer job that is created for a service, the service must be running
– yes, strangely :)&amp;nbsp; If it’s not the job will fail silently and you have to look
in the logs to see the error.&amp;nbsp; There doesn’t seem to be any way to catch this
exception.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Weirdness&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I managed to waste about 3 hours trying to track down why timer execution of my service
method was failing when calling it directly would work.&amp;nbsp; There is no special
logic in the timer.&amp;nbsp; The bug I was seeing was something that I had fixed previously
so I was baffled why it was failing for the timer and not for my web page.
&lt;/p&gt;
&lt;p&gt;
Overnight, and after a few IISResets, redeployments and reboots, it came right and
now works correctly.&amp;nbsp; I also made sure the GAC was cleared out between deployments.&amp;nbsp;
It seems to me like there was an old version of the service application dll that the
timer was using and the rest of the site wasn’t.&amp;nbsp; I cant prove this but that’s
certainly how it appeared.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Debugging&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
As Andrew Connell points out in his articles, you need to fire an Assert() to get
the debugger to stop in the job Execute() method.&amp;nbsp; 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
#if DEBUG&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Trace.Assert(false);&lt;br&gt;
#endif
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Attaching to OWTIMER.exe is not enough.&amp;nbsp; However, for me, this Assert does not
popup a message – you need to attached to OWTIMER first.&amp;nbsp; This maybe a SP or
VS 2010 thing.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Enjoy :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=83274683-123b-47e3-b4f1-ee46d47fb318" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,83274683-123b-47e3-b4f1-ee46d47fb318.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=deb63605-160a-46b6-9789-833c833d7339</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,deb63605-160a-46b6-9789-833c833d7339.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,deb63605-160a-46b6-9789-833c833d7339.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=deb63605-160a-46b6-9789-833c833d7339</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The SP User Groups are organising a nation wide launch party for SharePoint 2010 on
May 13.  If your interested then register here: <a href="http://www.dot.net.nz/Lists/SharePoint2010Survey/overview.aspx">http://www.dot.net.nz/Lists/SharePoint2010Survey/overview.aspx</a></p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=deb63605-160a-46b6-9789-833c833d7339" />
      </body>
      <title>SharePoint 2010 Launch</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,deb63605-160a-46b6-9789-833c833d7339.aspx</guid>
      <link>http://jonesie.net.nz/2010/04/26/SharePoint2010Launch.aspx</link>
      <pubDate>Mon, 26 Apr 2010 04:46:39 GMT</pubDate>
      <description>&lt;p&gt;
The SP User Groups are organising a nation wide launch party for SharePoint 2010 on
May 13.&amp;nbsp; If your interested then register here: &lt;a href="http://www.dot.net.nz/Lists/SharePoint2010Survey/overview.aspx"&gt;http://www.dot.net.nz/Lists/SharePoint2010Survey/overview.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=deb63605-160a-46b6-9789-833c833d7339" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,deb63605-160a-46b6-9789-833c833d7339.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=1154957d-2421-420d-baef-c6392166d272</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,1154957d-2421-420d-baef-c6392166d272.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,1154957d-2421-420d-baef-c6392166d272.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=1154957d-2421-420d-baef-c6392166d272</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’ve been enjoying the stability and extra performance of a 64 bit OS for about 2
years now so I am surprise and somewhat disappointed that the latest round of goodness
from Microsoft – i.e. SharePoint 2010, Office 2010 and Visual Studio 2010 have some
annoying incompatibilities in this mode.
</p>
        <p>
          <br />
        </p>
        <p>
Datasheet View of  a SharePoint list with a 64 bit version of Office does not
work, you just get this annoying dialog:
</p>
        <p>
          <a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/64bitbutnotquite_2B7F/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/64bitbutnotquite_2B7F/image_thumb.png" width="240" height="117" />
          </a>
        </p>
        <p>
Apparently this is because the ActiveX control is not available for 64 bit OS’s. 
I have only tested on 2008 R2 server – Windows 7 64 bit may be ok.
</p>
        <p>
Also, Intellitrace in Visual Studio – aka Historical Debugging - does not support
SharePoint (or any 64 bit app?).
</p>
        <p>
I’m sure Microsoft are aware of these limitations and will offer solutions in due
course – but really, 64 bit has been coming for a while and I think we can expect
not to see this sort of incompatibility, especially for Office.  
</p>
        <p>
For me this has tarnished my experience only a tad, but overall, 64 bit everywhere
is better than 32 bit in the same way that cake is better than two week old bagels.
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=1154957d-2421-420d-baef-c6392166d272" />
      </body>
      <title>64 bit… but not quite</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,1154957d-2421-420d-baef-c6392166d272.aspx</guid>
      <link>http://jonesie.net.nz/2010/04/20/64BitButNotQuite.aspx</link>
      <pubDate>Tue, 20 Apr 2010 15:05:44 GMT</pubDate>
      <description>&lt;p&gt;
I’ve been enjoying the stability and extra performance of a 64 bit OS for about 2
years now so I am surprise and somewhat disappointed that the latest round of goodness
from Microsoft – i.e. SharePoint 2010, Office 2010 and Visual Studio 2010 have some
annoying incompatibilities in this mode.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Datasheet View of&amp;nbsp; a SharePoint list with a 64 bit version of Office does not
work, you just get this annoying dialog:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/64bitbutnotquite_2B7F/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/64bitbutnotquite_2B7F/image_thumb.png" width="240" height="117"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Apparently this is because the ActiveX control is not available for 64 bit OS’s.&amp;nbsp;
I have only tested on 2008 R2 server – Windows 7 64 bit may be ok.
&lt;/p&gt;
&lt;p&gt;
Also, Intellitrace in Visual Studio – aka Historical Debugging - does not support
SharePoint (or any 64 bit app?).
&lt;/p&gt;
&lt;p&gt;
I’m sure Microsoft are aware of these limitations and will offer solutions in due
course – but really, 64 bit has been coming for a while and I think we can expect
not to see this sort of incompatibility, especially for Office.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
For me this has tarnished my experience only a tad, but overall, 64 bit everywhere
is better than 32 bit in the same way that cake is better than two week old bagels.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=1154957d-2421-420d-baef-c6392166d272" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,1154957d-2421-420d-baef-c6392166d272.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=57fc986b-eb47-4ffc-925f-1227c97c81ff</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,57fc986b-eb47-4ffc-925f-1227c97c81ff.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,57fc986b-eb47-4ffc-925f-1227c97c81ff.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=57fc986b-eb47-4ffc-925f-1227c97c81ff</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m in the deep end at the moment.  SharePoint 2010 provides an improved mechanism
for service applications that replaces Shared Service Providers.  I’m not ready
to say I understand how these beasts (and they are a beast) work yet, but I can tell
you that at this early stage of the 2010 release cycle (i.e. very nearly RTM) there
is bugger-all documentation available.  The following list may prove useful if
you want to get started learning this.
</p>
        <p>
 
</p>
        <p>
Andrew Connell has a video and some sample code from <a href="http://channel9.msdn.com/learn/courses/SharePoint2010Developer/ServicesArchitecture/CreatingCustomServiceApplications/" target="_blank">Channel9</a>. 
The video is very hard to watch but there are a few tid-bits that may prove useful. 
The sample code is also useful but not as complete as I’d like (for the client end
there is only a powershell script to test). 
</p>
        <p>
          <a href="http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/building-a-sharepoint-service-application-to-provide-auto-completion-services-for-ajax-enabled-rich-user-controls-%E2%80%93-part-1/#partone" target="_blank">Tony
Bierman</a> has a 4 part series that steps through the process and explains the various
files in some detail, but again, this is not totally complete (there are no sample
PS scripts) and the example is unusal (a web service for autocomplete).  Plus
he has added a few extra features to the code which are useful I’m sure – but confusing
when you are learning.
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/ee536537(v=office.14).aspx" target="_blank">MSDN</a> of
course has a bunch of sample and documentation – but this seems to be the most incomplete
version I have found – I’m sure it will improve when SharePoint is actually released.  <a href="http://blogs.msdn.com/sridhara/archive/2010/04/03/custom-service-applications-in-sharepoint-2010.aspx" target="_blank">Sridhar
Raghunathan</a> has posted a fixed version of this sample but it is also somewhat
incomplete (no admin pages or deployment scripts).
</p>
        <p>
There is another one <a href="http://www.harbar.net/articles/sp2010sa.aspx" target="_blank">here</a> that
I haven’t looked at.
</p>
        <p>
I also got my hands on a presentation and some training kit material (not public yet
sorry) which helped a bit.
</p>
        <p>
My current solution is a blend of all of these samples – which are generally similar. 
How I just need to make it work.
</p>
        <p>
More later…
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=57fc986b-eb47-4ffc-925f-1227c97c81ff" />
      </body>
      <title>Creating a SharePoint 2010 Service Application</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,57fc986b-eb47-4ffc-925f-1227c97c81ff.aspx</guid>
      <link>http://jonesie.net.nz/2010/04/12/CreatingASharePoint2010ServiceApplication.aspx</link>
      <pubDate>Mon, 12 Apr 2010 02:55:16 GMT</pubDate>
      <description>&lt;p&gt;
I’m in the deep end at the moment.&amp;nbsp; SharePoint 2010 provides an improved mechanism
for service applications that replaces Shared Service Providers.&amp;nbsp; I’m not ready
to say I understand how these beasts (and they are a beast) work yet, but I can tell
you that at this early stage of the 2010 release cycle (i.e. very nearly RTM) there
is bugger-all documentation available.&amp;nbsp; The following list may prove useful if
you want to get started learning this.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Andrew Connell has a video and some sample code from &lt;a href="http://channel9.msdn.com/learn/courses/SharePoint2010Developer/ServicesArchitecture/CreatingCustomServiceApplications/" target="_blank"&gt;Channel9&lt;/a&gt;.&amp;nbsp;
The video is very hard to watch but there are a few tid-bits that may prove useful.&amp;nbsp;
The sample code is also useful but not as complete as I’d like (for the client end
there is only a powershell script to test). 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/building-a-sharepoint-service-application-to-provide-auto-completion-services-for-ajax-enabled-rich-user-controls-%E2%80%93-part-1/#partone" target="_blank"&gt;Tony
Bierman&lt;/a&gt; has a 4 part series that steps through the process and explains the various
files in some detail, but again, this is not totally complete (there are no sample
PS scripts) and the example is unusal (a web service for autocomplete).&amp;nbsp; Plus
he has added a few extra features to the code which are useful I’m sure – but confusing
when you are learning.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/ee536537(v=office.14).aspx" target="_blank"&gt;MSDN&lt;/a&gt; of
course has a bunch of sample and documentation – but this seems to be the most incomplete
version I have found – I’m sure it will improve when SharePoint is actually released.&amp;nbsp; &lt;a href="http://blogs.msdn.com/sridhara/archive/2010/04/03/custom-service-applications-in-sharepoint-2010.aspx" target="_blank"&gt;Sridhar
Raghunathan&lt;/a&gt; has posted a fixed version of this sample but it is also somewhat
incomplete (no admin pages or deployment scripts).
&lt;/p&gt;
&lt;p&gt;
There is another one &lt;a href="http://www.harbar.net/articles/sp2010sa.aspx" target="_blank"&gt;here&lt;/a&gt; that
I haven’t looked at.
&lt;/p&gt;
&lt;p&gt;
I also got my hands on a presentation and some training kit material (not public yet
sorry) which helped a bit.
&lt;/p&gt;
&lt;p&gt;
My current solution is a blend of all of these samples – which are generally similar.&amp;nbsp;
How I just need to make it work.
&lt;/p&gt;
&lt;p&gt;
More later…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=57fc986b-eb47-4ffc-925f-1227c97c81ff" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,57fc986b-eb47-4ffc-925f-1227c97c81ff.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=154fd9d6-fa1f-4968-a307-f007c4b98d6a</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,154fd9d6-fa1f-4968-a307-f007c4b98d6a.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,154fd9d6-fa1f-4968-a307-f007c4b98d6a.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=154fd9d6-fa1f-4968-a307-f007c4b98d6a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Loving SharePoint 2010 :) We are doing a LOT of work with this baby and so far it’s
been a fairly painless experience.  I’m currently diving deep into creating a
custom Service Application… more on these later.
</p>
        <p>
It’s the little things that make the difference for day to day SharePoint dev. 
Replaceable parameters are a fantastic worry-removing new features.  In the past
(SP 07) you had to include full assembly reference in .ASPX and similar files thus:
</p>
        <blockquote>
          <p>
            <font face="Courier New">SomeNamespace.SomeClass, SomeAssembly, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=6017a297d36052bf<br /></font>
          </p>
        </blockquote>
        <p>
The problems occur when you update the version of change an assembly name etc – things
that can happen quite often during the early stages of a product life cycle. 
Getting the key is also a complete PITA.
</p>
        <p>
With replaceable parameters you can let Visual Studio worry about these.
</p>
        <blockquote>
          <p>
            <font face="Courier New">SomeNamespace.SomeClass, $SharePoint.Project.AssemblyFullName$</font>
          </p>
        </blockquote>
        <p>
The parameter will be replace during packaging.  There is a bunch of different
parameters you can use in various types of files like XML and ASPX.
</p>
        <p>
HOWEVER, not all files are processed.  In my case I have a .SVC file (for WCF). 
Luckily, it’s very easy to add processing for this.  
</p>
        <ol>
          <li>
In Visual Studio, right click the SharePoint project and select Unload.<br /><a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_thumb.png" width="437" height="92" /></a></li>
          <li>
Right click the project again and select Edit</li>
          <li>
At the end of the first property group in the proj file, add this:  
<br /><a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_thumb_1.png" width="438" height="33" /></a></li>
        </ol>
        <p>
You can list as many extensions as you want, seperated by ;.
</p>
        <p>
        </p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/ee231545(VS.100).aspx" target="_blank">Full
documentation is on MSDN.</a>
        </p>
        <p>
 
</p>
        <p>
Enjoy
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=154fd9d6-fa1f-4968-a307-f007c4b98d6a" />
      </body>
      <title>SharePoint 2010 Replaceable Parameters</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,154fd9d6-fa1f-4968-a307-f007c4b98d6a.aspx</guid>
      <link>http://jonesie.net.nz/2010/04/07/SharePoint2010ReplaceableParameters.aspx</link>
      <pubDate>Wed, 07 Apr 2010 22:05:37 GMT</pubDate>
      <description>&lt;p&gt;
Loving SharePoint 2010 :) We are doing a LOT of work with this baby and so far it’s
been a fairly painless experience.&amp;nbsp; I’m currently diving deep into creating a
custom Service Application… more on these later.
&lt;/p&gt;
&lt;p&gt;
It’s the little things that make the difference for day to day SharePoint dev.&amp;nbsp;
Replaceable parameters are a fantastic worry-removing new features.&amp;nbsp; In the past
(SP 07) you had to include full assembly reference in .ASPX and similar files thus:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;SomeNamespace.SomeClass, SomeAssembly, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=6017a297d36052bf&lt;br&gt;
&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The problems occur when you update the version of change an assembly name etc – things
that can happen quite often during the early stages of a product life cycle.&amp;nbsp;
Getting the key is also a complete PITA.
&lt;/p&gt;
&lt;p&gt;
With replaceable parameters you can let Visual Studio worry about these.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;SomeNamespace.SomeClass, $SharePoint.Project.AssemblyFullName$&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The parameter will be replace during packaging.&amp;nbsp; There is a bunch of different
parameters you can use in various types of files like XML and ASPX.
&lt;/p&gt;
&lt;p&gt;
HOWEVER, not all files are processed.&amp;nbsp; In my case I have a .SVC file (for WCF).&amp;nbsp;
Luckily, it’s very easy to add processing for this.&amp;nbsp; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
In Visual Studio, right click the SharePoint project and select Unload.&lt;br&gt;
&lt;a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_thumb.png" width="437" height="92"&gt;&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
Right click the project again and select Edit&lt;/li&gt;
&lt;li&gt;
At the end of the first property group in the proj file, add this:&amp;nbsp; 
&lt;br&gt;
&lt;a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/SharePoint2010ReplaceableParameters_8DDC/image_thumb_1.png" width="438" height="33"&gt;&lt;/a&gt; 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
You can list as many extensions as you want, seperated by ;.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/ee231545(VS.100).aspx" target="_blank"&gt;Full
documentation is on MSDN.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Enjoy
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=154fd9d6-fa1f-4968-a307-f007c4b98d6a" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,154fd9d6-fa1f-4968-a307-f007c4b98d6a.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=79448598-24a8-47fe-ae06-1fd43f36225f</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,79448598-24a8-47fe-ae06-1fd43f36225f.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,79448598-24a8-47fe-ae06-1fd43f36225f.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=79448598-24a8-47fe-ae06-1fd43f36225f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here’s an example of great UX.  Error reporting and possible solutions are presented
in SharePoint 2010 Central Admin thus:
</p>
        <p>
          <a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_thumb.png" width="393" height="180" />
          </a>
        </p>
        <p>
Selecting an item in the list displays:
</p>
        <p>
          <a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_thumb_1.png" width="387" height="363" />
          </a>
        </p>
        <p>
 
</p>
        <p>
Key Points.
</p>
        <p>
1) The categorisation of the lists.
</p>
        <p>
2) The message in the list is human readable – not just some stupid error number and
cryptic message.
</p>
        <p>
3) The explanation of the problem is clear and concise.
</p>
        <p>
4) The remedy is similarly understandable 
</p>
        <p>
and, best of all
</p>
        <p>
5) The remedy contains a link to the solution
</p>
        <p>
 
</p>
        <p>
Wouldn’t it be fantastic if all products were so well designed?  How much more
productive would programming be if Visual Studio worked like this.  eg:
</p>
        <blockquote>
          <p>
Warning: You have a compiler error in a LINQ query with a join.  <u>Click here
for a solution</u>.
</p>
        </blockquote>
        <p>
Clicking would show the native compiler error, a few links to MSDN documentation,
the top 10 web search hits for the issue and a link to see more in Bing/Google.
</p>
        <p>
You could maybe also add in automatic refactoring, tied to code analysis rules or
whatever.
</p>
        <p>
Hey, how about this one:
</p>
        <p>
 
</p>
        <blockquote>
          <p>
Warning: The application you are creating has already been created by 12,875,435 other
developers.  Would you like to download one of these instead?
</p>
        </blockquote>
        <p>
 
</p>
        <p>
:)
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=79448598-24a8-47fe-ae06-1fd43f36225f" />
      </body>
      <title>Great Error Reporting – SharePoint and Visual Studio</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,79448598-24a8-47fe-ae06-1fd43f36225f.aspx</guid>
      <link>http://jonesie.net.nz/2010/04/07/GreatErrorReportingSharePointAndVisualStudio.aspx</link>
      <pubDate>Wed, 07 Apr 2010 20:06:34 GMT</pubDate>
      <description>&lt;p&gt;
Here’s an example of great UX.&amp;nbsp; Error reporting and possible solutions are presented
in SharePoint 2010 Central Admin thus:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_thumb.png" width="393" height="180"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Selecting an item in the list displays:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://jonesie.net.nz/content/binary/WindowsLiveWriter/GreatErrorReportingSharePointandVisualSt_71F7/image_thumb_1.png" width="387" height="363"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Key Points.
&lt;/p&gt;
&lt;p&gt;
1) The categorisation of the lists.
&lt;/p&gt;
&lt;p&gt;
2) The message in the list is human readable – not just some stupid error number and
cryptic message.
&lt;/p&gt;
&lt;p&gt;
3) The explanation of the problem is clear and concise.
&lt;/p&gt;
&lt;p&gt;
4) The remedy is similarly understandable 
&lt;/p&gt;
&lt;p&gt;
and, best of all
&lt;/p&gt;
&lt;p&gt;
5) The remedy contains a link to the solution
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Wouldn’t it be fantastic if all products were so well designed?&amp;nbsp; How much more
productive would programming be if Visual Studio worked like this.&amp;nbsp; eg:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Warning: You have a compiler error in a LINQ query with a join.&amp;nbsp; &lt;u&gt;Click here
for a solution&lt;/u&gt;.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Clicking would show the native compiler error, a few links to MSDN documentation,
the top 10 web search hits for the issue and a link to see more in Bing/Google.
&lt;/p&gt;
&lt;p&gt;
You could maybe also add in automatic refactoring, tied to code analysis rules or
whatever.
&lt;/p&gt;
&lt;p&gt;
Hey, how about this one:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Warning: The application you are creating has already been created by 12,875,435 other
developers.&amp;nbsp; Would you like to download one of these instead?
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
:)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=79448598-24a8-47fe-ae06-1fd43f36225f" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,79448598-24a8-47fe-ae06-1fd43f36225f.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=ee4568a9-5649-4f02-9577-e4e11197ae9a</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,ee4568a9-5649-4f02-9577-e4e11197ae9a.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,ee4568a9-5649-4f02-9577-e4e11197ae9a.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=ee4568a9-5649-4f02-9577-e4e11197ae9a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">If you are into styling SharePoint - and
who isn't! - then you might find these useful:  <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a">Ten
Themes for SharePoint is VSeWSS Projects</a>.  I think there is a <a href="http://www.intergen.co.nz">yellow</a> one
in there ... :)<br /><br /><br /><p></p><img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=ee4568a9-5649-4f02-9577-e4e11197ae9a" /></body>
      <title>SharePoint Themes</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,ee4568a9-5649-4f02-9577-e4e11197ae9a.aspx</guid>
      <link>http://jonesie.net.nz/2009/03/19/SharePointThemes.aspx</link>
      <pubDate>Thu, 19 Mar 2009 22:06:15 GMT</pubDate>
      <description>If you are into styling SharePoint - and who isn't! - then you might find these useful:&amp;nbsp; &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a"&gt;Ten
Themes for SharePoint is VSeWSS Projects&lt;/a&gt;.&amp;nbsp; I think there is a &lt;a href="http://www.intergen.co.nz"&gt;yellow&lt;/a&gt; one
in there ... :)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=ee4568a9-5649-4f02-9577-e4e11197ae9a" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,ee4568a9-5649-4f02-9577-e4e11197ae9a.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=e2c81ab0-6b01-4390-b406-6241962a3014</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,e2c81ab0-6b01-4390-b406-6241962a3014.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,e2c81ab0-6b01-4390-b406-6241962a3014.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=e2c81ab0-6b01-4390-b406-6241962a3014</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesturday Microsoft <a href="http://blogs.msdn.com/sharepoint/archive/2008/06/04/announcing-the-vsewss-version-1-2.aspx">announced </a>the
Visual Studio 2008 version of Visual Studio extensions for WSS (v 1.2). It is
available for <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&amp;displaylang=en">download</a> now! 
This took me by surprise as I thought it was scheduled for next month - but earlier
is better!
</p>
        <p>
Also, checkout the spunky new site for SharePoint developers:  <a href="http://www.mssharepointdeveloper.com/">http://www.mssharepointdeveloper.com/</a>. 
This is a great central resource for getting started with SharePoint dev.  It
contains a bunch of FREE learning material - 10 Virtual Hands On Labs to be precise
- and links to other goodies.
</p>
        <p>
FYI: A gang of kiwi's were heavily involved in creating some of this material, including
myself and some other's at <a href="http://www.intergen.co.nz">Intergen</a> and
of course <a href="http://blogs.msdn.com/pandrew/">Paul Andrew</a>.
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=e2c81ab0-6b01-4390-b406-6241962a3014" />
      </body>
      <title>VSeWSS 1.2 Released &amp; Other Related Stuff</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,e2c81ab0-6b01-4390-b406-6241962a3014.aspx</guid>
      <link>http://jonesie.net.nz/2008/06/06/VSeWSS12ReleasedOtherRelatedStuff.aspx</link>
      <pubDate>Fri, 06 Jun 2008 04:40:51 GMT</pubDate>
      <description>&lt;p&gt;
Yesturday Microsoft &lt;a href="http://blogs.msdn.com/sharepoint/archive/2008/06/04/announcing-the-vsewss-version-1-2.aspx"&gt;announced &lt;/a&gt;the
Visual Studio 2008 version of Visual Studio extensions for WSS (v 1.2). It&amp;nbsp;is
available for &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&amp;amp;displaylang=en"&gt;download&lt;/a&gt; now!&amp;nbsp;
This took me by surprise as I thought it was scheduled for next month - but earlier
is better!
&lt;/p&gt;
&lt;p&gt;
Also, checkout the spunky new site for SharePoint developers:&amp;nbsp; &lt;a href="http://www.mssharepointdeveloper.com/"&gt;http://www.mssharepointdeveloper.com/&lt;/a&gt;.&amp;nbsp;
This is a great central resource for getting started with SharePoint dev.&amp;nbsp; It
contains a bunch of FREE learning material - 10 Virtual Hands On Labs to be precise
- and links to other goodies.
&lt;/p&gt;
&lt;p&gt;
FYI: A gang of kiwi's were heavily involved in creating some of this material, including
myself and some other's at &lt;a href="http://www.intergen.co.nz"&gt;Intergen&lt;/a&gt;&amp;nbsp;and
of course &lt;a href="http://blogs.msdn.com/pandrew/"&gt;Paul Andrew&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=e2c81ab0-6b01-4390-b406-6241962a3014" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,e2c81ab0-6b01-4390-b406-6241962a3014.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=baf0ba21-a042-46d5-82c6-ea08e3f5f927</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,baf0ba21-a042-46d5-82c6-ea08e3f5f927.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,baf0ba21-a042-46d5-82c6-ea08e3f5f927.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=baf0ba21-a042-46d5-82c6-ea08e3f5f927</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today I notice a blog thread initiated by a <a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/09/13/sharepoint-is-not-a-good-development-platform.aspx">post</a> from
MVP Jeffrey Palermo on the merits of SharePoint as a development platform
</p>
        <p>
Jeffrey lists a few facets of what makes a great development platform, most of
which I agree with.  
</p>
        <ul>
          <li>
Easy to install 
</li>
          <li>
Easy to configure 
</li>
          <li>
Integrates well with simple tools 
</li>
          <li>
Easily extended to make simple tools 
</li>
          <li>
Easy to debug 
</li>
          <li>
Easy to create test automation 
</li>
          <li>
All configuration stores easily in source control 
</li>
          <li>
(Others He forgot)</li>
        </ul>
        <p>
I'm the first to moan and rant about the pain of SharePoint but this is mostly based
on ignorance and impatience.  I'm learning fast and am starting to appreciate
the benefits of using SharePoint as a development platform.
</p>
        <p>
But back to the original question:  Is SharePoint a Great Development Platform?
Using Jeffry's list above lets see.
</p>
        <p>
          <strong>Easy to install</strong> :  There's only a few options in the installer
and once you understand what each means and why you would chose each option, then
yes, I think it's very easy to install.
</p>
        <p>
          <strong>Easy to configure</strong> : For out of the box operation of WSS or MOSS it's
not too bad.  If you want some enterprise features then there is quite a bit
of configuration to wade through.  So, maybe yes, maybe no - it depends.
</p>
        <p>
          <strong>Integrates well with simple tools</strong> : Not totally sure what Jeffrey
means here but I think he's talking about development tools.  On that basis,
you would have to say yes.  Visual Studio 2005 and the SharePoint extensions
make it very easy to create and deploy features.  Visual Studio 2008 support
is coming for VSeWSS but it does a better job with SharePoint sites already. 
There is also a huge number of tools and samples for SharePoint from the community
and vendors.
</p>
        <p>
          <strong>Easily extended to make simple tools</strong> : Not sure this really applies
to SharePoint. It can certainly be extended - very easily in fact - but
for simple tools?  Simple is not a word I associate with SharePoint.
</p>
        <p>
          <strong>Easy to debug</strong> :  Definitely yes - from within Visual Studio. 
However, diagnostically it can be tricky so I'd say that's a maybe.
</p>
        <p>
          <strong>Easy to create test automation</strong> : It's no harder than any other server
platform.  We have created unit tests for MS CRM - if you can test that you can
test anything!  
</p>
        <p>
          <strong>All configuration stores easily in source control</strong> : Source control
of web.config is a pain for most web sites, more so with SharePoint. If your doing
SharePoint development properly then you may have less configuration that normal web
sites.
</p>
        <p>
          <strong>Other Stuff</strong> : SharePoint provides so much base functionality out
of the box.  Any pain you experience must be weighed against the benefits and
time savings that are delivered by this.
</p>
        <p>
 
</p>
        <p>
To fail SharePoint for development on the basis that you have to use a server
OS ??  Sorry, but this is ridiculous.  I can't imagine any serious developer
using XP or Vista as a development OS.  Why? 
</p>
        <ul>
          <li>
It's not what you are delivering applications to - certainly with SharePoint. 100%
of the solutions I have delivered in the last 3 years have been for Windows 2003 Server
and one of the server products running on it (SQL 2k, SQL 05, WSS etc). 
</li>
          <li>
You can only easily run 1 web site at a time - yes yes, you can fiddle that but it's
a PITA 
</li>
          <li>
You can't run any of the server software you need to code against. 
</li>
        </ul>
        <p>
Of course, if you only create single user desktop widgets then you can probably use
XP or Vista quite happily.
</p>
        <p>
SharePoint is a large complex beast.  It's not another .Net API or some little
platform you can learn in 20 minutes.  It's designed to solve complex human problems
and manage data in many different formats.  I can't say for sure if it's a great
development platform or not, but I KNOW for a FACT that Microsoft are working very,
very hard to make it so.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=baf0ba21-a042-46d5-82c6-ea08e3f5f927" />
      </body>
      <title>SharePoint a Great Development Platform???</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,baf0ba21-a042-46d5-82c6-ea08e3f5f927.aspx</guid>
      <link>http://jonesie.net.nz/2008/04/19/SharePointAGreatDevelopmentPlatform.aspx</link>
      <pubDate>Sat, 19 Apr 2008 21:22:24 GMT</pubDate>
      <description>&lt;p&gt;
Today I notice a blog thread initiated by a &lt;a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/09/13/sharepoint-is-not-a-good-development-platform.aspx"&gt;post&lt;/a&gt; from
MVP Jeffrey Palermo on the merits of SharePoint as a development platform
&lt;/p&gt;
&lt;p&gt;
Jeffrey lists a few facets of what makes a great development&amp;nbsp;platform, most of
which I agree with.&amp;nbsp; 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Easy to install 
&lt;li&gt;
Easy to configure 
&lt;li&gt;
Integrates well with simple tools 
&lt;li&gt;
Easily extended to make simple tools 
&lt;li&gt;
Easy to debug 
&lt;li&gt;
Easy to create test automation 
&lt;li&gt;
All configuration stores easily in source control 
&lt;li&gt;
(Others He forgot)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I'm the first to moan and rant about the pain of SharePoint but this is mostly based
on ignorance and impatience.&amp;nbsp; I'm learning fast and am starting to appreciate
the benefits of using SharePoint as a development platform.
&lt;/p&gt;
&lt;p&gt;
But back to the original question:&amp;nbsp; Is SharePoint a Great Development Platform?
Using Jeffry's list above lets see.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Easy to install&lt;/strong&gt; :&amp;nbsp;&amp;nbsp;There's only a few options in the installer
and once you understand what each means and why you would chose each option, then
yes, I think it's very easy to install.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Easy to configure&lt;/strong&gt; : For out of the box operation of WSS or MOSS it's
not too bad.&amp;nbsp; If you want some enterprise features then there is quite a bit
of configuration to wade through.&amp;nbsp; So, maybe yes, maybe no - it depends.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Integrates well with simple tools&lt;/strong&gt; : Not totally sure what Jeffrey
means here but I think he's talking about development tools.&amp;nbsp; On that basis,
you would have to say yes.&amp;nbsp; Visual Studio 2005 and the SharePoint extensions
make it very easy to create and deploy features.&amp;nbsp; Visual Studio 2008 support
is coming for VSeWSS but it does a better job with SharePoint sites already.&amp;nbsp;
There is also a huge number of tools and samples for SharePoint from the community
and vendors.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Easily extended to make simple tools&lt;/strong&gt; : Not sure this really applies
to SharePoint.&amp;nbsp;It can certainly be extended&amp;nbsp;- very easily in fact - but
for simple tools?&amp;nbsp; Simple is not a word I associate with SharePoint.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Easy to debug&lt;/strong&gt;&amp;nbsp;: &amp;nbsp;Definitely yes - from within Visual Studio.&amp;nbsp;
However, diagnostically it can be&amp;nbsp;tricky so I'd say that's a maybe.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Easy to create test automation&lt;/strong&gt; : It's no harder than any other server
platform.&amp;nbsp; We have created unit tests for MS CRM - if you can test that you can
test anything!&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;All configuration stores easily in source control&lt;/strong&gt; :&amp;nbsp;Source control
of web.config is a pain for most web sites, more so with SharePoint. If your doing
SharePoint development properly then you may have less configuration that normal web
sites.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Other Stuff&lt;/strong&gt; : SharePoint provides so much base functionality out
of the box.&amp;nbsp; Any pain you experience must be weighed against the benefits and
time savings that are delivered by this.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
To&amp;nbsp;fail SharePoint for development on the basis that you have to use a server
OS ??&amp;nbsp; Sorry, but this is ridiculous.&amp;nbsp; I can't imagine any serious developer
using XP or Vista as a development OS.&amp;nbsp; Why?&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
It's not what you are delivering applications to - certainly with SharePoint. 100%
of the solutions I have delivered in the last 3 years have been for Windows 2003 Server
and one of the server products running on it (SQL 2k, SQL 05, WSS etc). 
&lt;li&gt;
You can only easily run 1 web site at a time - yes yes, you can fiddle that but it's
a PITA 
&lt;li&gt;
You can't run any of the server software you need to code against. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Of course, if you only create single user desktop widgets then you can probably use
XP or Vista quite happily.
&lt;/p&gt;
&lt;p&gt;
SharePoint is a large complex beast.&amp;nbsp; It's not another .Net API or some little
platform you can learn in 20 minutes.&amp;nbsp; It's designed to solve complex human problems
and manage data in many different formats.&amp;nbsp; I can't say for sure if it's a great
development platform or not, but I KNOW for a FACT that Microsoft are working very,
very hard to make it so.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=baf0ba21-a042-46d5-82c6-ea08e3f5f927" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,baf0ba21-a042-46d5-82c6-ea08e3f5f927.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=1ffe437e-5e36-4bf2-9662-56f82eec5540</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,1ffe437e-5e36-4bf2-9662-56f82eec5540.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,1ffe437e-5e36-4bf2-9662-56f82eec5540.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=1ffe437e-5e36-4bf2-9662-56f82eec5540</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks to <a href="http://blogs.msdn.com/cjohnson/default.aspx">Chris Johnson</a> I
now know how to create a feature staple with VSeWSS.
</p>
        <p>
If you don't know what a staple is then Chris has a <a href="http://blogs.msdn.com/cjohnson/archive/2006/11/01/feature-stapling-in-wss-v3.aspx">good
description on his blog</a>.  You should read this first for more background
but my simple explanation of a feature staple follows.
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <em>Feature staples are a way of attaching customisations to existing features and
hence site definitions.  This is acheived by creating a feature that associates
itself with another feature.  You can also add Feature Receiver code (which
is like an event handler for feature activation) that lets you do all sorts of goodness
that you can't do with CAML.</em>
          </p>
        </blockquote>
        <p>
          <strong>Feature stapling is the reccommened way of customising SharePoint.  Site
definitions may appear to be a good way to go, but dont.  </strong>
          <a href="http://www.andrewconnell.com/blog/archive/2008/02/15/You-dont-need-to-create-site-definitions.aspx">
            <strong>Andrew
Connell explains why</strong>
          </a>
          <strong>.</strong>
        </p>
        <p>
To create a staple you actually need to create two features:  the feature
that you want activated and a feature to do the stapling.  
</p>
        <p>
          <font color="#ff0000">Update</font>:  I just found a much better description
of the process <a href="http://feeds.feedburner.com/~r/ItsInSystemDotWhat/~3/259896180/walkthrough-creating-sharepoint-feature.html">here</a>.
</p>
        <p>
VSeWSS 1.1 does not yet support feature stapling via an item template, but you can
still do this via a neat trick that the VSeWSS team provided.  Here's the steps.
</p>
        <ol>
          <li>
Create an Empty VSeWSS project:<br /><br /><img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[2].Jpg" border="0" /><br /></li>
          <li>
Add a module for the feature you want stapled.  This this case I just used the
default module that copies sample.txt. 
</li>
          <li>
Switch to WSP View and refresh. 
</li>
          <li>
Open the module feature.xml and change the scope to <strong>Site</strong>. 
</li>
          <li>
Open the Module.xml for the new module and change the Url to "MyModule" and add RootWebOnly="FALSE":<br /><br /><img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[3].Jpg" border="0" /><br /></li>
          <li>
Deploy the solution and make sure that you get sample.txt in a new folder MyModule. 
</li>
          <li>
Now for the stapler.  In the solution explorer, create a new folder called Stapler. 
Add a new XML filed to this called element.xml.  This will contain the feature
associations:<br /><img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[6].Jpg" border="0" /><br />
This element.xml contains 3 associations for the new Module.  The Id GUID is
from Module1.  Get this value from the WSP View of Module1 feature.xml. 
The TemplateName is found in 12\TEMPLATE\1033\XML\WEBTEMP.XML - STS is the name
of the templte and #0, #1, #2 is the configuration.  So, this staple associates
Module1 with Blank Site, Team Site and Document Workspace.<br /><br />
Make sure the element Id is a new unique GUID.  WSP uses this.<br /><br />
Note: there are issues with the blank site.  I can't find the reference
to the explaination of this.. will update when I do. 
<br /></li>
          <li>
Switch to WSP View and refresh.  You should see a new Feature appear for
the staple called Untitiled1.  Rename the folders to the name of your stapler
thus:<br /><br /><img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[7].Jpg" border="0" /><br />
You should also change the Title in the feature.xml.<br /></li>
          <li>
Edit the feature.xml for the Stapler and set the Scope to <strong>Farm</strong>:  <br />
 <img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[8].Jpg" border="0" /></li>
          <li>
Deploy and pray. 
</li>
          <li>
Test &amp; checking.  The stapler feature will be deployed to the farm. 
Check the Farm Features to make sure it's there. VSeWSS will also deploy the module
to the default site so you need to create a new site to test that the staple works.  
</li>
          <li>
Create a new Team site.  Use SharePoint designer to see if the MyModule folder
is created. 
</li>
          <li>
Now that you have the stapler working you can create a feature receiver to perform
any code based actions.  I haven't done this part yet.  I'll post again
when I do.</li>
        </ol>
        <p>
Normally you will use this method to deploy a master page, aspx page, css etc. 
If this is the case then you probably don't need to copy these files to every sub-site,
just to the root site.  Set RootWebOnly to TRUE if you want.  Remember that
if Module1 is copying files to a library then you need Type=GhostableInLibrary for
each file that is copied.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=1ffe437e-5e36-4bf2-9662-56f82eec5540" />
      </body>
      <title>VSeWSS: Feature Staples</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,1ffe437e-5e36-4bf2-9662-56f82eec5540.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/30/VSeWSSFeatureStaples.aspx</link>
      <pubDate>Sun, 30 Mar 2008 20:31:43 GMT</pubDate>
      <description>&lt;p&gt;
Thanks to &lt;a href="http://blogs.msdn.com/cjohnson/default.aspx"&gt;Chris Johnson&lt;/a&gt; I
now know how to create a feature staple with VSeWSS.
&lt;/p&gt;
&lt;p&gt;
If you don't know what a staple is then Chris has a &lt;a href="http://blogs.msdn.com/cjohnson/archive/2006/11/01/feature-stapling-in-wss-v3.aspx"&gt;good
description on his blog&lt;/a&gt;.&amp;nbsp; You should read this first for&amp;nbsp;more background
but my simple explanation of a feature staple follows.
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;em&gt;Feature staples are a way of attaching customisations to existing features and
hence site definitions.&amp;nbsp; This is acheived by creating a feature that associates
itself with another feature.&amp;nbsp; You can also add&amp;nbsp;Feature Receiver code (which
is like an event handler for feature activation) that lets you do all sorts of goodness
that you can't do with CAML.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Feature stapling is the reccommened way of customising SharePoint.&amp;nbsp; Site
definitions may appear to be a good way to go, but dont.&amp;nbsp; &lt;/strong&gt;&lt;a href="http://www.andrewconnell.com/blog/archive/2008/02/15/You-dont-need-to-create-site-definitions.aspx"&gt;&lt;strong&gt;Andrew
Connell explains why&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
To create a staple you actually need to create two features:&amp;nbsp;&amp;nbsp;the feature
that you want activated and a feature to do the stapling.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;Update&lt;/font&gt;:&amp;nbsp; I just found a much better description of
the process &lt;a href="http://feeds.feedburner.com/~r/ItsInSystemDotWhat/~3/259896180/walkthrough-creating-sharepoint-feature.html"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
VSeWSS 1.1 does not yet support feature stapling via an item template, but you can
still do this via a neat trick that the VSeWSS team provided.&amp;nbsp; Here's the steps.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Create an Empty VSeWSS project:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[2].Jpg" border=0&gt;
&lt;br&gt;
&lt;li&gt;
Add a module for the feature you want stapled.&amp;nbsp; This this case I just used the
default module that copies sample.txt. 
&lt;li&gt;
Switch to WSP View and refresh. 
&lt;li&gt;
Open the module feature.xml and change the scope to &lt;strong&gt;Site&lt;/strong&gt;. 
&lt;li&gt;
Open the Module.xml for the new module and change the Url to "MyModule" and add RootWebOnly="FALSE":&lt;br&gt;
&lt;br&gt;
&lt;img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[3].Jpg" border=0&gt;
&lt;br&gt;
&lt;li&gt;
Deploy the solution and make sure that you get sample.txt in a new folder MyModule. 
&lt;li&gt;
Now for the stapler.&amp;nbsp; In the solution explorer, create a new folder called Stapler.&amp;nbsp;
Add a new XML filed to this called element.xml.&amp;nbsp; This will contain the feature
associations:&lt;br&gt;
&lt;img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[6].Jpg" border=0&gt;
&lt;br&gt;
This element.xml contains 3 associations for the new Module.&amp;nbsp; The Id GUID is
from&amp;nbsp;Module1.&amp;nbsp; Get this value from the WSP View of Module1 feature.xml.&amp;nbsp;
The TemplateName is found in&amp;nbsp;12\TEMPLATE\1033\XML\WEBTEMP.XML - STS is the name
of the templte and #0, #1, #2 is the configuration.&amp;nbsp; So, this staple associates
Module1 with Blank Site, Team Site and Document Workspace.&lt;br&gt;
&lt;br&gt;
Make sure the element Id is a new unique GUID.&amp;nbsp; WSP uses this.&lt;br&gt;
&lt;br&gt;
Note: there are issues with the blank site.&amp;nbsp;&amp;nbsp;I can't find the reference
to the explaination&amp;nbsp;of this.. will update when I do. 
&lt;br&gt;
&lt;li&gt;
Switch to WSP View&amp;nbsp;and refresh.&amp;nbsp; You should see a new Feature appear for
the staple called Untitiled1.&amp;nbsp; Rename the folders to the name of&amp;nbsp;your stapler
thus:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[7].Jpg" border=0&gt;
&lt;br&gt;
You should also change the Title in the feature.xml.&lt;br&gt;
&lt;li&gt;
Edit the feature.xml for the Stapler and set the Scope to &lt;strong&gt;Farm&lt;/strong&gt;:&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&lt;img src="http://jonesie.net.nz/content/binary/VSeWSSStaples[8].Jpg" border=0&gt; 
&lt;li&gt;
Deploy and pray. 
&lt;li&gt;
Test &amp;amp; checking.&amp;nbsp; The stapler feature will be deployed to the farm.&amp;nbsp;
Check the Farm Features to make sure it's there. VSeWSS will also deploy the module
to the default site so you need to create a new site to test that the staple works.&amp;nbsp; 
&lt;li&gt;
Create a new Team site.&amp;nbsp; Use SharePoint designer to see if the MyModule folder
is created. 
&lt;li&gt;
Now that you have the stapler working you can create a feature receiver to perform
any code based actions.&amp;nbsp; I haven't done this part yet.&amp;nbsp; I'll post again
when I do.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Normally you will use this method to deploy a master page, aspx page, css etc.&amp;nbsp;
If this is the case then you probably don't need to copy these files to every sub-site,
just to the root site.&amp;nbsp; Set RootWebOnly to TRUE if you want.&amp;nbsp; Remember that
if Module1 is copying files to a library then you need Type=GhostableInLibrary for
each file that is copied.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=1ffe437e-5e36-4bf2-9662-56f82eec5540" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,1ffe437e-5e36-4bf2-9662-56f82eec5540.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=40a1786d-3796-453a-9ea8-6d06ca40b619</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,40a1786d-3796-453a-9ea8-6d06ca40b619.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,40a1786d-3796-453a-9ea8-6d06ca40b619.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=40a1786d-3796-453a-9ea8-6d06ca40b619</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I had a custom field type in my MOSS solution that was a simple CODE type.  This
was based on a Text type but all it did was to uppercase any value.
</p>
        <p>
However, when I referenced a list that used this field type from InfoPath the column
would not display in InfoPath.
</p>
        <p>
I haven't figured out how to do this yet so I reverted back to a Text field for now. 
I'm guessing there is an attribute I need to add the the module.xml or maybe in code? If
you have a solution, I'd love to know :)
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=40a1786d-3796-453a-9ea8-6d06ca40b619" />
      </body>
      <title>InfoPath Web Forms and Custom Field Types</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,40a1786d-3796-453a-9ea8-6d06ca40b619.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/16/InfoPathWebFormsAndCustomFieldTypes.aspx</link>
      <pubDate>Sun, 16 Mar 2008 20:49:17 GMT</pubDate>
      <description>&lt;p&gt;
I had a custom field type in my MOSS solution that was a simple CODE type.&amp;nbsp; This
was based on a Text type but all it did was to uppercase any value.
&lt;/p&gt;
&lt;p&gt;
However, when I referenced a list that used this field type from InfoPath the column
would not display in&amp;nbsp;InfoPath.
&lt;/p&gt;
&lt;p&gt;
I haven't figured out how to do this yet so I reverted back to a Text field for now.&amp;nbsp;
I'm guessing there is an attribute I need to add the the module.xml or maybe in code?&amp;nbsp;If
you have a solution, I'd love to know :)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=40a1786d-3796-453a-9ea8-6d06ca40b619" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,40a1786d-3796-453a-9ea8-6d06ca40b619.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=00c95377-f653-4769-9df7-ad6d8cc93707</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,00c95377-f653-4769-9df7-ad6d8cc93707.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,00c95377-f653-4769-9df7-ad6d8cc93707.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=00c95377-f653-4769-9df7-ad6d8cc93707</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Not sure what it fixes - but it's gotta help!
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?familyid=B57C805D-2821-4625-A6F1-80725267F887&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=B57C805D-2821-4625-A6F1-80725267F887&amp;displaylang=en</a>
        </p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=00c95377-f653-4769-9df7-ad6d8cc93707" />
      </body>
      <title>SharePoint Designer SP1</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,00c95377-f653-4769-9df7-ad6d8cc93707.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/14/SharePointDesignerSP1.aspx</link>
      <pubDate>Fri, 14 Mar 2008 02:16:30 GMT</pubDate>
      <description>&lt;p&gt;
Not sure what it fixes - but it's gotta help!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=B57C805D-2821-4625-A6F1-80725267F887&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=B57C805D-2821-4625-A6F1-80725267F887&amp;amp;displaylang=en&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=00c95377-f653-4769-9df7-ad6d8cc93707" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,00c95377-f653-4769-9df7-ad6d8cc93707.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=3c30c736-f4a0-4b70-83f1-cb814dbe95d8</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,3c30c736-f4a0-4b70-83f1-cb814dbe95d8.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,3c30c736-f4a0-4b70-83f1-cb814dbe95d8.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=3c30c736-f4a0-4b70-83f1-cb814dbe95d8</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I truly wish you haven't been wasting as much time as I have this week with SharePoint
anonymous access and a custom master page.
</p>
        <p>
I have a site that uses a custom membership provider, forms authentication, anonymous
access and a custom master page.  My problems were many but in the end the main
one was getting anonymous access to the home page.  This would always give me
an ugly 401 error.
</p>
        <p>
After a good nights sleep and with a clear head, I finally realised that the
problem was not with Pages/default.aspx but with it's masterpage which as not
deployed correctly.  I had missed putting type="GhostableInLibrary" into the
file node of the module:
</p>
        <font color="#0000ff" size="2">
          <p>
  &lt;
</p>
        </font>
        <font color="#a31515" size="2">Module</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">MasterPages</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Url</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">_catalogs/masterpage</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">""</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">RootWebOnly</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">TRUE</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> &gt;<br />
    &lt;</font>
        <font color="#a31515" size="2">File</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">mine.master</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Url</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">mine.master</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">GhostableInLibrary</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">IgnoreIfAlreadyExists</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">FALSE</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
  </font>
        <font color="#0000ff" size="2">&lt;/</font>
        <font color="#a31515" size="2">Module</font>
        <font color="#0000ff" size="2">&gt;
</font>
        <p>
It's the little things that can really screw you!
</p>
        <p>
TGIF.
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=3c30c736-f4a0-4b70-83f1-cb814dbe95d8" />
      </body>
      <title>Publising a MasterPage and Anonymous Access</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,3c30c736-f4a0-4b70-83f1-cb814dbe95d8.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/13/PublisingAMasterPageAndAnonymousAccess.aspx</link>
      <pubDate>Thu, 13 Mar 2008 20:28:49 GMT</pubDate>
      <description>&lt;p&gt;
I truly wish you haven't been wasting as much time as I have this week with SharePoint
anonymous access and a custom master page.
&lt;/p&gt;
&lt;p&gt;
I have a site that uses a custom membership provider, forms authentication,&amp;nbsp;anonymous
access and a custom master page.&amp;nbsp; My problems were many but in the end the main
one was getting anonymous access to the home page.&amp;nbsp; This would always give me
an&amp;nbsp;ugly&amp;nbsp;401 error.
&lt;/p&gt;
&lt;p&gt;
After&amp;nbsp;a good nights sleep and with a clear head, I finally realised that the
problem was not with Pages/default.aspx but&amp;nbsp;with it's masterpage which as not
deployed correctly.&amp;nbsp; I had missed putting type="GhostableInLibrary" into the
file&amp;nbsp;node of the module:
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;nbsp; &amp;lt;
&lt;/font&gt;&lt;font color=#a31515 size=2&gt;Module&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;MasterPages&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Url&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;_catalogs/masterpage&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;""&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;RootWebOnly&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;TRUE&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;File&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;mine.master&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Url&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;mine.master&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;GhostableInLibrary&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;IgnoreIfAlreadyExists&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;FALSE&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;Module&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&gt;
&lt;/font&gt; 
&lt;p&gt;
It's the little things that can really screw you!
&lt;/p&gt;
&lt;p&gt;
TGIF.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=3c30c736-f4a0-4b70-83f1-cb814dbe95d8" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,3c30c736-f4a0-4b70-83f1-cb814dbe95d8.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=ec784e81-e939-4100-bf76-c3e986ee0ef3</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,ec784e81-e939-4100-bf76-c3e986ee0ef3.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,ec784e81-e939-4100-bf76-c3e986ee0ef3.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=ec784e81-e939-4100-bf76-c3e986ee0ef3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you are having problems creating a State Machine workflow for SharePoint in VB
(and I really dont know why you would want to use VB but... :) then you may see an
error about missing files, Workflow1.layout and Workflow1.resx.  If this
is the case then you need to copy these files from the C# Project Tempalte zip to
the VB version.  Full details are in the following blog post comments- it's a
long one so search for workflow1.layout to find it.
</p>
        <p>
          <a href="http://blogs.msdn.com/sharepoint/archive/2006/06/07/introduction-to-sharepoint-workflow.aspx">http://blogs.msdn.com/sharepoint/archive/2006/06/07/introduction-to-sharepoint-workflow.aspx</a>
        </p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=ec784e81-e939-4100-bf76-c3e986ee0ef3" />
      </body>
      <title>SharePoint State Machine Workflow in VB - missing files</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,ec784e81-e939-4100-bf76-c3e986ee0ef3.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/12/SharePointStateMachineWorkflowInVBMissingFiles.aspx</link>
      <pubDate>Wed, 12 Mar 2008 21:40:25 GMT</pubDate>
      <description>&lt;p&gt;
If you are having problems creating a State Machine workflow for SharePoint in VB
(and I really dont know why you would want to use VB but... :) then you may see an
error about&amp;nbsp;missing files, Workflow1.layout and Workflow1.resx.&amp;nbsp; If this
is the case then you need to copy these files from the C# Project Tempalte zip to
the VB version.&amp;nbsp; Full details are in the following blog post comments- it's a
long one so search for workflow1.layout to find it.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/sharepoint/archive/2006/06/07/introduction-to-sharepoint-workflow.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2006/06/07/introduction-to-sharepoint-workflow.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=ec784e81-e939-4100-bf76-c3e986ee0ef3" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,ec784e81-e939-4100-bf76-c3e986ee0ef3.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=56ef5968-6595-4cb7-b6ac-774c720fb661</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,56ef5968-6595-4cb7-b6ac-774c720fb661.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,56ef5968-6595-4cb7-b6ac-774c720fb661.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=56ef5968-6595-4cb7-b6ac-774c720fb661</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To create a forms library definition with VSeWSS 1.1 is very easy.  You can similarly
create a list definition based on a content type.  However, you cant automatically
create a forms library with an attached content type.
</p>
        <p>
This is how I did it.
</p>
        <ol>
          <li>
Create your content type 
</li>
          <li>
Create a temporary list based on the content type 
</li>
          <li>
Create a form library list 
</li>
          <li>
Edit the forms lib schema.xml 
</li>
        </ol>
        <ol>
          <li>
Copy the content type fields from the temporary list schema to the &lt;Fields&gt;
node. 
</li>
          <li>
Update the &lt;List&gt; node, adding:<br /><br /></li>
          <li>
            <font color="#0000ff">
              <p>
              </p>
            </font>
            <font color="#ff0000">BaseType</font>
            <font color="#0000ff">=</font>
            <font color="#000000">"</font>
            <font color="#0000ff">1</font>
            <font color="#000000">"<br /></font>
            <font color="#ff0000">Direction</font>
            <font color="#0000ff">=</font>
            <font color="#000000">"</font>
            <font color="#0000ff">0</font>
            <font color="#000000">"<br /></font>
            <font color="#ff0000">EnableContentTypes</font>
            <font color="#0000ff">=</font>
            <font color="#000000">"</font>
            <font color="#0000ff">TRUE</font>
            <font color="#000000">"</font>
          </li>
          <li>
            <p>
              <font color="#000000">In &lt;ContentTypes&gt; optionally remove the base Form content
type reference if you only want to allow the specific content type: </font>
              <font color="#ff0000">
                <font color="#0000ff">
                </font>
              </font>
            </p>
            <p>
&lt;<font color="#a31515">ContentTypeRef</font><font color="#0000ff"></font><font color="#ff0000">ID</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#0000ff">0x010101</font><font color="#000000">"</font><font color="#0000ff">&gt;
... &lt;/<font color="#a31515">ContentTypeRef<font color="#0000ff">&gt;
</font></font></font></p>
          </li>
          <li>
            <p>
              <font color="#008000">
              </font>
              <font color="#000000">
                <font color="#008000">
                  <font color="#000000">Add
a new &lt;ContentTypeRef&gt; that has the ID that matches the content type you
created in step 1.</font>
                </font>
              </font>
            </p>
          </li>
        </ol>
        <li>
Delete the temporary list definition 
</li>
        <li>
Deploy and cheer!</li>
        <p>
 
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=56ef5968-6595-4cb7-b6ac-774c720fb661" />
      </body>
      <title>VSeWSS: Creating a Forms Library with a Content Type</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,56ef5968-6595-4cb7-b6ac-774c720fb661.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/05/VSeWSSCreatingAFormsLibraryWithAContentType.aspx</link>
      <pubDate>Wed, 05 Mar 2008 22:45:50 GMT</pubDate>
      <description>&lt;p&gt;
To create a forms library definition with VSeWSS 1.1 is very easy.&amp;nbsp; You can similarly
create a list definition based on a content type.&amp;nbsp; However, you cant automatically
create a forms library with an attached content type.
&lt;/p&gt;
&lt;p&gt;
This is how I did it.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Create your content type 
&lt;li&gt;
Create a temporary list based on the content type 
&lt;li&gt;
Create a&amp;nbsp;form library list 
&lt;li&gt;
Edit the forms lib schema.xml 
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
Copy the content type fields from the temporary list schema to the &amp;lt;Fields&amp;gt;
node. 
&lt;li&gt;
Update the &amp;lt;List&amp;gt; node, adding:&lt;br&gt;
&lt;br&gt;
&lt;li&gt;
&lt;font color=#0000ff&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;BaseType&lt;/font&gt;&lt;font color=#0000ff&gt;=&lt;/font&gt;&lt;font color=#000000&gt;"&lt;/font&gt;&lt;font color=#0000ff&gt;1&lt;/font&gt;&lt;font color=#000000&gt;"&lt;br&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;Direction&lt;/font&gt;&lt;font color=#0000ff&gt;=&lt;/font&gt;&lt;font color=#000000&gt;"&lt;/font&gt;&lt;font color=#0000ff&gt;0&lt;/font&gt;&lt;font color=#000000&gt;"&lt;br&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;EnableContentTypes&lt;/font&gt;&lt;font color=#0000ff&gt;=&lt;/font&gt;&lt;font color=#000000&gt;"&lt;/font&gt;&lt;font color=#0000ff&gt;TRUE&lt;/font&gt;&lt;font color=#000000&gt;"&lt;/font&gt;&gt;
&lt;li&gt;
&lt;p&gt;
&lt;font color=#000000&gt;In &amp;lt;ContentTypes&amp;gt; optionally remove the base Form content
type reference if you only want to allow the specific&amp;nbsp;content type: &lt;/font&gt;&lt;font color=#ff0000&gt;&lt;font color=#0000ff&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&gt;&lt;font color=#a31515&gt;ContentTypeRef&lt;/font&gt;&lt;font color=#0000ff&gt; &lt;/font&gt;&lt;font color=#ff0000&gt;ID&lt;/font&gt;&lt;font color=#0000ff&gt;=&lt;/font&gt;&lt;font color=#000000&gt;"&lt;/font&gt;&lt;font color=#0000ff&gt;0x010101&lt;/font&gt;&lt;font color=#000000&gt;"&lt;/font&gt;&lt;font color=#0000ff&gt;&amp;gt;
... &amp;lt;/&lt;font color=#a31515&gt;ContentTypeRef&lt;font color=#0000ff&gt;&amp;gt;
&lt;/p&gt;
&gt;&gt;&gt;&gt; 
&lt;li&gt;
&lt;p&gt;
&lt;font color=#008000&gt;&lt;/font&gt;&lt;font color=#000000&gt;&lt;font color=#008000&gt;&lt;font color=#000000&gt;Add
a new &amp;lt;ContentTypeRef&amp;gt; that has&amp;nbsp;the ID that matches the content type you
created in step 1.&lt;/font&gt;
&lt;/p&gt;
&gt;&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
Delete the temporary list definition 
&lt;li&gt;
Deploy and cheer!&lt;/li&gt;&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=56ef5968-6595-4cb7-b6ac-774c720fb661" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,56ef5968-6595-4cb7-b6ac-774c720fb661.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=3936a9da-74c4-4330-bbaf-c4dc8d900fcd</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,3936a9da-74c4-4330-bbaf-c4dc8d900fcd.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,3936a9da-74c4-4330-bbaf-c4dc8d900fcd.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=3936a9da-74c4-4330-bbaf-c4dc8d900fcd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here's a small trick that confused me for a while this morning.  VSeWSS creates
a setup.bat &amp; .wsp file that will deploy a site definition into a specified server. 
Running setup.bat from the command prompt appears to be the obvious way to do that. 
You can also override the default web and site urls, e.g:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New">setup /weburl </font>
            <a href="http://myserver/">
              <font face="Courier New">http://myserver</font>
            </a>
            <font face="Courier New"> /siteurl </font>
            <a href="http://myserver/">
              <font face="Courier New">http://myserver</font>
            </a>
          </p>
        </blockquote>
        <p>
The default being localhost (or whatever you developed against).
</p>
        <p>
However, this was failing for me becuase the specified web did not yet have a root
site collection and some part of the site definition (web parts) were scoped to the
site.
</p>
        <p>
The solution is to create a blank site using stsadm thus:
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font face="Courier New">stsadm -o createsite -url </font>
            <a href="http://myserver">
              <font face="Courier New">http://myserver</font>
            </a>
            <font face="Courier New"> -ownerlogin
administrator -owneremail </font>
            <a href="mailto:me@myemail.com">
              <font face="Courier New">me@myemail.com</font>
            </a>
          </p>
        </blockquote>
        <p>
Then you can deploy the site defintion using setup.bat. When you browse to the new
site you will be prompted with a list of possible site definitions.
</p>
        <p>
Like all things SharePoint this is easy and obvious when you know...
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=3936a9da-74c4-4330-bbaf-c4dc8d900fcd" />
      </body>
      <title>VSeWSS : Deploying a site definition</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,3936a9da-74c4-4330-bbaf-c4dc8d900fcd.aspx</guid>
      <link>http://jonesie.net.nz/2008/03/02/VSeWSSDeployingASiteDefinition.aspx</link>
      <pubDate>Sun, 02 Mar 2008 23:42:09 GMT</pubDate>
      <description>&lt;p&gt;
Here's a small trick that confused me for a while this morning.&amp;nbsp; VSeWSS creates
a setup.bat &amp;amp; .wsp file that will deploy a site definition into a specified server.&amp;nbsp;
Running setup.bat from the command prompt appears to be the obvious way to do that.&amp;nbsp;
You can also override the default web and site urls, e.g:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;setup /weburl &lt;/font&gt;&lt;a href="http://myserver/"&gt;&lt;font face="Courier New"&gt;http://myserver&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt; /siteurl &lt;/font&gt;&lt;a href="http://myserver/"&gt;&lt;font face="Courier New"&gt;http://myserver&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The default being localhost (or whatever you developed against).
&lt;/p&gt;
&lt;p&gt;
However, this was failing for me becuase the specified web did not yet have a root
site collection and some part of the site definition (web parts) were scoped to the
site.
&lt;/p&gt;
&lt;p&gt;
The solution is to create a blank site using stsadm thus:
&lt;/p&gt;
&lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;font face="Courier New"&gt;stsadm -o createsite -url &lt;/font&gt;&lt;a href="http://myserver"&gt;&lt;font face="Courier New"&gt;http://myserver&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;&amp;nbsp;-ownerlogin
administrator -owneremail &lt;/font&gt;&lt;a href="mailto:me@myemail.com"&gt;&lt;font face="Courier New"&gt;me@myemail.com&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Then you can deploy the site defintion using setup.bat. When you browse to the new
site you will be prompted with a list of possible site definitions.
&lt;/p&gt;
&lt;p&gt;
Like all things SharePoint this is easy and obvious when you know...
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=3936a9da-74c4-4330-bbaf-c4dc8d900fcd" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,3936a9da-74c4-4330-bbaf-c4dc8d900fcd.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=322013f2-f6e9-4c06-8700-bd026d55e0b2</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,322013f2-f6e9-4c06-8700-bd026d55e0b2.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,322013f2-f6e9-4c06-8700-bd026d55e0b2.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=322013f2-f6e9-4c06-8700-bd026d55e0b2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">No, not mine, but this one.  <a href="http://nickgrattan.wordpress.com">http://nickgrattan.wordpress.com</a>. 
There is lots of useful material here on many SharePoint topics.<br /><br />
Does anyone have a list of quality SharePoint blogs?  Maybe I'll start one here...<br /><br /><p></p><img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=322013f2-f6e9-4c06-8700-bd026d55e0b2" /></body>
      <title>Great SharePoint Blog</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,322013f2-f6e9-4c06-8700-bd026d55e0b2.aspx</guid>
      <link>http://jonesie.net.nz/2008/02/25/GreatSharePointBlog.aspx</link>
      <pubDate>Mon, 25 Feb 2008 19:38:38 GMT</pubDate>
      <description>No, not mine, but this one.&amp;nbsp; &lt;a href="http://nickgrattan.wordpress.com"&gt;http://nickgrattan.wordpress.com&lt;/a&gt;.&amp;nbsp;
There is lots of useful material here on many SharePoint topics.&lt;br&gt;
&lt;br&gt;
Does anyone have a list of quality SharePoint blogs?&amp;nbsp; Maybe I'll start one here...&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=322013f2-f6e9-4c06-8700-bd026d55e0b2" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,322013f2-f6e9-4c06-8700-bd026d55e0b2.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=b9ce0572-297e-4112-9701-92d51a1a893a</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,b9ce0572-297e-4112-9701-92d51a1a893a.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,b9ce0572-297e-4112-9701-92d51a1a893a.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=b9ce0572-297e-4112-9701-92d51a1a893a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">When deploying a solution to a site you
can sometimes get errors that are not picked up during compilation.  For example,
we created a Content Type that contained a field with an inccorrect BaseType of "Person"
rather than "User".  This compiled just fine but fails on the first deploy. 
It then failed to compile after deploying.<br /><br />
To fix this is easy enough - remember to update the content type xml as well as the
generated schema.xml - but Visual Studio can get it's nickers in a knot and will not
be able to deploy the corrected solution.<br /><br />
You need to manually remove the solution using the setup.bat that is created during
deployment. Run setup.bat from the bin\debug or bin\release folder thus:  
<br /><br />
    <font face="Courier New"><b>setup /u</b></font><br /><br />
Then IISReset.<br /><br />
If you try to redeploy with Visual Studio you may now get an error that talks about
an "invariant language"  - sorry, I didn't save this error message when it happened. 
You will need to restart Visual Studio to clear this error.<br /><br /><br /><br /><p></p><img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=b9ce0572-297e-4112-9701-92d51a1a893a" /></body>
      <title>VSeWSS and getting things wrong</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,b9ce0572-297e-4112-9701-92d51a1a893a.aspx</guid>
      <link>http://jonesie.net.nz/2008/02/25/VSeWSSAndGettingThingsWrong.aspx</link>
      <pubDate>Mon, 25 Feb 2008 19:27:10 GMT</pubDate>
      <description>When deploying a solution to a site you can sometimes get errors that are not picked up during compilation.&amp;nbsp; For example, we created a Content Type that contained a field with an inccorrect BaseType of "Person" rather than "User".&amp;nbsp; This compiled just fine but fails on the first deploy.&amp;nbsp; It then failed to compile after deploying.&lt;br&gt;
&lt;br&gt;
To fix this is easy enough - remember to update the content type xml as well as the
generated schema.xml - but Visual Studio can get it's nickers in a knot and will not
be able to deploy the corrected solution.&lt;br&gt;
&lt;br&gt;
You need to manually remove the solution using the setup.bat that is created during
deployment. Run setup.bat from the bin\debug or bin\release folder thus:&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font face="Courier New"&gt;&lt;b&gt;setup /u&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
Then IISReset.&lt;br&gt;
&lt;br&gt;
If you try to redeploy with Visual Studio you may now get an error that talks about
an "invariant language"&amp;nbsp; - sorry, I didn't save this error message when it happened.&amp;nbsp;
You will need to restart Visual Studio to clear this error.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=b9ce0572-297e-4112-9701-92d51a1a893a" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,b9ce0572-297e-4112-9701-92d51a1a893a.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=606cd908-430c-4151-8a1a-ba447ee1ef70</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,606cd908-430c-4151-8a1a-ba447ee1ef70.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,606cd908-430c-4151-8a1a-ba447ee1ef70.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=606cd908-430c-4151-8a1a-ba447ee1ef70</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I'm in lovely sunny Wellington this week
working on some WSS samples using the Visual Studio Extensions for Windows SharePoint
Services 1.1 (or more easily pronounced VissyWiss).  One of the samples requires
the use of a Module Project Item.  There is surprisingly little documentation
- official or otherwise - on what a module does and how to use it - at least, not
that we can find.  So, here's my contribution - hopefully correct.<br /><br />
A Module Project Item is used to deploy files to any(?) part of your WSS installation. 
You specify the source of the item to copy as a file path relative to the module,
and the destination as a url path relative to the site root.  This all sounds
very simple, but the problem is that there are 2 urls and 2 paths so there are several
permitations possible and not all of them work!<br /><br />
When you add a Module Project Item to your project (Site def, Empty def etc) you will
get an XML file called Module.xml in a folder.  Our one looks like this:<br /><br /><font face="Courier New">&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;Elements Id="b43cb805-eebf-421a-83d3-c2a6cb8afa10" xmlns="http://schemas.microsoft.com/sharepoint/"&gt;<br />
  &lt;Module Name="module_training" Url="<b>images</b>"&gt;<br />
    &lt;File Url="WORD_icon.jpg" Path="<b>module_training\WORD_icon.jpg</b>" </font><font face="Courier New">Type="<b>Ghostable</b>" </font><font face="Courier New">/&gt;<br />
  &lt;/Module&gt;<br />
&lt;/Elements&gt;</font><br /><br /><br />
Module Url: This is where the files will be copied to.  The url is relative to
the site root.<br />
File Path: Path to the file relative to the project in Visual Studio.<br />
File Type: This can only be Ghostable or GhostableInLibrary.  You can only use
GhostableInLibrary if the module Url is for a List, such as Shared Documents.<br /><br />
&lt;Module&gt; also has a Path attribute but we dont need it for this operation.<br /><p></p>
The module will create folders if they dont exist so in the above example we are copying
an image to the root images folder, but this could easily be "customimages" and the
folder will be created.<br /><br />
There's more to Modules but that is all I have for now.  I'll update when I know
how to do Wildcards :)<br /><br /><img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=606cd908-430c-4151-8a1a-ba447ee1ef70" /></body>
      <title>VSeWSS 1.1 Modules</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,606cd908-430c-4151-8a1a-ba447ee1ef70.aspx</guid>
      <link>http://jonesie.net.nz/2008/02/25/VSeWSS11Modules.aspx</link>
      <pubDate>Mon, 25 Feb 2008 19:11:15 GMT</pubDate>
      <description>I'm in lovely sunny Wellington this week working on some WSS samples using the Visual Studio Extensions for Windows SharePoint Services 1.1 (or more easily pronounced VissyWiss).&amp;nbsp; One of the samples requires the use of a Module Project Item.&amp;nbsp; There is surprisingly little documentation - official or otherwise - on what a module does and how to use it - at least, not that we can find.&amp;nbsp; So, here's my contribution - hopefully correct.&lt;br&gt;
&lt;br&gt;
A Module Project Item is used to deploy files to any(?) part of your WSS installation.&amp;nbsp;
You specify the source of the item to copy as a file path relative to the module,
and the destination as a url path relative to the site root.&amp;nbsp; This all sounds
very simple, but the problem is that there are 2 urls and 2 paths so there are several
permitations possible and not all of them work!&lt;br&gt;
&lt;br&gt;
When you add a Module Project Item to your project (Site def, Empty def etc) you will
get an XML file called Module.xml in a folder.&amp;nbsp; Our one looks like this:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br&gt;
&amp;lt;Elements Id="b43cb805-eebf-421a-83d3-c2a6cb8afa10" xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;Module Name="module_training" Url="&lt;b&gt;images&lt;/b&gt;"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;File Url="WORD_icon.jpg" Path="&lt;b&gt;module_training\WORD_icon.jpg&lt;/b&gt;" &lt;/font&gt;&lt;font face="Courier New"&gt;Type="&lt;b&gt;Ghostable&lt;/b&gt;" &lt;/font&gt;&lt;font face="Courier New"&gt;/&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/Module&amp;gt;&lt;br&gt;
&amp;lt;/Elements&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Module Url: This is where the files will be copied to.&amp;nbsp; The url is relative to
the site root.&lt;br&gt;
File Path: Path to the file relative to the project in Visual Studio.&lt;br&gt;
File Type: This can only be Ghostable or GhostableInLibrary.&amp;nbsp; You can only use
GhostableInLibrary if the module Url is for a List, such as Shared Documents.&lt;br&gt;
&lt;br&gt;
&amp;lt;Module&amp;gt; also has a Path attribute but we dont need it for this operation.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
The module will create folders if they dont exist so in the above example we are copying
an image to the root images folder, but this could easily be "customimages" and the
folder will be created.&lt;br&gt;
&lt;br&gt;
There's more to Modules but that is all I have for now.&amp;nbsp; I'll update when I know
how to do Wildcards :)&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=606cd908-430c-4151-8a1a-ba447ee1ef70" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,606cd908-430c-4151-8a1a-ba447ee1ef70.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=438ed642-9091-4045-a91d-d94364fb8179</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,438ed642-9091-4045-a91d-d94364fb8179.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,438ed642-9091-4045-a91d-d94364fb8179.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=438ed642-9091-4045-a91d-d94364fb8179</wfw:commentRss>
      <title>Visual Studio Extensions for WSS v 1.1</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,438ed642-9091-4045-a91d-d94364fb8179.aspx</guid>
      <link>http://jonesie.net.nz/2008/02/13/VisualStudioExtensionsForWSSV11.aspx</link>
      <pubDate>Wed, 13 Feb 2008 21:13:13 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft have just release v 1.1 of the Visual Studio Extensions for WSS - VSEWSS.&amp;nbsp;
These work with Visual Studio 2005 and offer a few enhancements of the 1.0 release.&amp;nbsp;
There will be another release mid year that will add support for VS08.
&lt;/p&gt;
&lt;p&gt;
WSS dev is a huge hairy beast and it can be hard to get started - or even figuring
out where to start. The best part about&amp;nbsp;new release is the user guide that is
provided with VSEWSS.&amp;nbsp; This is something that some clever chaps at &lt;a href="http://www.intergen.co.nz"&gt;Intergen &lt;/a&gt;have
been working on.&amp;nbsp; I provided some very minimal input reviewing their work which
is basically providing me with some free training in exchange for fixing a few typos!&amp;nbsp;
The user guide will improve over the next few months as we add more sections so keep
checking for updates.
&lt;/p&gt;
&lt;p&gt;
Get it here:
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;font color=#000000&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;VSeWSS
1.1&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3E1DCCCD-1CCA-433A-BB4D-97B96BF7AB63&amp;amp;displaylang=en"&gt;&lt;font color=#800080&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=3E1DCCCD-1CCA-433A-BB4D-97B96BF7AB63&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span lang=EN-GB style="mso-ansi-language: EN-GB"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;font color=#000000&gt;User Guide&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;span lang=EN-GB style="mso-ansi-language: EN-GB"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a8a4e775-074d-4451-be39-459921f79787&amp;amp;DisplayLang=en"&gt;&lt;font color=#800080&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=a8a4e775-074d-4451-be39-459921f79787&amp;amp;DisplayLang=en&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=438ed642-9091-4045-a91d-d94364fb8179" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,438ed642-9091-4045-a91d-d94364fb8179.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=18f8af03-e738-4af9-86a4-4daf9e42b401</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,18f8af03-e738-4af9-86a4-4daf9e42b401.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,18f8af03-e738-4af9-86a4-4daf9e42b401.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=18f8af03-e738-4af9-86a4-4daf9e42b401</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently found an excellent series of posts that describe how to customise the UI
in Scarepoint.
</p>
        <p>
          <a title="http://www.cleverworkarounds.com/category/sharepoint/" href="http://www.cleverworkarounds.com/category/sharepoint/">http://www.cleverworkarounds.com/category/sharepoint/</a>
        </p>
        <p>
There's a LOT of other useful stuff in this blog - regular reading I think.
</p>
        <p>
 
</p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6f81d289-a846-48a9-b3ae-67baf0f930c3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">del.icio.us
tags: <a href="http://del.icio.us/popular/sharepoint%20wss" rel="tag">sharepoint wss</a></div>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=18f8af03-e738-4af9-86a4-4daf9e42b401" />
      </body>
      <title>How to Customise WSS UI</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,18f8af03-e738-4af9-86a4-4daf9e42b401.aspx</guid>
      <link>http://jonesie.net.nz/2007/11/18/HowToCustomiseWSSUI.aspx</link>
      <pubDate>Sun, 18 Nov 2007 21:05:14 GMT</pubDate>
      <description>&lt;p&gt;
I recently found an excellent series of posts that describe how to customise the UI
in Scarepoint.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.cleverworkarounds.com/category/sharepoint/" href="http://www.cleverworkarounds.com/category/sharepoint/"&gt;http://www.cleverworkarounds.com/category/sharepoint/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
There's a LOT of other useful stuff in this blog - regular reading I think.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6f81d289-a846-48a9-b3ae-67baf0f930c3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us
tags: &lt;a href="http://del.icio.us/popular/sharepoint%20wss" rel="tag"&gt;sharepoint wss&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=18f8af03-e738-4af9-86a4-4daf9e42b401" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,18f8af03-e738-4af9-86a4-4daf9e42b401.aspx</comments>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=bb46fbf2-a53e-4ccb-b02c-74180d62a11f</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,bb46fbf2-a53e-4ccb-b02c-74180d62a11f.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,bb46fbf2-a53e-4ccb-b02c-74180d62a11f.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=bb46fbf2-a53e-4ccb-b02c-74180d62a11f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm not a very good googler.  Others in the office seem to find the right answer
quickly when I can spend an hour searching and not finding what I want. Today I spend
2 hours trying to solve this problem.
</p>
        <p>
When you have a secondary data source that uses a web service, InfoPath lets you specify
the input parameters.
</p>
        <p>
          <a href="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="165" alt="image" src="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image_thumb.png" width="244" border="0" />
          </a>
        </p>
        <p>
You can set the value here to any simple data type.  However, it's not immediately
apparent how you would set the value to a variable data item.  In this case I
wanted to fetch some data for the currently logged in user.  This data is then
used to pre-populate the form.
</p>
        <p>
InfoPath has a username() function.  To use this to specify the value to the
web service you need to create a rule for the Form.
</p>
        <p>
          <a href="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image_3.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 10px; border-right-width: 0px" height="190" alt="image" src="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image_thumb_3.png" width="244" border="0" />
          </a>
        </p>
        <ol>
          <li>
Select Tools/Form Options. 
</li>
          <li>
Select Open and Save. 
</li>
          <li>
Click Rules. 
</li>
          <li>
Add a new rule. 
</li>
          <li>
Add an action to set a field value. 
</li>
          <li>
For the field, select your web service as the data source and the input parameter
you want to set. 
</li>
          <li>
Set the value to a function or some other calculated value. 
</li>
          <li>
Add more actions if you have more input parameters. 
</li>
          <li>
Add a final rule to submit the query for the web service.</li>
        </ol>
        <p>
Ensure that the data connection for the web service has the "Automatically retrieve
data when form is opened" option turned off.
</p>
        <p>
The complete instructions for this were located <a href="http://blogs.oracle.com/matt/2006/04/30" target="_blank">here</a>.
</p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=bb46fbf2-a53e-4ccb-b02c-74180d62a11f" />
      </body>
      <title>InfoPath - Setting Parameters on Web Service Calls when a form loads</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,bb46fbf2-a53e-4ccb-b02c-74180d62a11f.aspx</guid>
      <link>http://jonesie.net.nz/2007/11/06/InfoPathSettingParametersOnWebServiceCallsWhenAFormLoads.aspx</link>
      <pubDate>Tue, 06 Nov 2007 02:42:19 GMT</pubDate>
      <description>&lt;p&gt;
I'm not a very good googler.&amp;nbsp; Others in the office seem to find the right answer
quickly when I can spend an hour searching and not finding what I want. Today I spend
2 hours trying to solve this problem.
&lt;/p&gt;
&lt;p&gt;
When you have a secondary data source that uses a web service, InfoPath lets you specify
the input parameters.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="165" alt="image" src="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
You can set the value here to any simple data type.&amp;nbsp; However, it's not immediately
apparent how you would set the value to a variable data item.&amp;nbsp; In this case I
wanted to fetch some data for the currently logged in user.&amp;nbsp; This data is then
used to pre-populate the form.
&lt;/p&gt;
&lt;p&gt;
InfoPath has a username() function.&amp;nbsp; To use this to specify the value to the
web service you need to create a rule for the Form.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image_3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 10px; border-right-width: 0px" height="190" alt="image" src="http://jonesie.net.nz/content/binary/InfoPathSettingParametersonWebServiceCal_DC7D/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Select Tools/Form Options. 
&lt;li&gt;
Select Open and Save. 
&lt;li&gt;
Click Rules. 
&lt;li&gt;
Add a new rule. 
&lt;li&gt;
Add an action to set a field value. 
&lt;li&gt;
For the field, select your web service as the data source and the input parameter
you want to set. 
&lt;li&gt;
Set the value to a function or some other calculated value. 
&lt;li&gt;
Add more actions if you have more input parameters. 
&lt;li&gt;
Add a final rule to submit the query for the web service.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Ensure that the data connection for the web service has the "Automatically retrieve
data when form is opened" option turned off.
&lt;/p&gt;
&lt;p&gt;
The complete instructions for this were located &lt;a href="http://blogs.oracle.com/matt/2006/04/30" target="_blank"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=bb46fbf2-a53e-4ccb-b02c-74180d62a11f" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,bb46fbf2-a53e-4ccb-b02c-74180d62a11f.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
    <item>
      <trackback:ping>http://jonesie.net.nz/Trackback.aspx?guid=765c4b23-8b1e-4503-8d66-34e733cd8e2c</trackback:ping>
      <pingback:server>http://jonesie.net.nz/pingback.aspx</pingback:server>
      <pingback:target>http://jonesie.net.nz/PermaLink,guid,765c4b23-8b1e-4503-8d66-34e733cd8e2c.aspx</pingback:target>
      <dc:creator>Peter</dc:creator>
      <wfw:comment>http://jonesie.net.nz/CommentView,guid,765c4b23-8b1e-4503-8d66-34e733cd8e2c.aspx</wfw:comment>
      <wfw:commentRss>http://jonesie.net.nz/SyndicationService.asmx/GetEntryCommentsRss?guid=765c4b23-8b1e-4503-8d66-34e733cd8e2c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font color="#ff0000">
            <strong>Update</strong>
          </font>:  <a href="http://jonesie.net.nz/ILoveSharepoint.aspx" target="_blank">I
Love SharePoint</a></p>
        <p>
 
</p>
        <p>
A lot of people seem to think that Sharepoint and MOSS are wonderful things - a joy
to behold!  As of today, I am not one of them.
</p>
        <p>
I've been handed two jobs that require the use of InfoPath forms.  The first
is to create a Leave Application form for our intranet.  The other is a bigger
project of about 30 forms for a local government site.
</p>
        <p>
As these seemed relatively straightforward things to do I thought it would be a good
opportunity to learn and dispel my bad impressions.
</p>
        <p>
So, this is a dynamic post of the issues I have with InfoPath, WSS, MOSS &amp; Forms
Services.  As I find solutions or overcome my frustrations I will update (and
apologise where necessary).  I'll also include a summary at the end and my current
mood.
</p>
        <p>
          <strong>InfoPath Issues</strong>
        </p>
        <p>
          <u>Contact Selector</u>.  
</p>
        <p>
This is an ActiveX control that is used on InfoPath forms to allow users to select
a user from ActiveDirectory.  It requires inclusion of a custom data source (xml
file) and creation of fields with very specific names.  
</p>
        <ol>
          <li>
To use more than 1 contact selector on the page requires you to create reference fields
- which currently confuse the hell out of me. 
</li>
          <li>
Because you can only have a single Context data source in the form, all contact selectors
will work against the same domain. 
</li>
          <li>
There is no way to filter what the user can select.  I want a contact selector
to only allow groups to be selected.  This is not possible. 
</li>
          <li>
Contact selector does work on browser enabled forms.  It is the only ActiveX
control that does this and it appears as though it's hard wired to work.  According
to the <a href="http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx" target="_blank">InfoPath
blog</a> there is absolutely no way to create your own ActiveX control that will work
in browser forms. 
</li>
          <li>
Setting a rule on drop down lists will get you 6 level deep in modal dialogs. 
This is a very bad UX.</li>
        </ol>
        <p>
          <u>Lookups</u>
        </p>
        <p>
I can attach a drop down list to Sharepoint list very easily but I can only set the
display and value fields.  The list I'm displaying has 3 values - ID, Team Name
and Manager Email.  I store the ID in the form, display the Team Name in the
drop down and I need to find the Managers Email from the Workflow when the form is
submitted.
</p>
        <p>
          <u>Designer</u>
        </p>
        <ol>
          <li>
Moving tables is impossible.  You can't drag and drop a table and cutting and
pasting will trash the contents.</li>
        </ol>
        <p>
          <strong>Sharepoint Designer Issues</strong>
        </p>
        <p>
Getting pretty picky now.
</p>
        <ol>
          <li>
When editing a workflow, you can't right-click the Workflow item and select New workflow. 
You have to go to the file/new menu option for that. 
</li>
          <li>
Cannot change the format of emails sent from the workflow.  The emails are pretty
ugly really. 
</li>
          <li>
Workflow Lookups are very confusing.  
</li>
        </ol>
        <p>
          <strong>WSS Issues</strong>
        </p>
        <ol>
          <li>
All to often you fall off the edge of the Sharepoint world and are required to use
command line tools - the horrendous STSAdm.exe mostly.  This has more options
than a Linux command shell!  I understand the need for a command line tool but
why-oh-why isn't here a GUI version? 
</li>
          <li>
Publishing an InfoPath form to Sharepoint is pretty easy until you want them browser
enabled.  This requires an admin install of the template.  An admin install
requires 1) access to the central admin site, 2) an upload of the file from a hard
drive (not from a Sharepoint list), 3) activation of the template in a site and 4)
configuration of a list to use the new content type created for the form, 5) local
machine administrator group membership. This is bloody ridiculous when you consider
that publishing a non-browser enabled form works from InfoPath with 3 or 4 clicks
of the mouse. 
</li>
          <li>
The help is complete rubbish.  It's either far to simple or vague or blank.</li>
        </ol>
        <p>
          <u>Workflow Performance</u>
        </p>
        <p>
          <strike>You cannot have more than 10 workflow's active on a single list and submitting
3 forms with workflow concurrently to the same list kills the server. This was proven
for another site we did recently.  If I was paying the (huge) bill for MOSS,
this would be a show stopper.  Thankfully there is </strike>
          <a href="http://k2.net">
            <strike>K2</strike>
          </a>
          <strike>.</strike>
        </p>
        <p>
          <font color="#ff0000">Update: I've been informed by someone much more informed than
I (thanks Paul) that there is no 10 workflow limit.  In fact there is a WSS property
that can be set to specify the event delivery throttle.  I wish we had know about
this a lot sooner - it's too late for 1 customer :(.  Full details here:  </font>
          <a href="https://chcowa.intergen.org.nz/exchweb/bin/redir.asp?URL=http://technet2.microsoft.com/Office/en-us/library/93a3282e-00d2-4d03-9721-df42b5aa7cfb1033.mspx?mfr=true" target="_blank">
            <font color="#ff0000">http://technet2.microsoft.com/Office/en-us/library/93a3282e-00d2-4d03-9721-df42b5aa7cfb1033.mspx?mfr=true</font>
          </a>
        </p>
        <p>
          <u>Deployment</u>
        </p>
        <p>
I have yet to do this but from what I have seen - don't go there.  Create your
forms and content directly into your production environment.  
</p>
        <ol>
          <li>
You can't package forms in a STP file.  You have to deploy these separately. 
This will probably require hacking the raw XML files of the form.  You also need
to generate a .JS script file or MSI using yet another command line tool.</li>
        </ol>
        <p>
          <strong>Summary</strong>
        </p>
        <p>
There are sooo many holes in WSS &amp; MOSS  &amp; related tools that it's a
wonder anyone is using it.  When you consider that this is the 3rd version of
Sharepoint - albeit a massive re-write - it's woefully inadequate.  It's much
more like a v1.0 product.
</p>
        <p>
If you need to create InfoPath forms that require any custom code - DONT!  Just
create a windows or web app that talks to Sharepoint lists.
</p>
        <p>
If you have complex workflow requirements or require high performance - use K2 or
host workflow's in your own service - DONT use Sharepoint for it.
</p>
        <p>
          <strong>Current Mood</strong>: <strike>Tony says I'm Indifferent but I feel reluctant</strike>. <font color="#ff0000">Not
nearly as grumpy about SharePoint as when I wrote this but reticent to withdraw the
post completelty.</font></p>
        <img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=765c4b23-8b1e-4503-8d66-34e733cd8e2c" />
      </body>
      <title>InfoPath &amp;amp; Sharepoint Frustration</title>
      <guid isPermaLink="false">http://jonesie.net.nz/PermaLink,guid,765c4b23-8b1e-4503-8d66-34e733cd8e2c.aspx</guid>
      <link>http://jonesie.net.nz/2007/09/03/InfoPathAmpSharepointFrustration.aspx</link>
      <pubDate>Mon, 03 Sep 2007 01:32:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/font&gt;:&amp;nbsp; &lt;a href="http://jonesie.net.nz/ILoveSharepoint.aspx" target=_blank&gt;I
Love SharePoint&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
A lot of people seem to think that Sharepoint and MOSS are wonderful things - a joy
to behold!&amp;nbsp; As of today, I am not one of them.
&lt;/p&gt;
&lt;p&gt;
I've been handed two jobs that require the use of InfoPath forms.&amp;nbsp; The first
is to create a Leave Application form for our intranet.&amp;nbsp; The other is a bigger
project of about 30 forms for a local government site.
&lt;/p&gt;
&lt;p&gt;
As these seemed relatively straightforward things to do I thought it would be a good
opportunity to learn and dispel my bad impressions.
&lt;/p&gt;
&lt;p&gt;
So, this is a dynamic post of the issues I have with InfoPath, WSS, MOSS &amp;amp; Forms
Services.&amp;nbsp; As I find solutions or overcome my frustrations I will update (and
apologise where necessary).&amp;nbsp; I'll also include a summary at the end and my current
mood.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;InfoPath Issues&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Contact Selector&lt;/u&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
This is an ActiveX control that is used on InfoPath forms to allow users to select
a user from ActiveDirectory.&amp;nbsp; It requires inclusion of a custom data source (xml
file) and creation of fields with very specific names.&amp;nbsp; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
To use more than 1 contact selector on the page requires you to create reference fields
- which currently confuse the hell out of me. 
&lt;li&gt;
Because you can only have a single Context data source in the form, all contact selectors
will work against the same domain. 
&lt;li&gt;
There is no way to filter what the user can select.&amp;nbsp; I want a contact selector
to only allow groups to be selected.&amp;nbsp; This is not possible. 
&lt;li&gt;
Contact selector does work on browser enabled forms.&amp;nbsp; It is the only ActiveX
control that does this and it appears as though it's hard wired to work.&amp;nbsp; According
to the &lt;a href="http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx" target=_blank&gt;InfoPath
blog&lt;/a&gt; there is absolutely no way to create your own ActiveX control that will work
in browser forms. 
&lt;li&gt;
Setting a rule on drop down lists will get you 6 level deep in modal dialogs.&amp;nbsp;
This is a very bad UX.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;u&gt;Lookups&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
I can attach a drop down list to Sharepoint list very easily but I can only set the
display and value fields.&amp;nbsp; The list I'm displaying has 3 values - ID, Team Name
and Manager Email.&amp;nbsp; I store the ID in the form, display the Team Name in the
drop down and I need to find the Managers Email from the Workflow when the form is
submitted.
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Designer&lt;/u&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Moving tables is impossible.&amp;nbsp; You can't drag and drop a table and cutting and
pasting will trash the contents.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Sharepoint Designer Issues&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Getting pretty picky now.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
When editing a workflow, you can't right-click the Workflow item and select New workflow.&amp;nbsp;
You have to go to the file/new menu option for that. 
&lt;li&gt;
Cannot change the format of emails sent from the workflow.&amp;nbsp; The emails are pretty
ugly really. 
&lt;li&gt;
Workflow Lookups are very confusing.&amp;nbsp; 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;WSS Issues&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
All to often you fall off the edge of the Sharepoint world and are required to use
command line tools - the horrendous STSAdm.exe mostly.&amp;nbsp; This has more options
than a Linux command shell!&amp;nbsp; I understand the need for a command line tool but
why-oh-why isn't here a GUI version? 
&lt;li&gt;
Publishing an InfoPath form to Sharepoint is pretty easy until you want them browser
enabled.&amp;nbsp; This requires an admin install of the template.&amp;nbsp; An admin install
requires 1) access to the central admin site, 2) an upload of the file from a hard
drive (not from a Sharepoint list), 3) activation of the template in a site and 4)
configuration of a list to use the new content type created for the form, 5) local
machine administrator group membership. This is bloody ridiculous when you consider
that publishing a non-browser enabled form works from InfoPath with 3 or 4 clicks
of the mouse. 
&lt;li&gt;
The help is complete rubbish.&amp;nbsp; It's either far to simple or vague or blank.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;u&gt;Workflow Performance&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strike&gt;You cannot have more than 10 workflow's active on a single list and submitting
3 forms with workflow concurrently to the same list kills the server. This was proven
for another site we did recently.&amp;nbsp; If I was paying the (huge) bill for MOSS,
this would be a show stopper.&amp;nbsp; Thankfully there is &lt;/strike&gt;&lt;a href="http://k2.net"&gt;&lt;strike&gt;K2&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;.&lt;/strike&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;Update: I've been informed by someone much more informed than
I (thanks Paul) that there is no 10 workflow limit.&amp;nbsp; In fact there is a WSS property
that can be set to specify the event delivery throttle.&amp;nbsp; I wish we had know about
this a lot sooner - it's too late for 1 customer :(.&amp;nbsp; Full details here:&amp;nbsp; &lt;/font&gt;&lt;a href="https://chcowa.intergen.org.nz/exchweb/bin/redir.asp?URL=http://technet2.microsoft.com/Office/en-us/library/93a3282e-00d2-4d03-9721-df42b5aa7cfb1033.mspx?mfr=true" target=_blank&gt;&lt;font color=#ff0000&gt;http://technet2.microsoft.com/Office/en-us/library/93a3282e-00d2-4d03-9721-df42b5aa7cfb1033.mspx?mfr=true&lt;/font&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Deployment&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
I have yet to do this but from what I have seen - don't go there.&amp;nbsp; Create your
forms and content directly into your production environment.&amp;nbsp; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
You can't package forms in a STP file.&amp;nbsp; You have to deploy these separately.&amp;nbsp;
This will probably require hacking the raw XML files of the form.&amp;nbsp; You also need
to generate a .JS script file or MSI using yet another command line tool.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Summary&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
There are sooo many holes in WSS &amp;amp; MOSS&amp;nbsp; &amp;amp; related tools that it's a
wonder anyone is using it.&amp;nbsp; When you consider that this is the 3rd version of
Sharepoint - albeit a massive re-write - it's woefully inadequate.&amp;nbsp; It's much
more like a v1.0 product.
&lt;/p&gt;
&lt;p&gt;
If you need to create InfoPath forms that require any custom code - DONT!&amp;nbsp; Just
create a windows or web app that talks to Sharepoint lists.
&lt;/p&gt;
&lt;p&gt;
If you have complex workflow requirements or require high performance - use K2 or
host workflow's in your own service - DONT use Sharepoint for it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Current Mood&lt;/strong&gt;: &lt;strike&gt;Tony says I'm Indifferent but I feel reluctant&lt;/strike&gt;. &lt;font color=#ff0000&gt;Not
nearly as grumpy about SharePoint as when I wrote this but reticent to withdraw the
post completelty.&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://jonesie.net.nz/aggbug.ashx?id=765c4b23-8b1e-4503-8d66-34e733cd8e2c" /&gt;</description>
      <comments>http://jonesie.net.nz/CommentView,guid,765c4b23-8b1e-4503-8d66-34e733cd8e2c.aspx</comments>
      <category>General</category>
      <category>Sharepoint</category>
    </item>
  </channel>
</rss>