A POP3 adapter for BizTalk 2004: Phase II - Design Time

BizTalk Adapters have two parts: the Run-Time part and the Design Time part. The Run-Time part is responsible for the actual message exchange (i.e. it sends and/or receives actual messages). The Design-Time part allows administrators to access properties required by the run-time part to exchange messages. The Design Time part of the adapter allows authorized users to define and alter the Configuration of the adapter. For instance, the SMTP adapter run-time (send adapter) needs to know the name of the SMTP server as well as which kind of authentication is required, if any, as shown on the following picture:

 

 

Yesterday, I outlined the various run-time features of our adapter. Today, we will concentrate on the Design Time part. Most of the time, the design time part is actually simpler to implement (more on this is coming).

The design time part of the adapter is responsible for defining all the available properties and validating user input. An adapter's configuration can be static or dynamic. A static configuration (the simplest case) implies that the adapter accepts the default user interface for editing its properties while a dynamic configuration allows the adapter to have almost full control over the user interface used to input configuration.

There are four places where configuration can be applied: ReceiveHandler, ReceiveLocation, TransmitHandler, TransmitLocation (https://msdn.microsoft.com/library/en-us/sdk/htm/frlrfmicrosoftbiztalkadapterframeworkconfigtypeclasstopic.asp?frame=true):

XXXHandler: This configuration applies to the adapter globally. An administrator can alter the Handler configuration by using the BizTalk Administration Console: Expand the “Adapters“ node, expand any adapter's receive handler (or send handler) and right click on the host name on the right pane (this is what I did to capture the previous picture for the SMTP adapter).

XXXLocation: This configuration applies to a very specific XXX (send or receive) location and each XXX location can have different values. One can alter Location level configurations by using the BizTalk explorer in Visual Studio and right-clicking a location and selecting “Edit...”. Our POP3 adapter displays the following user interface (static configuration):

All this magic happens by implementing the following interfaces: IAdapterConfig, IStaticAdapterConfig and IAdapterConfigValidation. I will soon get into the details of how those interfaces can be implemented for our POP3 adapter. Stay tuned!