Side-by-Side Execution of Workflow Services: Step-by-Step Example

Introduction In this blog post, we go through a complete example of a workflow service that handles multiple versions. The MSDN Documentation covers this topic, and a sample is available in the Samples section of MSDN. In this post we are going to cover the topic step-by-step, building a complete sample from scratch. We will…

0

Dynamic Update in WF4.5: Sample using a re-hosted Workflow Designer

Introduction WF 4.5 added Versioning and Dynamic Updates to workflows. The dynamic update process consists in 2 main steps: Defining the update, in terms of changes to the workflow definition. The output of this step is an Update Map Applying the Update Map to persisted workflow instances Step A. above takes place in 3 substeps:…

12

How to clean up a WF4 persistence database

Introduction The SqlWorkflowInstanceStore class in WF4 uses a Sql Server database for persistence. See this post for more details on how you can create the schema and the logic for the persistence database. The database stores the serialized form of workflow instances, along with lock and key information. Database clean-up You may need to restart…

2

Debugging Multiple CLRs (InProc SxS)

Introduction In the previous post, we looked at how multiple CLRs can be loaded in the same process (CLR InProc SxS). In this post, we’ll build on the example from that post to look at how we can do debugging of processes that use multiple CLRs. We’ll focus on CLR4 with CLR2, because CLR 1.x…

0

Loading multiple CLR Runtimes (InProc SxS) – Sample Code

Introduction Starting with version 4, the CLR supports In-Process Side-by-Side (InProc SxS). The topic is extensively treated. In particular, this blog post does a very good job in explaining why CLR InProc Sxs is useful, and which scenarios it addresses. However I could not find any sample code that causes multiple CLRs to be loaded…

4

Workflow Foundation 4: Cancellation

Introduction I got an interesting question from a customer a few days ago: “Is it possible to handle cancellation in a CodeActivity?” The background for this question is the following: an activity can explicitly handle cancellation by overriding its Cancel() method. However, out of the 4 activity authoring options (Activity, CodeActivity, AsyncCodeActivity and NativeActivity), only…

0

Workflow Foundation Sql Scripts

If you install the .Net Framework 4.5 and you look at the folder %systemroot%\Microsoft.NET\Framework\v4.0.30319\SQL\en, or %systemroot%\Microsoft.NET\Framework64\v4.0.30319\SQL\en, you’ll find a number of Sql Script files: These scripts are all related to Workflow Foundation, and in this post I try to clarify what each script is used for. Scripts usually come in pair, with a XxxSchema.sql file…

2

The “MSXML Interfaces appearing in my TLB” issue and related topics

Hi all! I have been involved recently in the troubleshooting of a type library-related problem reported by a customer. Since the problem is general enough, I am sharing the basic principles in this post. The topic deals with the way type libraries reference external types, as well as the implications on type library generation and…

1

Troubleshooting a RemotingException by dumping out Remoting Channel Configuration

This post is devoted to .NET Remoting, one of the technologies supported by our Distributed Services support team (though I should add that the volume of requests is not, and never has been, very high). WCF is being more and more widely adopted as the communication infrastructure of .NET applications, but .NET Remoting still has…

1

.NET Generics and Code Bloat (or its lack thereof)

Introduction I recently got questions from a couple of customers on the implications of using generic types (generics) in .NET on code bloat (also known as code explosion). This is a legitimate concern and let me explain why. Among the most popular programming languages, C++ was one of the first to provide generic programming through…

2