<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://code.msdn.microsoft.com/rss.xsl"?><rss version="2.0"><channel><title>SQL Server Compact Workflow Persistence Service</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Project/ProjectRss.aspx</link><description>This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.</description><item><title>CREATED RELEASE: Version 1.2 (nov 11, 2008)</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Release/ProjectReleases.aspx?ReleaseId=1782</link><description>In this version I added support for retreiving all workflows using the GetAllWorkflows&amp;#40;&amp;#41; function and for determining all workflows with an expired timer using the LoadExpiredTimerWorkflowIds&amp;#40;&amp;#41; function. Both these functions mimic the behavior of these function in the SqlWorkflowPersistenceService.</description><author></author><pubDate>Tue, 11 Nov 2008 14:36:36 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: Version 1.2 (nov 11, 2008) 20081111P</guid></item><item><title>NEW POST: Support for 64 bit</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Thread/View.aspx?ThreadId=910</link><description>&lt;div class="wikidoc"&gt;
At the time I posted that there was no 64 bits version of SqlCe publicly available. As you correctly observed this has changes as there are now both 32bit and 64bits versions of SqlCe. The SqlCeWorkflowPersistenceService sjould run just fine using the 64 bits version.&lt;br /&gt; &lt;br /&gt;Maurice&lt;br /&gt;
&lt;/div&gt;</description><author>Maurice</author><pubDate>Mon, 10 Nov 2008 01:17:54 GMT</pubDate><guid isPermaLink="false">NEW POST: Support for 64 bit 20081110A</guid></item><item><title>NEW POST: Support for 64 bit</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Thread/View.aspx?ThreadId=910</link><description>&lt;div class="wikidoc"&gt;
I don't understand this comment you made in SqlCeWorkflowPersistenceService.cs&lt;br /&gt; &lt;br /&gt;&amp;quot;Note: SQL Server Compact currently doesn't support running under 64 bits&amp;quot;&lt;br /&gt; &lt;br /&gt;as a 64 bit edition of SQL Server Compact  is available for download at&lt;br /&gt; &lt;br /&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=DC614AEE-7E1C-4881-9C32-3A6CE53384D9&amp;amp;displaylang=en&lt;br /&gt;
&lt;/div&gt;</description><author>MattAdamson</author><pubDate>Sun, 09 Nov 2008 17:03:08 GMT</pubDate><guid isPermaLink="false">NEW POST: Support for 64 bit 20081109P</guid></item><item><title>NEW POST: Great Job!</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Thread/View.aspx?ThreadId=553</link><description>&lt;div class="wikidoc"&gt;
Nice work on this very useful utility.  I was thinking that someday I would write this code.  Now I don't have to.&lt;br /&gt;
&lt;/div&gt;</description><author>RonJacobs</author><pubDate>Wed, 23 Jul 2008 20:09:44 GMT</pubDate><guid isPermaLink="false">NEW POST: Great Job! 20080723P</guid></item><item><title>COMMENTED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/WorkItem/View.aspx?WorkItemId=1</link><description>See my bug posting to the SqlServer connections website first for background on the source of the problem, and at least a partial workaround in the comments.&lt;br /&gt;&lt;br /&gt;https&amp;#58;&amp;#47;&amp;#47;connect.microsoft.com&amp;#47;SQLServer&amp;#47;feedback&amp;#47;ViewFeedback.aspx&amp;#63;FeedbackID&amp;#61;356397&lt;br /&gt;&lt;br /&gt;There is a bug in the SqlCeException class &amp;#40;desktop version&amp;#41;.  In short, the SqlCeException is marked as serializable, but it doesn&amp;#39;t implement the necessary code to support successful deserialization.&lt;br /&gt;&lt;br /&gt;Basically, if a workflow activity has an ExceptionHandlerActivity that handles &amp;#40;and captures&amp;#41; an SqlCeException which will be subsequently handled by child activities in the fault handler, then the runtime will persist the activity prior to scheduling the child fault handler activities to perform whatever operations &amp;#40;e.g. logging&amp;#41; they are going to do.  When the child fault handler activities are ready to run, the runtime goes to load the workflow instance and BANG, a deserialization exception is thrown.&lt;br /&gt;&lt;br /&gt;Since I didn&amp;#39;t write your &amp;#40;very appreciated&amp;#41; SqlCe Persistance Service, I don&amp;#39;t pretend to fully understand how all of it works.  I have tried wrapping the workflow instance deserialization logic with an exception handler, which prevents the application from shutting down, but that still leaves several problems which I don&amp;#39;t know how to go about addressing.&lt;br /&gt;&lt;br /&gt;1.  The workflow instance is orphaned in the database with no way to retrieve it.  You can&amp;#39;t terminate it using the runtime engine unless you can retrieve a workflow instance.  If you just go in and delete it, then the runtime and the host application have no way of knowing that anything happend, it just vanishes.&lt;br /&gt;&lt;br /&gt;2.  Returning null causes the calling layers of the runtime to throw an InvalidOperationException, which is just really complicates other code unnecessarily.&lt;br /&gt;&lt;br /&gt;Any help you can provide in this matter would be greatly appreciated.&lt;br /&gt;&lt;br /&gt;Comments: Hi Phil,&amp;#10;&amp;#10;First of all make sure you are using the 1.1 version of the SqlCeWorkflowPersistenceService otherwise the SerializationException won&amp;#39;t be caught.&amp;#10;Next add an event handler for the WorkflowRuntime ServicesExceptionNotHandled event and add something like the following code to it&amp;#58;&amp;#10;&amp;#10;static void workflowRuntime_ServicesExceptionNotHandled&amp;#40;object sender, ServicesExceptionNotHandledEventArgs e&amp;#41;&amp;#10;&amp;#123;&amp;#10;    Console.WriteLine&amp;#40;&amp;#34;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#62; workflowRuntime_ServicesExceptionNotHandled&amp;#34;&amp;#41;&amp;#59;&amp;#10;&amp;#10;    if &amp;#40;e.Exception is SerializationException&amp;#41;&amp;#10;    &amp;#123;&amp;#10;        &amp;#47;&amp;#47; Delete workflow we cannot rehydrate anymore&amp;#10;        WorkflowRuntime runtime &amp;#61; &amp;#40;WorkflowRuntime&amp;#41;sender&amp;#59;&amp;#10;        SqlCeWorkflowPersistenceService persistence &amp;#61; runtime.GetService&amp;#60;SqlCeWorkflowPersistenceService&amp;#62;&amp;#40;&amp;#41;&amp;#59;&amp;#10;&amp;#10;        using &amp;#40;SqlCeConnection connextion &amp;#61; new SqlCeConnection&amp;#40;persistence.ConnectionString&amp;#41;&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            connextion.Open&amp;#40;&amp;#41;&amp;#59;&amp;#10;            string commandStr &amp;#61; &amp;#34;delete from InstanceState where InstanceId &amp;#61; &amp;#64;pInstanceId&amp;#34;&amp;#59;&amp;#10;            SqlCeCommand command &amp;#61; new SqlCeCommand&amp;#40;commandStr, connextion&amp;#41;&amp;#59;&amp;#10;            command.Parameters.Add&amp;#40;&amp;#34;pInstanceId&amp;#34;, e.WorkflowInstanceId&amp;#41;&amp;#59;&amp;#10;            if &amp;#40;command.ExecuteNonQuery&amp;#40;&amp;#41; &amp;#61;&amp;#61; 1&amp;#41;&amp;#10;                Console.WriteLine&amp;#40;&amp;#34;Deleted workflow &amp;#123;0&amp;#125;&amp;#34;, e.WorkflowInstanceId&amp;#41;&amp;#59;&amp;#10;            else&amp;#10;                Console.WriteLine&amp;#40;&amp;#34;Deleting workflow &amp;#123;0&amp;#125; failed&amp;#34;, e.WorkflowInstanceId&amp;#41;&amp;#59;&amp;#10;        &amp;#125;&amp;#10;    &amp;#125;&amp;#10;&amp;#125;&amp;#10;&amp;#10;You might want to add some more checks and logging about the workflows you are deleting but this basically deletes all workflows that cannot be rehydrated from the store. And you are right there is no way to do so using workflow infrastructure so you need to use the SQL Ce database directly.&amp;#10;&amp;#10;Maurice</description><author>Maurice</author><pubDate>Tue, 22 Jul 2008 22:23:35 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers 20080722P</guid></item><item><title>COMMENTED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/WorkItem/View.aspx?WorkItemId=1</link><description>See my bug posting to the SqlServer connections website first for background on the source of the problem, and at least a partial workaround in the comments.&lt;br /&gt;&lt;br /&gt;https&amp;#58;&amp;#47;&amp;#47;connect.microsoft.com&amp;#47;SQLServer&amp;#47;feedback&amp;#47;ViewFeedback.aspx&amp;#63;FeedbackID&amp;#61;356397&lt;br /&gt;&lt;br /&gt;There is a bug in the SqlCeException class &amp;#40;desktop version&amp;#41;.  In short, the SqlCeException is marked as serializable, but it doesn&amp;#39;t implement the necessary code to support successful deserialization.&lt;br /&gt;&lt;br /&gt;Basically, if a workflow activity has an ExceptionHandlerActivity that handles &amp;#40;and captures&amp;#41; an SqlCeException which will be subsequently handled by child activities in the fault handler, then the runtime will persist the activity prior to scheduling the child fault handler activities to perform whatever operations &amp;#40;e.g. logging&amp;#41; they are going to do.  When the child fault handler activities are ready to run, the runtime goes to load the workflow instance and BANG, a deserialization exception is thrown.&lt;br /&gt;&lt;br /&gt;Since I didn&amp;#39;t write your &amp;#40;very appreciated&amp;#41; SqlCe Persistance Service, I don&amp;#39;t pretend to fully understand how all of it works.  I have tried wrapping the workflow instance deserialization logic with an exception handler, which prevents the application from shutting down, but that still leaves several problems which I don&amp;#39;t know how to go about addressing.&lt;br /&gt;&lt;br /&gt;1.  The workflow instance is orphaned in the database with no way to retrieve it.  You can&amp;#39;t terminate it using the runtime engine unless you can retrieve a workflow instance.  If you just go in and delete it, then the runtime and the host application have no way of knowing that anything happend, it just vanishes.&lt;br /&gt;&lt;br /&gt;2.  Returning null causes the calling layers of the runtime to throw an InvalidOperationException, which is just really complicates other code unnecessarily.&lt;br /&gt;&lt;br /&gt;Any help you can provide in this matter would be greatly appreciated.&lt;br /&gt;&lt;br /&gt;Comments: It was caused by something else entirely.  It was merely caught in the fault handlers wrapping a custom activity that was doing data access and persisted by the runtime prior to the fault handler&amp;#39;s child activities being scheduled to act upon it.&amp;#13;&amp;#10;&amp;#13;&amp;#10;What would be the best way in which to clean up &amp;#40;i.e. remove&amp;#41; the orphaned workflow instance from the persistence store&amp;#63;  I can&amp;#39;t just leave it in there and I can&amp;#39;t remove it using the workflow runtime without first retrieving a WorkflowInstance, which is what is failing here.&amp;#13;&amp;#10;&amp;#13;&amp;#10;I very much appreciate your efforts.&amp;#13;&amp;#10;-Phil</description><author>pshaffer</author><pubDate>Tue, 22 Jul 2008 17:55:49 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers 20080722P</guid></item><item><title>CLOSED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/WorkItem/View.aspx?WorkItemId=1</link><description>See my bug posting to the SqlServer connections website first for background on the source of the problem, and at least a partial workaround in the comments.&lt;br /&gt;&lt;br /&gt;https&amp;#58;&amp;#47;&amp;#47;connect.microsoft.com&amp;#47;SQLServer&amp;#47;feedback&amp;#47;ViewFeedback.aspx&amp;#63;FeedbackID&amp;#61;356397&lt;br /&gt;&lt;br /&gt;There is a bug in the SqlCeException class &amp;#40;desktop version&amp;#41;.  In short, the SqlCeException is marked as serializable, but it doesn&amp;#39;t implement the necessary code to support successful deserialization.&lt;br /&gt;&lt;br /&gt;Basically, if a workflow activity has an ExceptionHandlerActivity that handles &amp;#40;and captures&amp;#41; an SqlCeException which will be subsequently handled by child activities in the fault handler, then the runtime will persist the activity prior to scheduling the child fault handler activities to perform whatever operations &amp;#40;e.g. logging&amp;#41; they are going to do.  When the child fault handler activities are ready to run, the runtime goes to load the workflow instance and BANG, a deserialization exception is thrown.&lt;br /&gt;&lt;br /&gt;Since I didn&amp;#39;t write your &amp;#40;very appreciated&amp;#41; SqlCe Persistance Service, I don&amp;#39;t pretend to fully understand how all of it works.  I have tried wrapping the workflow instance deserialization logic with an exception handler, which prevents the application from shutting down, but that still leaves several problems which I don&amp;#39;t know how to go about addressing.&lt;br /&gt;&lt;br /&gt;1.  The workflow instance is orphaned in the database with no way to retrieve it.  You can&amp;#39;t terminate it using the runtime engine unless you can retrieve a workflow instance.  If you just go in and delete it, then the runtime and the host application have no way of knowing that anything happend, it just vanishes.&lt;br /&gt;&lt;br /&gt;2.  Returning null causes the calling layers of the runtime to throw an InvalidOperationException, which is just really complicates other code unnecessarily.&lt;br /&gt;&lt;br /&gt;Any help you can provide in this matter would be greatly appreciated.&lt;br /&gt;&lt;br /&gt;</description><author>Maurice</author><pubDate>Mon, 21 Jul 2008 14:42:30 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers 20080721P</guid></item><item><title>COMMENTED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/WorkItem/View.aspx?WorkItemId=1</link><description>See my bug posting to the SqlServer connections website first for background on the source of the problem, and at least a partial workaround in the comments.&lt;br /&gt;&lt;br /&gt;https&amp;#58;&amp;#47;&amp;#47;connect.microsoft.com&amp;#47;SQLServer&amp;#47;feedback&amp;#47;ViewFeedback.aspx&amp;#63;FeedbackID&amp;#61;356397&lt;br /&gt;&lt;br /&gt;There is a bug in the SqlCeException class &amp;#40;desktop version&amp;#41;.  In short, the SqlCeException is marked as serializable, but it doesn&amp;#39;t implement the necessary code to support successful deserialization.&lt;br /&gt;&lt;br /&gt;Basically, if a workflow activity has an ExceptionHandlerActivity that handles &amp;#40;and captures&amp;#41; an SqlCeException which will be subsequently handled by child activities in the fault handler, then the runtime will persist the activity prior to scheduling the child fault handler activities to perform whatever operations &amp;#40;e.g. logging&amp;#41; they are going to do.  When the child fault handler activities are ready to run, the runtime goes to load the workflow instance and BANG, a deserialization exception is thrown.&lt;br /&gt;&lt;br /&gt;Since I didn&amp;#39;t write your &amp;#40;very appreciated&amp;#41; SqlCe Persistance Service, I don&amp;#39;t pretend to fully understand how all of it works.  I have tried wrapping the workflow instance deserialization logic with an exception handler, which prevents the application from shutting down, but that still leaves several problems which I don&amp;#39;t know how to go about addressing.&lt;br /&gt;&lt;br /&gt;1.  The workflow instance is orphaned in the database with no way to retrieve it.  You can&amp;#39;t terminate it using the runtime engine unless you can retrieve a workflow instance.  If you just go in and delete it, then the runtime and the host application have no way of knowing that anything happend, it just vanishes.&lt;br /&gt;&lt;br /&gt;2.  Returning null causes the calling layers of the runtime to throw an InvalidOperationException, which is just really complicates other code unnecessarily.&lt;br /&gt;&lt;br /&gt;Any help you can provide in this matter would be greatly appreciated.&lt;br /&gt;&lt;br /&gt;Comments: I added additional error handling when a workflow is reloaded from the persistence store but cannot be deserialized for some reason. The WorkflowRuntime ServicesExceptionNotHandled event will now be raised with the original exception and the workflow instance id of the offending workflow. The workflow itself is left as is so you will still need to decide what to do with the error and take the appropriate action.&amp;#10;&amp;#10;I would like to know if the original SqlCeException was caused by the SqlCeWFPersistence or something else.&amp;#10;&amp;#10;Maurice</description><author>Maurice</author><pubDate>Mon, 21 Jul 2008 14:42:10 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers 20080721P</guid></item><item><title>CREATED RELEASE: version 1.1 (Jul 21, 2008)</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Release/ProjectReleases.aspx?ReleaseId=1304</link><description>Added additional error handling when a workflow is reloaded from the persistence store but cannot be deserialized for some reason. The WorkflowRuntime ServicesExceptionNotHandled event will now be raised with the original exception and the workflow instance id of the offending workflow. The workflow itself is left as is so you will still need to decide what to do with the error and take the appropriate action</description><author></author><pubDate>Mon, 21 Jul 2008 14:38:25 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: version 1.1 (Jul 21, 2008) 20080721P</guid></item><item><title>CREATED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/WorkItem/View.aspx?WorkItemId=1</link><description>See my bug posting to the SqlServer connections website first for background on the source of the problem, and at least a partial workaround in the comments.&lt;br /&gt;&lt;br /&gt;https&amp;#58;&amp;#47;&amp;#47;connect.microsoft.com&amp;#47;SQLServer&amp;#47;feedback&amp;#47;ViewFeedback.aspx&amp;#63;FeedbackID&amp;#61;356397&lt;br /&gt;&lt;br /&gt;There is a bug in the SqlCeException class &amp;#40;desktop version&amp;#41;.  In short, the SqlCeException is marked as serializable, but it doesn&amp;#39;t implement the necessary code to support successful deserialization.&lt;br /&gt;&lt;br /&gt;Basically, if a workflow activity has an ExceptionHandlerActivity that handles &amp;#40;and captures&amp;#41; an SqlCeException which will be subsequently handled by child activities in the fault handler, then the runtime will persist the activity prior to scheduling the child fault handler activities to perform whatever operations &amp;#40;e.g. logging&amp;#41; they are going to do.  When the child fault handler activities are ready to run, the runtime goes to load the workflow instance and BANG, a deserialization exception is thrown.&lt;br /&gt;&lt;br /&gt;Since I didn&amp;#39;t write your &amp;#40;very appreciated&amp;#41; SqlCe Persistance Service, I don&amp;#39;t pretend to fully understand how all of it works.  I have tried wrapping the workflow instance deserialization logic with an exception handler, which prevents the application from shutting down, but that still leaves several problems which I don&amp;#39;t know how to go about addressing.&lt;br /&gt;&lt;br /&gt;1.  The workflow instance is orphaned in the database with no way to retrieve it.  You can&amp;#39;t terminate it using the runtime engine unless you can retrieve a workflow instance.  If you just go in and delete it, then the runtime and the host application have no way of knowing that anything happend, it just vanishes.&lt;br /&gt;&lt;br /&gt;2.  Returning null causes the calling layers of the runtime to throw an InvalidOperationException, which is just really complicates other code unnecessarily.&lt;br /&gt;&lt;br /&gt;Any help you can provide in this matter would be greatly appreciated.&lt;br /&gt;&lt;br /&gt;</description><author>pshaffer</author><pubDate>Thu, 17 Jul 2008 22:40:27 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Retrieving workflow instances containing SqlCeException ExceptionHandlers 20080717P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt;Sample usage:&lt;br /&gt;&lt;pre&gt;
   static void Main(string[] args)
   {
       using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())
       {
           string connectionStr = @&amp;quot;Data Source=WorkflowPersistenceDatabase.sdf&amp;quot;;
   
           SqlCeWorkflowPersistenceService persistence = new SqlCeWorkflowPersistenceService(connectionStr, true);
           workflowRuntime.AddService(persistence);
   
           workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
           {
               Console.WriteLine(e.Exception.Message);
           };
   
           WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(TestClient.Workflow1));
           instance.Start();
   
           Console.WriteLine(&amp;quot;Done...&amp;quot;);
           Console.ReadLine();
       }
   }
&lt;/pre&gt;
&lt;/div&gt;</description><author>Maurice</author><pubDate>Thu, 10 Apr 2008 14:11:58 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080410P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt;Sample usage:&lt;br /&gt;{{    static void Main(string[] args) {
        using (WorkflowRuntime workflowRuntime = new WorkflowRuntime()) {
            string connectionStr = @&amp;quot;Data Source=WorkflowPersistenceDatabase.sdf&amp;quot;;
 
            SqlCeWorkflowPersistenceService persistence = new SqlCeWorkflowPersistenceService(connectionStr, true);
            workflowRuntime.AddService(persistence);
 
            workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e) {
                Console.WriteLine(e.Exception.Message);
            };
 
            WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(TestClient.Workflow1));
            instance.Start();
 
            Console.WriteLine(&amp;quot;Done...&amp;quot;);
            Console.ReadLine();
        }
    }

&lt;/div&gt;</description><author>Maurice</author><pubDate>Thu, 10 Apr 2008 14:11:08 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080410P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt;Sample usage:&lt;br /&gt;{{   static void Main(string[] args)
   {
       using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())
       {
           string connectionStr = @&amp;quot;Data Source=WorkflowPersistenceDatabase.sdf&amp;quot;;
   
           SqlCeWorkflowPersistenceService persistence = new SqlCeWorkflowPersistenceService(connectionStr, true);
           workflowRuntime.AddService(persistence);
   
           workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
           {
               Console.WriteLine(e.Exception.Message);
           };
   
           WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(TestClient.Workflow1));
           instance.Start();
   
           Console.WriteLine(&amp;quot;Done...&amp;quot;);
           Console.ReadLine();
       }
   }

&lt;/div&gt;</description><author>Maurice</author><pubDate>Thu, 10 Apr 2008 14:09:06 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080410P</guid></item><item><title>UPDATED RELEASE: Version 1.0 (Apr 09, 2008)</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Release/ProjectReleases.aspx?ReleaseId=870</link><description>The initial version of the SqlCeWorkflowPersistenceService.</description><author></author><pubDate>Wed, 09 Apr 2008 19:43:29 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: Version 1.0 (Apr 09, 2008) 20080409P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt;Sample usage:&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;    using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())&lt;br /&gt;    {&lt;br /&gt;        string connectionStr = @&amp;quot;Data Source=WorkflowPersistenceDatabase.sdf&amp;quot;;&lt;br /&gt; &lt;br /&gt;        SqlCeWorkflowPersistenceService persistence = new SqlCeWorkflowPersistenceService(connectionStr, true);&lt;br /&gt;        workflowRuntime.AddService(persistence);&lt;br /&gt; &lt;br /&gt;        workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(e.Exception.Message);&lt;br /&gt;        };&lt;br /&gt; &lt;br /&gt;        WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(TestClient.Workflow1));&lt;br /&gt;        instance.Start();&lt;br /&gt; &lt;br /&gt;        Console.WriteLine(&amp;quot;Done...&amp;quot;);&lt;br /&gt;        Console.ReadLine();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;
&lt;/div&gt;</description><author>Maurice</author><pubDate>Wed, 09 Apr 2008 19:10:56 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080409P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.&lt;br /&gt;
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt;Sample usage:&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;    using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())&lt;br /&gt;    {&lt;br /&gt;        string connectionStr = @&amp;quot;Data Source=WorkflowPersistenceDatabase.sdf&amp;quot;;&lt;br /&gt; &lt;br /&gt;        SqlCeWorkflowPersistenceService persistence = new SqlCeWorkflowPersistenceService(connectionStr, true);&lt;br /&gt;        workflowRuntime.AddService(persistence);&lt;br /&gt; &lt;br /&gt;        workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(e.Exception.Message);&lt;br /&gt;        };&lt;br /&gt; &lt;br /&gt;        WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(TestClient.Workflow1));&lt;br /&gt;        instance.Start();&lt;br /&gt; &lt;br /&gt;        Console.WriteLine(&amp;quot;Done...&amp;quot;);&lt;br /&gt;        Console.ReadLine();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;
&lt;/div&gt;</description><author>Maurice</author><pubDate>Wed, 09 Apr 2008 19:09:37 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080409P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.&lt;br /&gt;
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt;Sample usage:&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;    using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())&lt;br /&gt;    {&lt;br /&gt;        string connectionStr = @&amp;quot;Data Source=WorkflowPersistenceDatabase.sdf&amp;quot;;&lt;br /&gt; &lt;br /&gt;        SqlCeWorkflowPersistenceService persistence = new SqlCeWorkflowPersistenceService(connectionStr, true);&lt;br /&gt;        workflowRuntime.AddService(persistence);&lt;br /&gt; &lt;br /&gt;        workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(e.Exception.Message);&lt;br /&gt;        };&lt;br /&gt; &lt;br /&gt;        WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(TestClient.Workflow1));&lt;br /&gt;        instance.Start();&lt;br /&gt; &lt;br /&gt;        Console.WriteLine(&amp;quot;Done...&amp;quot;);&lt;br /&gt;        Console.ReadLine();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;**Delete the following note before publishing **&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This resource page is currently in setup mode and only available to coordinators and developers. Once you have finished setting up your resource page you can publish it to make it available to all MSDN Code Gallery visitors.&lt;br /&gt; &lt;br /&gt;To get your Resource Page ready to publish, you should do the following:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Make any changes to the details of your resource page&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Here you can enable or disable functions of your resource page.  You might want to turn on the Issue Tracker to allow users to provide feedback on your resource, or if you have a resource that does not involve a code sample, you may want to turn off the Releases tab.&lt;/li&gt;&lt;li&gt;Make sure your resource page description is detailed enough to let people search for your resource.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Add your code sample or other resources to the resource page&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;If you’re uploading code, go to the Releases tab and create a new release to house your code.  Creating a release allows you to have the license properly displayed when people download your code, as well as provides a download count.&lt;/li&gt;&lt;li&gt;Edit your Wiki page to attach any resources you may have that are not source code.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;If you want to let someone see your resource page before it is published, go to the People tab and add them to your resource page&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;This will let you add other team members who may be contributing to your resource, or just show it off and get feedback from someone you trust.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Tag your resource page with descriptive tags to make it easier for people to find your resources when browsing the gallery.&lt;/li&gt;&lt;li&gt;Publish your resource page so it becomes visible to everyone!&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Additional information on starting a new resource page is available here: &lt;a href="http://code.msdn.microsoft.com/CodeGallery" class="externalLink"&gt;Resource Page Startup Guide&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;</description><author>Maurice</author><pubDate>Wed, 09 Apr 2008 19:06:48 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080409P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Wiki/View.aspx?title=Home&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;This library enabled the use of SQL Server Compact edition as the data store for workflow persistence.&lt;br /&gt;
&lt;br /&gt; &lt;br /&gt;This project uses LINQ to SQL as the data access technology. Although the main point of this project is to use SQL Server Compact edition as the database using LINQ to SLQ means it could equally well be used with a full SQL Server edition. The datbase schema is slightly different to the default Workflow Foundation persistence database used. The main difference is that no provision is made or an owner or an ownedUntill as I consider this less than useful with SQL Server Compact as this is a local in process database and not really meant as a shared database.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;**Delete the following note before publishing **&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This resource page is currently in setup mode and only available to coordinators and developers. Once you have finished setting up your resource page you can publish it to make it available to all MSDN Code Gallery visitors.&lt;br /&gt; &lt;br /&gt;To get your Resource Page ready to publish, you should do the following:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Make any changes to the details of your resource page&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Here you can enable or disable functions of your resource page.  You might want to turn on the Issue Tracker to allow users to provide feedback on your resource, or if you have a resource that does not involve a code sample, you may want to turn off the Releases tab.&lt;/li&gt;&lt;li&gt;Make sure your resource page description is detailed enough to let people search for your resource.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Add your code sample or other resources to the resource page&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;If you’re uploading code, go to the Releases tab and create a new release to house your code.  Creating a release allows you to have the license properly displayed when people download your code, as well as provides a download count.&lt;/li&gt;&lt;li&gt;Edit your Wiki page to attach any resources you may have that are not source code.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;If you want to let someone see your resource page before it is published, go to the People tab and add them to your resource page&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;This will let you add other team members who may be contributing to your resource, or just show it off and get feedback from someone you trust.&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Tag your resource page with descriptive tags to make it easier for people to find your resources when browsing the gallery.&lt;/li&gt;&lt;li&gt;Publish your resource page so it becomes visible to everyone!&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Additional information on starting a new resource page is available here: &lt;a href="http://code.msdn.microsoft.com/CodeGallery" class="externalLink"&gt;Resource Page Startup Guide&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;</description><author>Maurice</author><pubDate>Wed, 09 Apr 2008 19:04:58 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080409P</guid></item><item><title>CREATED RELEASE: Version 1.0 (Apr 09, 2008)</title><link>http://code.msdn.microsoft.com/SqlCeWFPersistence/Release/ProjectReleases.aspx?ReleaseId=870</link><description>The initial version of the SqlCeWorkflowPersistenceService.</description><author></author><pubDate>Wed, 09 Apr 2008 18:59:05 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: Version 1.0 (Apr 09, 2008) 20080409P</guid></item></channel></rss>