
Developing BizTalk solutions
The developer experience in BizTalk largely revolves around Microsoft Visual Studio, the premier integrated development environment for the Windows platform. Visual Studio has set the benchmark for IDEs for a decade regardless of the platform. Many developers who work in the Microsoft space will be very comfortable with Visual Studio already, but even those who do not will quickly feel at home in it. Microsoft expends a great deal of effort to make this the case.
The general steps involved in creating a BizTalk solution are typically:
- Creating schemas
- Creating maps
- Creating orchestrations
- Deploying locally
- Binding the solution
- Creating visibility and monitoring
- Testing the solution
Steps one through four are done in Visual Studio and are often aided by wizards and simple UIs. Step five is performed via the BizTalk Administration Console that we were first introduced to in Step seven can be performed in a variety of ways, but implies a running solution; ideally this is through automated unit testing.
The primary components of the development process are outlined as follows in no particular order:

Let's discuss what all of these pieces actually are. Schemas represent our internal and external data types. File formats that we receive or send would be external data types; XML messages that we use inside our solution would be internal. Maps are the translation used to bridge internal and external formats. Recall these play a vital role in preserving our loosely coupled goal. Orchestrations represent message flows that are used to model more advanced scenarios. Bindings connect orchestrations, endpoints (ports), maps, and schemas together. The monitoring components (BAM) provide us with visibility and monitoring.
The artifacts we create in Visual Studio are compiled into .NET assemblies that the BizTalk runtime loads in a host instance to execute our application. This fully leverages the capabilities of the .NET framework for making extensible solutions and is the best implementation of these extensibility features I have ever seen. To make deployment and management easier, the assemblies and other artifacts of a BizTalk solution are then bundled into an MSI Installer package for deployment onto other BizTalk servers.
Before we begin to create BizTalk solutions, it is useful to know how we can partition and structure our solution to get the most out of the platform.