Design Time Properties BizTalk Pipeline Components     Daniel Toomey       presenter
Source• Understanding Design-Time Properties  for Custom Pipeline Components in  BizTalk Server• Author: Saravana Kumar, M...
What Is a Pipeline?• All messages in/out of BizTalk must go  through a pipeline• BizTalk includes 4 default pipelines:  – ...
Receive Pipeline Stages•   Decode: Used to decrypt/decode an incoming message. Examples:    decrypt a secure message into ...
Send Pipeline Stages• Pre-Assemble: Used to manipulate a message prior  to serialization.• Assemble: Takes the XML format ...
What Is a Pipeline Component?• Pipeline Components do the work  inside the stages• Some stages can support multiple  compo...
Design Time Properties• Configuration settings for .NET  components• Can change at design time (VS) and/or  at run time (B...
Design Time Properties
Custom Design Time Properties• Defining design-time properties using basic .NET  data types• Creating a drop-down list for...
IPersistPropertyBag Interface• Key interface for design time properties• Four methods:  – GetClassID : allows use with unm...
Creating a Custom Pipeline Component• START FROM:   – Copy from SDK sample   – Use BTS Pipeline Component Wizard   – Use s...
Steps for Basic .NET Data Types1. Define private field variables2. Define public design time properties3. Implement the Lo...
Using the Custom Component1. Build the project2. Copy DLL into:   C:Program FilesMicrosoft BizTalk Server 2006Pipeline Com...
Post-Build Event CodeIF $(ConfigurationName) EQU Release GOTO donexcopy "$(ProjectDir)$(Outdir)$(TargetFileName)"   "C:Pro...
Per-Instance Pipeline Configuration• Can set property values for each  instance• Set on Send / Receive port properties• Se...
Per-Instance Pipeline Configuration
Demo
Tips• Keep pipeline and pipeline component  projects in separate solutions• Ensure you generate a unique class ID• Change ...
BTS Pipeline Component Wizard• Built by Martijn Hoogendoorn (MVP)• http://btsplcw.codeplex.com/• Automates much of the pro...
Questions?
Design-Time Properties in Custom Pipeline Components
Upcoming SlideShare
Loading in …5
×

Design-Time Properties in Custom Pipeline Components

2,082 views
1,698 views

Published on

Understanding Design-Time Properties for Custom Pipeline Components in BizTalk Server
Based on article by Saravana Kumar, MCAD (Charter member), MCP (BizTalk 2004)
Published: December 2006

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,082
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Design-Time Properties in Custom Pipeline Components

  1. 1. Design Time Properties BizTalk Pipeline Components Daniel Toomey presenter
  2. 2. Source• Understanding Design-Time Properties for Custom Pipeline Components in BizTalk Server• Author: Saravana Kumar, MCAD (Charter member), MCP (BizTalk 2004)• Published: December 2006• http://www.microsoft.com/downloads/details.aspx?FamilyID=8c2572a2-fb61-4016-a7a7- 1c37518b39ff&displaylang=en
  3. 3. What Is a Pipeline?• All messages in/out of BizTalk must go through a pipeline• BizTalk includes 4 default pipelines: – Pass Through Receive / Transmit – XML Receive / Transmit• Each pipeline has several stages
  4. 4. Receive Pipeline Stages• Decode: Used to decrypt/decode an incoming message. Examples: decrypt a secure message into plaintext; decode a MIME message into XML.• Disassemble: Used to convert a flat-file message to XML, if necessary. In addition, if the incoming message consists of a number of discrete messages bundled together within an envelope, disassemble components can be used to break the message into multiple single messages.• Validate: Used to validate an incoming message against the schema.• ResolveParty: The component will attempt to determine an identity for the sender
  5. 5. Send Pipeline Stages• Pre-Assemble: Used to manipulate a message prior to serialization.• Assemble: Takes the XML format the messaging engine turns out and converts it to a flat-file format if necessary, or adds an envelope to an outgoing message. This is a counter action to the Disassemble stage on the receive side.• Encode: Used to encrypt/encode the message. This is a counter action to the Decode stage on the receive side.
  6. 6. What Is a Pipeline Component?• Pipeline Components do the work inside the stages• Some stages can support multiple components, serially processed
  7. 7. Design Time Properties• Configuration settings for .NET components• Can change at design time (VS) and/or at run time (BTS Admin Console)
  8. 8. Design Time Properties
  9. 9. Custom Design Time Properties• Defining design-time properties using basic .NET data types• Creating a drop-down list for a design-time property• Complex types and serialization techniques – Custom types and TypeConverter – Collections and XML serialization• Using the SchemaList class
  10. 10. IPersistPropertyBag Interface• Key interface for design time properties• Four methods: – GetClassID : allows use with unmanaged code – InitNew : initialise any necessary structures, caches, data, objects, etc – Load : initialise (read) properties from bag – Save : save properties into the bag
  11. 11. Creating a Custom Pipeline Component• START FROM: – Copy from SDK sample – Use BTS Pipeline Component Wizard – Use sample from Saravana Kumar (PipelineCompTemplate.cs)• STEPS: 1. Change name of class in two places: • Class definition • Resource Manager definition (string) 2. Generate a new unique class ID
  12. 12. Steps for Basic .NET Data Types1. Define private field variables2. Define public design time properties3. Implement the Load method of the IPersistPropertyBag interface.4. Implement the Save method of the IPersistPropertyBag interface5. Implement the GetClassID and InitNew methods of the IPersistPropertyBag interface6. Implement Execute method
  13. 13. Using the Custom Component1. Build the project2. Copy DLL into: C:Program FilesMicrosoft BizTalk Server 2006Pipeline Components3. Add to toolbox4. Drag onto a new BizTalk pipeline
  14. 14. Post-Build Event CodeIF $(ConfigurationName) EQU Release GOTO donexcopy "$(ProjectDir)$(Outdir)$(TargetFileName)" "C:Program FilesMicrosoft BizTalk Server 2006Pipeline Components" /R /Y /FIF %ERRORLEVEL% EQU 0 GOTO donenet stop "BizTalk Service BizTalk Group : BizTalkServerApplication"iisresetxcopy "$(ProjectDir)$(Outdir)$(TargetFileName)" "C:Program FilesMicrosoft BizTalk Server 2006Pipeline Components" /R /Y /Fnet start "BizTalk Service BizTalk Group : BizTalkServerApplication":done
  15. 15. Per-Instance Pipeline Configuration• Can set property values for each instance• Set on Send / Receive port properties• Set by Administrator
  16. 16. Per-Instance Pipeline Configuration
  17. 17. Demo
  18. 18. Tips• Keep pipeline and pipeline component projects in separate solutions• Ensure you generate a unique class ID• Change namespace in two places• Ensure properties are spelled correctly when represented as a string in PropertyBag methods
  19. 19. BTS Pipeline Component Wizard• Built by Martijn Hoogendoorn (MVP)• http://btsplcw.codeplex.com/• Automates much of the process of creating a component template• Need to build the solution & run the MSI• Becomes a new BizTalk project type
  20. 20. Questions?

×