Here are some options I'm exploring for creating pipelines for testing.

1. Using default pipelines

To use standard pipelines right now you need to reference Microsoft.BizTalk.DefaultPipelines and do something like this:

using Microsoft.BizTalk.DefaultPipelines;
// ...
ReceivePipelineWrapper receivePipeline =
PipelineFactory.CreateReceivePipeline(typeof(XMLReceive));

Not hard, but a bit inconvenient. Instead, I'm thinking of:

ReceivePipelineWrapper pipeline = Pipelines.Xml.NewReceive();

2. Creating a pipeline from scratch

To create a pipeline from scratch in the current code you need create an empty pipeline and add each component at the proper stage. Unfortunately, the API here is pretty generic, and thus very verbose. Here's what I'm thinking of:

SendPipelineWrapper pipeline = Pipelines.NewSend()
.AddAssembler(new XmlAsmComp())
.AddEncder(new MIME_SMIME_Encoder())
.End();

I'm also thinking about doing something to make it easier to use built-in assembler/disassembler components with specific schemas, as this is pretty hard to do with the current version without using a pre-compiled pipeline (because of how the properties in the components are defined).

Technorati tags: ,


Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.