Continuations and the TPE

Recently I have noticed quite a few questions about continuations coming through on the the BizTalk technical discussion lists.  This leads me to believe there is an opportunity to enhance the documentation around continuations, but to do that I need some feedback from you. What are the typical issues you run into when creating continuations? What type of documentation would help you most?


 For reference here are the topics that currently cover using continuations:


Continuation and ContinuationID Nodes http://msdn2.microsoft.com/en-us/library/aa577968.aspx 


How to Create a Continuation  http://msdn2.microsoft.com/en-us/library/aa559486.aspx


Using Multiple Continuations http://msdn2.microsoft.com/en-us/library/bb203851.aspx


 


We also have the following code developer specific documentation: 


Activity Continuation   http://msdn2.microsoft.com/en-us/library/aa559916.aspx


Development Walkthrough http://msdn2.microsoft.com/en-us/library/aa995587.aspx

VPC VHD ExpandeR

I’ve been stuck a few times over the last few years when using a VPC and running out of HD space.  The solution at the time was always create a new HD and start filling that up.  This tool solves this problem.  Check it out here.

Also check out these article for organizing and optimizing your VPCs.

 

HOWTO: Use Virtual PC’s Differencing Disks to your Advantage

How to use virtual PC and still save lots of room: differencing disks

Installing Pre-Reqs for BizTalk 2006 R2 Beta1 – do you want Workflow Development

While struggling to get all the links together and the correct version of all the
accessories to .NET 3.0 RC1 (as this is what BTS requires).

I wanted to develop Workflow based solutions as well and noticed my friend Paul
Andrew
has read my mind in his post HERE

Here’s a snip:

I have a Windows Vista RC machine and a Windows XP machine which I’ve installed these
on. It’s also the same install on Windows Server 2003 if you use that as your development
environment.

Wincing the Night Away

It is no secret that I like Rock Music… I was one of those kids wearing old lumber jack shirts in the early 90’s listening to Grunge. Growing up Seattle was as much of a pilgrimage to me as Mecca is to so many others.


Off course I liked the more popular Seattle grunge bands such as Nirvana, Pearl Jam, Soundgarden and Alice and Chains. Who remembers the movie Singles shot in Seattle 15 years ago! I also followed lesser known Seattle Grunge bands such-as Mudhoney, TAD, Screaming Trees, Green River, Mother Love Bone and the Melvins.


It was a bonus that when I started working for Microsoft I got to visit Seattle and see some of the legendary things that I learnt about on TV and in magazines growing up.


So that brings us to Sub Pop the legendary record label that launched the career of a lot of these bands. Last time I was in Seattle I tried paying Sub Pop a visit finding only a button on an intercom to an apartment and a not so happy person at the other end asking if I had an appointment to come in! They must get that all the time.


So that is the point of all this?


Well after grunge passed I ignored the Seattle music scene for years… I ignored bands like the Presidents of the United States of America as a passing fad.


It wasn’t Seattle that brought me back it was instead a fresh new sub pop sound. After seeing the Shins (ironically from Albuquerque, New Mexico Microsoft’s original home turf) play two sold out shows at the Kings Arms in Auckland on the 17th & 18th Feb 2005 during o’week I was sold.


And this week after just over three years since their last they have a new album out (3 months after it was first leaked on the web).


I was interested to read the Wired article…


When the Shoot Hits the Fans 


The concept: the fans pull out their camera phones they shoot the video for Phantom Limb and then submit them to current tv and their shots become the video.


  


Very cool… taking the everyone is a producer message to launch the bands profile and generate a huge online buzz.


So what is the album I’m looking forward to next? We Were Dead Before the Ship Even Sank! I can only imagine what Modest Mouse will be like with Johnny Marr in the band. I saw him with Neil Finn at the seven worlds collide concert at the St James in late 2000 and I was pretty impressed with his performance that night!

Editing the MSI files after creation

While researching something else I came
across this problem. I’ve been wrestling with the Admin Console’s *.MSI creation and
for the most part
it works really well.

The next step is to add custom installer actions, registry keys etc. stuff
that exists as part of the MSI install.

Here’s a handy tool from the Windows Installer SDK and a related CHM file
that talks about
How to Edit the MSI

How to use the Orca
database editor to edit Windows Installer files

http://www.codeproject.com/dotnet/MSIShortcuts.asp

Enjoy.

BizTalk assembly version redirection

The version redirection in BizTalk do NOT work as one is used to coming from a ordinary .NET developer background (so I was wrong in this post …). Say that we made a reference to a code library in one of our orchestrations. This code library is in version 1.0.0.0 when we build and deploy the orchestration to BizTalk and to the GAC. The setup in VS 2005 looks something like this.

Then we make some minor changes in the code library, we fix them and set the version to 1.0.1.0. Build and deploy it. This means that we now have one 1.0.0.0 and one 1.0.1.0 version side-by-side in the GAC (as shown in the figure below).

Coming from .NET the CLR should now load the 1.0.1.0 version as it identifies assemblies based on the assembly name, major or minor version (NOT the build and revision version), public key token and culture (more about this here).

However, this does NOT work in BizTalk. BizTalk loads assemblies by fullname it has stored in the management database and the build and revision number are part of the fullname … This means we have to build and redelopy EVERY part where we like to use new version of the code library.

There is one way around this for emergency use. Say that one has a code library that is used in loads of BizTalk artifacts (A place where we store all base functionality for the solution). Rebuilding all those parts and redeploying it, just to be able to update the version number, is not going to happened! It’s to much work and to risky. So it’s possible to make a change in the BTSBTSvc.exe.config file instead. In my case the change would be something like the below (read more about here).

<div><span style="color: #000000; "><</span><span style="color: #000000; ">dependentAssembly</span><span style="color: #000000; ">></span><span style="color: #000000; ">
  </span><span style="color: #000000; "><</span><span style="color: #000000; ">assemblyIdentity name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">StaticCodeLibrary</span><span style="color: #000000; ">"</span><span style="color: #000000; "> publicKeyToken</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">32ab4ba45e0a69a1</span><span style="color: #000000; ">"</span><span style="color: #000000; "> culture</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">neutral</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">/></span><span style="color: #000000; ">
  </span><span style="color: #000000; "><</span><span style="color: #000000; ">bindingRedirect oldVersion</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0.0.0</span><span style="color: #000000; ">"</span><span style="color: #000000; "> newVersion</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0.1.0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/></span><span style="color: #000000; ">
</span><span style="color: #000000; "></</span><span style="color: #000000; ">dependentAssembly</span><span style="color: #000000; ">></span></div>

How to understand a large ruleset?

Peter Lin has a very valid concern :

My main caution to users is that no matter how nice the writing part is, how
does the tool make it easier to maintain and understand a large ruleset? Does it
have the ability to analyze the rules and show the relationship to the user?

At Acumen Business (where I work), we have addressed this issue by the introduction of the Interactive Rule Map. Sometimes also referred to as Rule Spider. This dynamic rulemap shows the direct dependencies of rules-to-terms and from terms-to-rules.

There is also a complete Rule Graph generation, however that will quickly loose it’s power when hundreds of rules are defined. The interactive rule map is an advanced browser that shows parts of the rule graph.

Currently we are doing some research to integrate the Rule Validation into the Interactive Rule Map. This allows step through debugging of the just the business rules. Our prototype is looking very promising.

What is missing in WWF rules

There is an interesting discussion going on how WWF rules is different from a BRMS solution. Although some comparisions are more related to the comparison with QuickRules.NET, there are quite a few valid points.

The argument list WWF Rules vs. BRMS rules will soon have to be rewritten. Acumen Busines is in the process of providing their tool components for WWF. This will include

  • Rule Repository
  • Rule Validation and Verification
  • Rule Animation
  • Rule Reporting

Stay tuned.