July 2008 - Posts
SQL Compact is a great little database and highly recommended. However it was designed for use on small compact, hence its name, devices and that has some drawbacks. One of these is that it doesn't run as a 64 bits application. And by default if you create a .NET application it is compile as "Any CPU" meaning it will run as a 64 bits application on a 64 bits version of Windows.
I, or I should say Ron Jacobs, ran into that using my SqlCeWorkflowPersistenceService because the sample/test application was set to the default of "Any CPU". The result is that the LINQ provider cannot load the runtime and a InvalidOperationException with message "Cannot open 'WorkflowPersistenceDatabase.sdf'. Provider 'System.Data.SqlServerCe.3.5' not installed." is the result. Now the fix is rather easy but it has to be done in the main program and that is to compile it for X86 instead of Any CPU.
Do this and any application using SQL Compact 3.5 will happily run on Windows 64bit as a WOW Application.
Martine made this picture of me launching of the Tegelberg in Germany.
A great place to fly with a nice view of Neuschwanstein Castle. Below a picture I took while flying.
I have just updated the SQL Server Compact Workflow Persistence Service to better handle deserialization issues when loading a workflow. The service now makes sure the WorkflowRuntime ServicesExceptionNotHandled is raised, something it should have done in the first place.
You can download the SQL Server Compact Workflow Persistence Service from here.
I was just working on an issue reported against the SQL Server Compact Workflow Persistence Service I released some time ago. It turns that if you are using workflow persistence your workflow will actually be persisted to the store when an exception is caught. Now in itself not a big problem as your whole workflow needs to be serializable anyway. Except this time where is an additional exception object and when the exception itself cannot be serialized this brings the whole workflow down. In fact it brings more that just the workflow as the whole workflow runtime crashes, not good
The culprit in this case was a SqlCeException which is not serializable! Don't worry about the more common SqlException because that is perfectly ok.
Still something to double check as these exceptions are, by their very nature, the exceptional case and therefor less likely to be tested.
While on holiday I received the MVP award for another year
Now that is always a nice email to come home to!
Thanks, I appreciate it!