The blog of Eric Sibly; focusing on mountain biking, .NET development for the Desktop, Smartphone and PocketPC.

Monday, June 26, 2006

Windows Workflow (WF) Hosting…

My current engagement has me writing a paper (Microsoft Word is my new IDE) on a Lotus Notes to Microsoft application migration. Specifically, targeting SharePoint, InfoPath and custom – from the analysis to date it seems that the new versions of these products (SharePoint 2007 and InfoPath 2007) offer the best fit. Primarily due to the Workflow capability within SharePoint and the forms services within InfoPath (i.e. you no longer need the InfoPath client to run forms; they will run in a browser).

To me the most exciting aspect of all of this is the workflow hosting by Windows SharePoint Services V3 (a freely downloadable component for Windows). A developer introduction article has been published the highlights the capability; the following extract provides a pretty good summary of the capability.

The WF run-time engine provides the services that every workflow application needs, such as sequencing, state management, tracking capabilities, and transaction support. The WF run-time engine serves as a state machine responsible for loading and unloading workflows, as well as managing the current state of any workflows that are running. WF allows any application process or service container to run workflows by hosting WF—that is, loading WF within its process.
So does that mean we can use SharePoint Services for hosting all of our workflow where we require the likes of state management, etc.? I am not so sure; maybe someone else can add some more light on the subject – it would be fantastic if you could.

ADO.NET Entity Framework…

Following are some links to some excellent reading on where Microsoft is going with entities with respect to the RDBMS; as stated previously entities are more often than not the best way to represent data within an application - an entity utilising object-oriented semantics and constructs:

It is great to see Microsoft are looking to make Entities foundational to the next version of ADO.NET, and having them fully integrated with the likes of LINQ. Hopefully, this will encourage developers to largely ditch those nasty DataSets as the default mechanism for working with data within a C#/VB.NET application.

Some snippets that resonated or sounded interesting:
An ideal environment for creation of business applications should allow developers to describe the business logic and state of the problem domain which they are modeling with minimum or no "noise" coming from the underlying representation and the infrastructure that supports it.
Often, proponents of a particular presentation or programming model will argue that their particular "presentation" view is the one truth. We believe there is no "one proper presentation model"; and that the real value is in making the conceptual level real and then being able to use that model as the basis for mapping to and from various presentation models and other higher level services.
The Data Platform will include the capabilities of a low-memory footprint, embeddable database engine to enrich the services for applications that need rich middle-tier caching and disconnected programming experiences. The embedded database will include a simple query processor and non-authoritative persistence capabilities to enable large middle-tier data caches.

It will be interesting to see how some of the other Object-Relational
Mapping
(ORM) solutions, such as NHibernate, perceive this
threat?

Enjoy the reading; and the obligatory wait (months/years) for the goods ;-)