<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>novolocus.com &#187; 2006 &#187; June</title>
	<atom:link href="http://www.novolocus.com/2006/06/feed" rel="self" type="application/rss+xml" />
	<link>http://www.novolocus.com</link>
	<description>Whatever Andy Burns is working on...</description>
	<pubDate>Tue, 18 Nov 2008 12:00:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Bespoke Software II</title>
		<link>http://www.novolocus.com/2006/06/29/bespoke-software-ii/</link>
		<comments>http://www.novolocus.com/2006/06/29/bespoke-software-ii/#comments</comments>
		<pubDate>Thu, 29 Jun 2006 10:06:05 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=178</guid>
		<description><![CDATA[I said I&#8217;d follow up my earlier wondering into bespoke software vs huge applications, after I&#8217;d thought a bit about why companies don&#8217;t seem to like small, bespoke apps. 
It seems to me that this falls into 3 reasons:

They don&#8217;t realise the effort involved in the different approaches.
They don&#8217;t have the vision for small, targetted [...]]]></description>
			<content:encoded><![CDATA[<p>I said I&#8217;d follow up my earlier wondering into <a href="http://www.novolocus.com/display.php?id=265">bespoke software vs huge applications</a>, after I&#8217;d thought a bit about why companies don&#8217;t seem to like small, bespoke apps. <span id="more-178"></span></p>
<p>It seems to me that this falls into 3 reasons:</p>
<ol>
<li>They don&#8217;t realise the effort involved in the different approaches.</li>
<li>They don&#8217;t have the vision for small, targetted applications.</li>
<li>They feel &#8217;safe&#8217; having a box with a brand.</li>
</ol>
<p><u>Comparisons of effort</u></p>
<p>I believe that enterprise web applications are becoming more complex. The latest one I&#8217;m working with - SharePoint 2007 - is vast, so much so that it&#8217;s now hard to imagine that a single person can be familiar with all of it&#8217;s features. This is, I believe, due to it being designed to &#8216;fit all&#8217; needs. Consequently, configuring and administering it, well, that&#8217;s going to take skill and effort. It isn&#8217;t like just installing some application.</p>
<p>That&#8217;s fine if you want a lot of it&#8217;s features - but if you don&#8217;t, then let&#8217;s look at a custom application. While industrial grade web apps have been getting bigger and more complex, creating web applications has become simpler. There are various frameworks - Rails, Struts, .NET - designed to make this easier. It used to be that I&#8217;d have to write a login system for each site I built - nowadays, such things are given. This has the upshot of reducing the effort of building a bespoke application, while at the same time the effort of using a big web application is increasing.</p>
<p>As a side note, I guess that that is what the fuss over web services is, really. Building small, comparitively simple web applications that can be assembled into bigger applications.</p>
<p><u>Knowing what you want</u></p>
<p>I think that knowing what they want is where most customers fall down. It&#8217;s a typical feature of the Dilbert cartoons, and I think everyone in IT recognises it. Really, this falls into my person obsession - the specification. The specification is everything - all of the technical task of actually developing an app is fluff next to knowing exactly what it is you want to do.</p>
<p>Sadly, many customers don&#8217;t like to think too hard about what it is they want. They might have a strong vision for the system, but fail to communicate it. They might not really know what they want the system to do. They might not even review the specification at all, as they&#8217;ve <em>told</em> the development team what they want, and this was clear to them, so the developers should understand too.</p>
<p>Anyway, my point here is that the vast &#8216;fits all&#8217; type of application has the advantage that, to a degree, you can make up how you&#8217;re going to use it as you go along. You&#8217;ve got all theses features - now you just choose to use them. The disadvantage is that you&#8217;re constrained by those features too - if you want to do something a little different to what they were designed for, well, making that happen can be &#8216;fun&#8217;, and that&#8217;s where I make a living.</p>
<p><u>The safety of the box and the brand</u></p>
<p>Boxes and logos seem to hold a near religious faith in some organisations. Personally, I&#8217;m unconvinced, though I can see their argument. For example, big companies - Microsoft, Sun, Corel, whatever - aren&#8217;t going to vanish overnight. Hell, some of them seem to be steaming along on momentum quite comfortably. Buying from a small company, well, that&#8217;s more risky. What if they go bust? Are you left with a legacy app and no way out? What if they project goes terribly wrong - how do you sue for tens of millions? How big is their support department?</p>
<p>Personally, I think all of these things have easy enough answers. What if they go bust? Well, why not keep the code in escrow - if the supplier goes under, the customer gets the code and documentation on exactly how the system works, specifically so that they don&#8217;t get stuck in some technological blind alley. What about big legal claims? Well, isn&#8217;t that what insurance is for? Factor that into the cost of the project. And as for support - well, when was the last time you got much assistance from Microsoft? (That&#8217;s not meant to be anti-Microsoft - just a recognition of the fact that they have the biggest support nightmare on the entire planet). Even smaller suppliers can often only give much support to their bigger customers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/29/bespoke-software-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blood, sweat, and Windows Workflow in SharePoint</title>
		<link>http://www.novolocus.com/2006/06/20/blood-sweat-and-windows-workflow-in-sharepoint/</link>
		<comments>http://www.novolocus.com/2006/06/20/blood-sweat-and-windows-workflow-in-sharepoint/#comments</comments>
		<pubDate>Tue, 20 Jun 2006 12:06:43 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Infopath]]></category>

		<category><![CDATA[Workflow]]></category>

		<category><![CDATA[Tasks]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=179</guid>
		<description><![CDATA[So, I&#8217;ve been tempted to throw my machine out the window lately, working with the Windows Workflow Foundation, InfoPath and SharePoint - and as I&#8217;ve said before, at least I&#8217;m not the only one frustrated. Maybe that&#8217;s not fair - it is in beta after all - but if you&#8217;re going to release a beta, [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been tempted to throw my machine out the window lately, working with the Windows Workflow Foundation, InfoPath and SharePoint - and <a href="http://www.novolocus.com/display.php?id=260">as I&#8217;ve said before</a>, at least I&#8217;m <a href="http://blogs.officezealot.com/jkremer/archive/2006/06/03/10319.aspx">not the only one frustrated</a>. Maybe that&#8217;s not fair - it is in beta after all - but if you&#8217;re going to release a beta, you could at least release beta documentation. Anyway, here&#8217;s what I found&#8230;<span id="more-179"></span></p>
<p>I suppose I should state my sources too. I started by following the MSDN Webcast &#8216;<a href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032293620&amp;EventCategory=5&amp;culture=en-US&amp;CountryCode=US">Developing Workflows for the 2007 Version of the Microsoft Office</a></p>
<p><a href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032293620&amp;EventCategory=5&amp;culture=en-US&amp;CountryCode=US">SharePoint System and Windows SharePoint Services 3.0</a>&#8216;. It&#8217;s well worth watching - it&#8217;s the most complete demonstration I&#8217;ve seen - but found that I couldn&#8217;t get the InfoPath forms to show for tasks. I figured this one out (see below) based on a blog post &#8216;<a href="http://blogs.msdn.com/mszcool/archive/2006/06/13/630000.aspx">My Key Note Demo - SharePoint v3 OM, SharePoint v3 Workflow, InfoPath and Office 2007 Client Add-Ins</a>&#8216;. See the demo code.</p>
<p><strong>Use the Visual Studio SharePoint Workflow Project Templates</strong> - Sounds obvious, I know, but you might not know that there is such a thing. Indeed, I believe that this hasn&#8217;t been released to the public yet (I&#8217;m not entirely sure how we laid our hands on them), and I didn&#8217;t know that such a thing existed at the time. I tried using normal workflow projects - a bad idea. Don&#8217;t do that.</p>
<p><strong>Modify the install.bat file</strong> - It tells you how to do this at the top, but this one caught both myself and other guy out - I thought it would have changed the values in it to the appropriate values, and my colleague didn&#8217;t realise that something in there would have to change at all. It&#8217;s not hard - just find and replace stuff- and this is described in the batch file itself.</p>
<p><strong>Configure up the Features and Workflow XML files</strong> - There are snippets to help do this, although I&#8217;m not entirely sure I understood how I added them. It was from the &#8216;Tools&#8217; &gt; &#8216;Code Snippets Manager&#8217;, but my notes are vague after that. My colleague says his were already configured. Anyway, the snippets themselves are pretty useful, and have reasonable instructions themselves.</p>
<p><strong>Sign the code</strong> - You need to sign your code using this keys thing in .NET. (Yes, I&#8217;m a .NET rookie, but I recognised this from Java). This allows you to put the assembly in the GAC and also find&#8230;.</p>
<p><strong>PublicKeyToken</strong> - Don&#8217;t forget to fill this in on the Workflow.xml file. There are more instructions in the snippet about what goes there.</p>
<p><strong>Do all your GUIDs</strong> - Do all the GUIDs in the XML files, and make sure they&#8217;re all different.</p>
<p><strong>Specify the InfoPath Forms you want included</strong> - These must be installed with the workflow feature, and <span style="text-decoration: underline;">not</span> installed separately by hand. If you do that, then you&#8217;ll get an error &#8220;This form cannot be opened. It is not workflow enabled.&#8221; I went to the &#8216;Manage Forms Templates&#8217; page in SharePoint Central Admin - and yes, there&#8217;s a column marked &#8216;Workflow Enabled&#8217;, and no, my form was not enabled. That seemed likely to be the problem then, but I couldn&#8217;t find anywhere to set the workflow to &#8216;enabled&#8217; anywhere in SharePoint, or (for that matter) Infopath.</p>
<p>Turns out it isn&#8217;t possible - it is defined by how the form was installed. Some silly bugger (me) had forgotten - in the features.xml file we have the XML:</p>
<p><code>&lt;Property Key="RegisterForms" Value="*.xsn" /&gt;</code></p>
<p>This means that any forms in the root of the Visual Studio Project will be added in to SharePoint when you run the Install.bat file. Install your XSN files this way, and they&#8217;ll be workflow enabled.</p>
<p><strong>Accessing the form data</strong> - This bit took a bit of figuring out, but I found a good example from <a href="http://download.microsoft.com/download/0/2/f/02f0f661-88e1-43c2-b523-88d2e9e6802f/7%20Development%20Projects%20with%20the%202007%20Microsoft%20Office%20System%20and%20Windows%20SharePoint%20Services%202007.pdf">7 Development Projects with the 2007 Microsoft Office System and Windows SharePoint Services.pdf</a>. It&#8217;s a little out of date in some of it&#8217;s code examples, it appears, but this seemed to work.</p>
<p><code>SPWeb aSite = new SPSite(workflowProperties.SiteId).OpenWeb(workflowProperties.WebId);<br />
SPListItem anItem = myWeb.Lists[workflowProperties.ListId].GetItemById(workflowProperties.ItemId);</code></p>
<p>//Log Item Name, and what List the form is in<br />
Log(&#8221;Running against: &#8221; + anItem.Name.ToString() + &#8221; in &#8221; + anItem.ParentList.ToString());</p>
<p>//Log some properties.<br />
Log(&#8221;PropertyA: &#8221; + anItem.Properties["PropertyA"].toString() );<br />
Log(&#8221;PropertyB: &#8221; + anItem.Properties["PropertyB"].toString() );</p>
<p>//Update properties as you would update a normal SharePoint item through code<br />
anItem.Properties["PropertyA"] = &#8220;Some Fixed String&#8221;;<br />
anItem.Properties["PropertyB"] = TaskProperties1.ExtendedProperties["PropertyB"];</p>
<p>anItem.update();<br />
<strong>Deserialize Initiation Data</strong> - Initiation form data comes in from an Infopath form as a serialized XML string. It needs deserialised, and used. I used xsd.exe to create a .cs file defining a class (WFTaskForm) of the same format as the xsd for my InfoPath XSN file. See the webcast mentioned at the top for an example. To deserialize:</p>
<p><code>String initData = workflowProperties.InitiationData;</code></p>
<p>XmlSerializer serializer = new XmlSerializer(typeof(WFTaskForm));<br />
XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(workflowProperties.InitiationData));</p>
<p>WFTaskForm wfTask = (WFTaskForm)serializer.Deserialize(reader);</p>
<p>_Text1 = wfTask.Text1;<br />
_Text2 = wfTask.Text2;</p>
<p><strong>Creating Workflow Tasks</strong> - This seems to involve a little code. You have to Assign a GUID, etc.. In this instance, I&#8217;m assigning the task to the workflow originator.</p>
<p><code>private void createTask1_MethodInvoking(object sender, EventArgs e)<br />
{<br />
Log("Creating Task");</code></p>
<p>TaskId1 = Guid.NewGuid();<br />
TaskProperties1.AssignedTo = workflowProperties.Originator;</p>
<p>//Note the double escape, or use an @ - otherwise your AssignedTo will be mangled.<br />
//TaskProperties1.AssignedTo = &#8220;SOMEDOMAIN\\SOMEUSER&#8221;;</p>
<p>//This is important later - see below<br />
TaskProperties1.TaskType = 0;<br />
TaskProperties1.Title = &#8220;AutoTask: &#8221; + _Text1 ;<br />
TaskProperties1.DueDate = DateTime.Now.AddDays(4);</p>
<p>TaskProperties1.ExtendedProperties["Text1"] = _Text1;<br />
TaskProperties1.ExtendedProperties["Text2"] = _Text2;<br />
}</p>
<p><strong>Attach your Infopath forms</strong> - This was a right bugger to figure out. I&#8217;ll include the entire workflow.xml file from my test project:</p>
<p><code>&lt;Elements xmlns="http://schemas.microsoft.com/sharepoint/"&gt;<br />
&lt;Workflow<br />
Name="HelloStateSharePointWorkflow"<br />
Description="This workflow creates a task, which is completed when it is changed."<br />
Id="{8F80610C-DF9F-49e4-8C6F-4B4822610086}"<br />
CodeBesideClass="HelloStateSharePointWorkflow.Workflow1"<br />
CodeBesideAssembly="HelloStateSharePointWorkflow, Version=3.0.0.0, Culture=neutral,<br />
PublicKeyToken=bc5e740d61a52a8d"<br />
TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"<br />
ModificationUrl="_layouts/ModWrkflIP.aspx"<br />
InstantiationUrl="_layouts/IniWrkflIP.aspx"&gt;</code></p>
<p>&lt;Categories/&gt;<br />
&lt;!&#8211; Tags to specify InfoPath forms for the workflow; delete tags for forms that you do not have &#8211;&gt;<br />
&lt;MetaData&gt;<br />
&lt;Instantiation_FormURN&gt;<br />
urn:schemas-microsoft-com:office:infopath:Template1:-myXSD-2006-06-08T14-13-41<br />
&lt;/Instantiation_FormURN&gt;<br />
&lt;Task0_FormURN&gt;urn:schemas-microsoft-com:office:infopath:Template1:-myXSD-2006-06-08T14-13-41&lt;/Task0_FormURN&gt;</p>
<p>&lt;StatusPageUrl&gt;_layouts/WrkStat.aspx&lt;/StatusPageUrl&gt;<br />
&lt;/MetaData&gt;<br />
&lt;/Workflow&gt;<br />
&lt;/Elements&gt;</p>
<p>So, first off, let&#8217;s look at the &#8216;TaskListContentTypeId&#8217;. This took me ages to figure out. I tried reading the MSDN documentation on how to do this, but that doesn&#8217;t seem to work for me. It also seemed substantially different to the  web-cast mentioned above - there was nothing to do with Content types in the webcast, but it seems core to the MSDN documentation about this. Anyway, I reverse engineered <a href="http://blogs.msdn.com/mszcool/archive/2006/06/13/630000.aspx">mszcool&#8217;s post</a>, and found I was missing this attribute from the Workflow tag.</p>
<p>I was a little puzzled as to what content type value to put in the attribute. Looking at the Task list I was using, I discovered that if I went to &#8216;Advanced Settings &#8216; and allowed management of content types that the settings page now exposed the Content Types available to that list.</p>
<p>These were &#8216;Task&#8217;, &#8216;Workflow Task&#8217;, and &#8216;Workflow Task with InfoPath form&#8217;. I copied the content type id for &#8216;Workflow Task with InfoPath form&#8217; from the url of the &#8216;List Content Type: Workflow Task with InfoPath form&#8217; page, used that, and reinstalled the workflow. This didn&#8217;t work, so I tried the content type id that was the same as in the demo. As the ID I&#8217;d just tried had the same first 42 characters as the entire of the id in the demo, this wasn&#8217;t as random as it seems. This worked, and my InfoPath form was displayed!</p>
<p>Naturally, I wondered why this was the case. I went back the the &#8216;List Content Type: Workflow Task with InfoPath form&#8217;, and was puzzled by the &#8216;Parent&#8217; being &#8216;Workflow Task with InfoPath Form&#8217;. Clicking on that took me to &#8216;Site Content Type: Workflow Task with InfoPath form&#8217;, and this has the ID that I&#8217;d just used. Note that that is a SITE content type, not a list one, and it appears to be in a &#8216;_hidden&#8217; group, which might explain why I didn&#8217;t find it when looking at Site Content Types.</p>
<p>What I think is happening is that the new TaskListContentTypeId attribute tells the workflow that it&#8217;s tasks should display infopath forms, and that this was lacking before. I&#8217;m hoping that someone might be able to elaborate - and tell me how I find out what other &#8216;hidden&#8217; content types there are in SharePoint.</p>
<p>Anyway, this seems to tell SharePoint to use an InfoPath form, but which one. In the exmpale above, we have a tag <code>&lt;Task0_FormURN&gt;</code>. The &#8216;0&#8242; in the tag name matches the TaskType we set in the task properties (see the section above). If we wanted a second form for a different step, it would be <code>&lt;Task1_FormURN&gt;</code> and we would set the <code>TaskProperties2.TaskType = 1;</code>.</p>
<p>That seems to work nicely!</p>
<p><strong>What I still can&#8217;t do:</strong></p>
<p><em>Start a workflow when a new Item is created</em> - I keep getting an error, and I&#8217;m not sure what. I&#8217;ve looked in the logs, and the error I have is:</p>
<p><code>06/20/2006 12:00:28.75  OWSTIMER.EXE (0x064C)                       0x0D08  Windows SharePoint Services<br />
Workflow                        72et    Exception </code></p>
<p>System.ArgumentNullException: Value cannot be null.<br />
at Microsoft.SharePoint.Workflow.SPWorkflow.GetReservedItemId(SPList list, Guid taskId, Boolean createNew)<br />
at     Microsoft.SharePoint.Workflow.SPWinOEItemEventReceiver.CreateListItemSubscription(Guid subscriptionId,<br />
SPWorkflow workflow, SPList list, Guid channelTypeId, Guid staticCorrelationId, Guid dynamicCorrelationId,<br />
Guid subEventType, SPEventReceiverType rt, String assemblyName, String className, String eventName,<br />
Int32 itemId, Boolean fReserveId)<br />
at     Microsoft.SharePoint.Workflow.SPWinOETaskService.CreateSubscription(MessageEventSubscription sub)<br />
at     Microsoft.SharePoint.Workflow.SPWinOESubscriptionService.CreateSubscription(MessageEventSubscription sub)</p>
<p>I&#8217;ve searched on Google, and I get nothin&#8217;! If I create a workflow without &#8216;Create Task&#8217; activities, it runs just fine. I&#8217;m not sure what the issue here is.</p>
<p>I&#8217;ll try and update my site when I discover new stuff - and hopefully not quite as much as in this post&#8230;</p>
<p>Info:</p>
<p>I found these links recently - they&#8217;re quite handy:</p>
<p><a href="http://msdn2.microsoft.com/en-us/ms573938%28office.12%29.aspx">InfoPath forms for Workflows</a></p>
<p><a href="http://msdn2.microsoft.com/en-us/ms548723%28office.12%29.aspx">How to: Design an InfoPath Form for a Workflow in Office SharePoint Server 2007</a></p>
<p>Upcoming info:</p>
<p><a href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032301595&amp;EventCategory=4&amp;culture=en-US&amp;CountryCode=US">MSDN Webcast: Developing SharePoint Workflows Using Visual Studio 2005</a></p>
<p><strong>Comments from my old blog</strong>:</p>
<div class="oldcomment">
<p>hi,<br />
i&#8217;m also having problems with associating infopath form with a workflow. i&#8217;m positively sure, that i&#8217;ve set everything up properly,  but the error &#8220;The specified form cannot be found&#8221; still appears. should the installed IP form appear in the &#8220;Manage Form Templates&#8221; part of central administration. I think that the installer doesn&#8217;t install the form.<br />
any help needed ( it&#8217;s the 2nd day i&#8217;m trying to make it work )<br />
thank you in advance,<br />
feel free to email me at dominikd@o2.pl<br />
dominik</p>
<p>By dominik at 14:50:39 Friday 21st July 2006</p>
</div>
<div class="oldcomment">
<p>Dominik<br />
The reason why your forms are not getting installed is because the install.bat file does not by default have anything in there to copy the files up to the sharepoint site.  I had to add in the following line to get it to work.</p>
<p>xcopy /s /Y Forms\*.xsn &#8220;%programfiles%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\YourFeatureName\Forms&#8221;</p>
<p>This should go under the following line<br />
copy /Y workflow.xml &#8220;%CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\YourFeatureName\&#8221;</p>
<p>Hope this helps</p>
<p>By Andy  Bonner at 00:21:36 Tuesday 25th July 2006</p>
</div>
<div class="oldcomment">
<p>Sorry, just back from holidays.<br />
My installer definitely installs the form - I spent days puzzling over it when I installed the form myself, rather than having the installer do it. It is the line&#8230;</p>
<p>&lt;Property Key=&#8221;RegisterForms&#8221; Value=&#8221;*.xsn&#8221; /&gt;</p>
<p>&#8230;in features.xml that seems to make this happen.</p>
<p>That said, I didn&#8217;t have to add any lines the BAT file. I just put the xsn file in the appropriate directory (root of my .NET Sharepoint Workflow project).</p>
<p>There seem to be different versions of these installers floating around&#8230;</p>
<p>By Andy at 17:24:32 Wednesday 9th August 2006</p>
<p>&gt;&gt; I&#8217;m hoping that someone might be able to elaborate - and tell me &gt;&gt; how I find out what other &#8216;hidden&#8217; content types there are in &gt;&gt;SharePoint.</p>
<p>This might help:<br />
SELECT<br />
[SiteId]<br />
,[Class]<br />
,[Scope]<br />
,[ContentTypeId]<br />
,[Version]<br />
,[NextChildByte]<br />
,[Size]<br />
,[Definition]<br />
,[ResourceDir]<br />
,[IsFromFeature]<br />
FROM [WSS_Content].[dbo].[ContentTypes]</p>
<p>By Andrew Kurochka at 10:11:30 Friday 13th October 2006</p>
</div>
<div class="oldcomment">
<p>Hi,<br />
Hopefully someone can help me.. I have run through the demo SharePoint 2007 Workflow with Visual Studio 2005 and make all the appropriate changes. I tried to add the workflow to my document library in the Add Workflow screen and when I hit Next I get &#8220;Unknown Error&#8221;.</p>
<p>When I run the verifyformtemplate on both xsn files I get an error saying &#8220;FatalError : The restricted trust level is not supported.&#8221;</p>
<p>I am developing the project on my local machine and then copying it over to the SP server and running install.bat</p>
<p>Any ideas?</p>
<p>Thanks, Rick</p>
<p>By Rick at 07:56:03 Wednesday 25th October 2006</p>
</div>
<div class="oldcomment">
<p>Open your form, Tools-&gt;Form Options, Select Security and Trust category, set Full Trust security level. This sould help.</p>
<p>By Andrew Kurochka at 16:45:14 Thursday 26th October 2006</p>
</div>
<div class="oldcomment">
<p>Thanks Andrew..<br />
Now when I run the verfity I get this error:</p>
<p>Method &#8216;get_Extension&#8217; in type &#8216;Microsoft.Office.InfoPath.Server.SolutionLifetim<br />
e.XmlFormProxy&#8217; from assembly &#8216;Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8217; does not have an implementa<br />
tion.</p>
<p>Any ideas? I&#8217;ve seen a couple people with this problem is google groups but no solution..</p>
<p>Thanks, Rick</p>
<p>By Rick at 01:27:32 Friday 27th October 2006</p>
</div>
<div class="oldcomment">
<p>Hi!</p>
<p>That&#8217;s exactly the same problem that I encountered lately. With many [swear words] and after 2 months of research and development I&#8217;ve found out that at the final stage of my workflow test for SharePoint 2007 THIS had happened.<br />
I&#8217;VE GOT A BIG SUSPICIN THAT THIS IS THE CASE DUE THE MS Office 2007 Final Release installation. Unfortunately, the login page for technet forum of Microsoft is damaged(edited, debugged whatever), but this message first appeared during the workflow dll istallation after MS Office 2007 Final Release had been installed.</p>
<p>Thank you,<br />
Sincerely , Andreas</p>
<p>By Andreas at 07:58:59 Wednesday 29th November 2006</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/20/blood-sweat-and-windows-workflow-in-sharepoint/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bespoke Software</title>
		<link>http://www.novolocus.com/2006/06/16/bespoke-software/</link>
		<comments>http://www.novolocus.com/2006/06/16/bespoke-software/#comments</comments>
		<pubDate>Fri, 16 Jun 2006 11:06:26 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=181</guid>
		<description><![CDATA[Cost aside, given the choice between a suit &#8216;off the shelf&#8217; and one &#8216;made to measure&#8217; in Saville Row, most people would go for tailored suit every time. So why doesn&#8217;t that happen in software?
Okay, so I know I just made that comparison so that it wasn&#8217;t like-for-like by excluding cost, but it seems to [...]]]></description>
			<content:encoded><![CDATA[<p>Cost aside, given the choice between a suit &#8216;off the shelf&#8217; and one &#8216;made to measure&#8217; in Saville Row, most people would go for tailored suit every time. So why doesn&#8217;t that happen in software?</p>
<p>Okay, so I know I just made that comparison so that it wasn&#8217;t like-for-like by excluding cost, but it seems to me that tailors are a good analogy - and that the shopping habits of the well dressed man and the well equiped company are quite different.</p>
<p>Consider the suit. You can buy one &#8216;off the shelf&#8217;. It won&#8217;t fit as well as one made specially for you, but it might fit well enough. Sure, the legs might be a little long, and it&#8217;s a little broad across the back, but hey, it&#8217;s a <em>lot</em> cheaper.</p>
<p>Another option would be to get a bespoke suit. Bespoke it a wonderful word that makes me think of bicycles, but here I mean it as &#8216;made to measure&#8217;. You suit will be unique, comfortable and well fitting, and it&#8217;ll cost much, much more. I know I&#8217;ll have made it when I get a bespoke suit.</p>
<p>The third option is to get the cheap suit, and have some alterations done. That is, you get someone to make small changes to the cheaper suit, so you get a better fit, and it still costs less.</p>
<p>Software is the same. It can be made for you, you can buy it off the shelf, or you can buy it and hack it until it does what you want it to. (I mean &#8216;hack&#8217; in the old school way, not the illegal way).</p>
<p>Most people, when they buy suits, just keep shopping until they find one that fits. The luck few (or those unlucky enough to have unusual measurements) get them made for them.</p>
<p>Companies and software doesn&#8217;t seem to be the same though. They&#8217;re in all shapes and sizes, and as profitability often depends on good software enabling your processes, they all want suits that fit very, very well.</p>
<p>Lucky companies can find a bit of software that fits just perfectly, and within specialised fields, there are products like that. This is great - the suit is cheap and fits well. However, most companies have oddities that mean, for certain applications, no software fits very well. I guess, companies have less regular measurements than people.</p>
<p>So, now they&#8217;ve got a choice - bespoke, or get something and customise it. Actually, here the analogy breaks down a bit - there is a third option. Some software is built to be highly flexible and adaptable, so that it can fit many jobs. I kind of think of this as a &#8217;shrink to fit&#8217; suit - I know, it&#8217;s straining. Humour me.</p>
<p>Okay, so, imagine we get some software and decide to customise it. Customisation costs, and it means that what you&#8217;ve got isn&#8217;t exactly the same as anyone else. You need someone to figure out what needs done, and make the changes for you. The constraints of the system can make some of those changes hard. Indeed, if the software fits poorly enough, you can end up having to rip the whole thing apart and rebuild it to do what you wanted to (Been there, done that). Indeed, you might as well have had it made bespoke.</p>
<p>Alternatively, you could use a &#8217;shrink to fit&#8217; option. I think Microsoft SharePoint 2007 is a great example of that. It&#8217;s very flexible, with all sorts of neat bells and whistles, so it will fit many, many different needs. The problem is configuring it, shrinking it so that it fits well is also made very hard by this. Again, you&#8217;re into the realms of needing a specialist to help you. And you might not even need all those bells and whistles. At the end of it all, it could be as bad as having someone dismantle it.</p>
<p>So finally, we come to bespoke. You get someone to make it specifically for you. It does the what you want it to, and only that. You&#8217;re not paying for bells and whistles, and as it is designed to do just what it does, it is simpler than the other options.  Sure, the tailors costs are a little scary - but done right, you don&#8217;t get all sorts of extra cost creep in later.</p>
<p>I keep &#8217;seeing&#8217; bespoke solutions. I&#8217;m not working on them - I&#8217;m probably hacking around with some third-party application again, trying to make it do what the customer wants - and this vision comes into mind of what I could build to solve just that problem. Normally, they solve just a single problem - but do that well. And I wish I could do them. It seems to me that development is become faster, and frameworks are becoming better. Look at Ruby on Rails - it gives so much for free, you can really build an application quickly in it. Even (though I hate to admit it) Visual Studio can give you a lot, sometimes - although it is collapsing under the weight of trying to be all things to all people.</p>
<p>So my question is this - why do companies seem so keen to stay away from an application that just does what they need it to, and yet happy to buy something off-the-shelf and then have to change it to do what they want it to?</p>
<p>I guess I&#8217;ll consider that later&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/16/bespoke-software/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I&#8217;m not the only one&#8230;</title>
		<link>http://www.novolocus.com/2006/06/07/im-not-the-only-one/</link>
		<comments>http://www.novolocus.com/2006/06/07/im-not-the-only-one/#comments</comments>
		<pubDate>Wed, 07 Jun 2006 14:06:52 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[SharePoint]]></category>

		<category><![CDATA[Workflow]]></category>

		<category><![CDATA[Infopath]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=183</guid>
		<description><![CDATA[&#8230; tempted to give up when working with the Windows Workflow Foundation - I was glad to find another frustrated developer. I&#8217;ll blog about my experiences of this so far, once I&#8217;ve calmed down enough to be coherent. Being able to attached a UI to the workflow tasks in SharePoint would be nice too, but [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; tempted to give up when working with the Windows Workflow Foundation - I was glad to find <a href="http://blogs.officezealot.com/jkremer/archive/2006/06/03/10319.aspx?Pending=true">another frustrated developer</a>. I&#8217;ll blog about my experiences of this so far, once I&#8217;ve calmed down enough to be coherent. Being able to attached a UI to the workflow tasks in SharePoint would be nice too, but that eludes me.</p>
<p>Still, maybe that&#8217;s for the best - we&#8217;re supposed to be using Infopath 2007, and my colleague working with that has started talking to himself. In a high-pitched voice. It&#8217;s not pretty. Seems there is even less documentation about this, and both of us are left with one question - wtf d&#8217;you want Infopath for? Yes, it makes XML, but that&#8217;s pretty trivial - we&#8217;ve all written forms that do that. (Well, all the geeks in the house).</p>
<p>So you can have a rich client for Infopath. Um, why? Lets see, zero footprint web forms, or Microsoft install. The phrase &#8216;lead or silver&#8217; springs to mind - pay silver for our client, or get shot down with our web forms. And as our form is going to display an image from another document management system, and as the client will not be using the rich client thingy, well, we&#8217;re busy puzzling what we get from Infopath over ASP .net forms, apart from heartache and ulcers. <img src="http://www.novolocus.com/wp-content/oldEmoticons/angry.gif" border="0" alt="" align="middle" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/07/im-not-the-only-one/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why Geeks shouldn&#8217;t write Documentation&#8230;</title>
		<link>http://www.novolocus.com/2006/06/07/why-geeks-shouldnt-write-documentation/</link>
		<comments>http://www.novolocus.com/2006/06/07/why-geeks-shouldnt-write-documentation/#comments</comments>
		<pubDate>Wed, 07 Jun 2006 13:06:59 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Workflow]]></category>

		<category><![CDATA[Content Type]]></category>

		<category><![CDATA[Tasks]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=184</guid>
		<description><![CDATA[Just came across this paragraphy in some of the documentation for Windows Workflow Foundation. The first sentence is okay, but it goes downhill from there&#8230;
Workflow Task Content Types
By default, all SharePoint task types are assigned content types. If you do not specifically assign a content type to a task type, the task type uses the [...]]]></description>
			<content:encoded><![CDATA[<p>Just came across this paragraphy in some of the documentation for Windows Workflow Foundation. The first sentence is okay, but it goes downhill from there&#8230;</p>
<p class="insetb"><strong>Workflow Task Content Types</strong></p>
<p>By default, all SharePoint task types are assigned content types. If you do not specifically assign a content type to a task type, the task type uses the Task base content type. All task-type content types must be based on the Task base content type.</p>
<p>WTF?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/07/why-geeks-shouldnt-write-documentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advice to American IT writers</title>
		<link>http://www.novolocus.com/2006/06/07/advice-to-american-it-writers/</link>
		<comments>http://www.novolocus.com/2006/06/07/advice-to-american-it-writers/#comments</comments>
		<pubDate>Wed, 07 Jun 2006 10:06:38 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=185</guid>
		<description><![CDATA[When you say &#8217;soup-to-nuts&#8217;, we don&#8217;t know what it means. Frankly, it sounds like a potentially painful accident (depending on the temperature of the soup).
I looked it up. It means &#8216;end-to-end&#8217;. Why not use &#8216;end-to-end&#8217; then? We all need to avoid strange localisms in our language. I mean, I&#8217;ve never finished a meal with nuts. [...]]]></description>
			<content:encoded><![CDATA[<p>When you say &#8217;soup-to-nuts&#8217;, we don&#8217;t know what it means. Frankly, it sounds like a potentially painful accident (depending on the temperature of the soup).</p>
<p>I looked it up. It means &#8216;end-to-end&#8217;. Why not use &#8216;end-to-end&#8217; then? We all need to avoid strange localisms in our language. I mean, I&#8217;ve never finished a meal with nuts. Cheese or coffee, yes, but never nuts.</p>
<p>And the word &#8216;doable&#8217; is not a word - we&#8217;ve already got a word for that anyway, and it is <strong>possible</strong>.</p>
<p><em>I&#8217;m guilty too - I used &#8220;elephant in the room&#8221; for a bit of humour. Completely confused my Zimbabwean colleague with that phrase. Presumably, elephants in rooms really was more of a problem for him.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/07/advice-to-american-it-writers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft Passport</title>
		<link>http://www.novolocus.com/2006/06/02/passport/</link>
		<comments>http://www.novolocus.com/2006/06/02/passport/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 07:06:18 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[General Tech]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=186</guid>
		<description><![CDATA[Dear Microsoft,
Please fix the Microsoft Passport, or the applications that use it, &#8216;cos it never works when I try to use it. In fact, it is the most unreliable, useless heap of crap I&#8217;ve ever had to use to try to login to a website - and I&#8217;ve seen some that are pretty rubbish - [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Microsoft,</p>
<p>Please fix the Microsoft Passport, or the applications that use it, &#8216;cos it never works when I try to use it. In fact, it is the most unreliable, useless heap of crap I&#8217;ve ever had to use to try to login to a website - and I&#8217;ve seen some that are pretty rubbish - but at least they didn&#8217;t, in effect, say &#8216;Site Closed&#8217; all the time.</p>
<p>While you&#8217;re at it, please find the monkey who came up with the idea of the Microsoft Passport, and fire them. From a cannon. Into a lake of piranhas. Angry ones.</p>
<p>Fix it or ditch it, I don&#8217;t care, just let me at the content I need to do my job.</p>
<p>If a pub always says &#8216;We&#8217;re closed&#8217;, I stop going to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2006/06/02/passport/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
