A few weeks ago I attended the beta version of Dunn Consulting’s BizTalk Boot Camp. I wanted to write a review on the course and to let others know about it because BizTalk is quickly gaining in popularity and is likely something you will have to deal with in the next few years.
The course was taught mainly by Mark Berry with the assistance of Mark Dunn during labs (and a few hours of lecturing). Both Marks are highly regarded as teachers and have more experience teaching than I do writing code. Mark Berry in particular not only knows the material being taught but is also quite good with “other” material that undoubtedly will come up. If you do a bit of background on Mark Berry you can also see that many hold him in high regard; he has also spoken on BizTalk in such events as TechEd and MS livemeetings. The fact that every student has given the Marks high marks (pun intended) should also go a long way.
As for the materials, let me just say that this is not BizTalk for bozos, expect to be challenged during the boot camp. I have copy/pasted the syllabus below from the dunntraining.com website for those who are interested in looking through it. I don’t know about you but one of my major anxieties about any training course is that it will cover approximately the first four chapters of a book with an instructor who has read the first five
On our first day we spent most of our time setting up our VMs (while discussing general concepts on another thread). I feel this was a very important area of the class as if I had had everything setup for me I would have been staring at the computer for a while at home to get everything setup. The setup for BizTalk including SharePoint and other tools is not a trivial process (especially trying to do it and make sure things are fairly secure).
On a poor note the place hosting the class must have had some issues with their machines as some were very slow (even though they were running the same VM on supposedly the same hardware) as such some of the installations took a very long time. This was an issue for some throughout the class but I wager this would not be the same the next time the course was taught.
On the first and second days we also spent some time going over the general layout of BizTalk. We learned the overall architecture of both BizTalk and competing solutions. The discussion that was had going over the pros and cons of BizTalk and the comparison to other similar products on the market was worth going to the course alone if you are in any type of decision making position.
During the middle of the week we focused on the “meat” of BizTalk. Starting with setting up a basic pipeline that was “the most expensive file copy of all time” and ending with a complex set of orchestrations. This material flew by; I would wager more was covered than in a BizTalk book.
My personal favorite in this area was learning about the schema mappings. I will be the first one to admit that I am an XML idiot. Somehow I managed to make it through this section without completely killing my BizTalk installation and eventually I even got the right data to show up. Note that in this section we did not just do simple mappings but also got to the level of writing our own functoids.
What I would deem the most important item was the focus on debugging and solving problems. BizTalk often does not fail in such a way that the problem is immediately apparent if you are not very familiar with it. Loads of time is spent on how to troubleshoot the work that you do. When a student had a problem, the problem was put up onto the projector in order to have the class help with the debugging process. In fact in some cases bugs are deliberately introduced just so you can see how to fix them. For me the ability to understand what is going on and how to debug it far more important than learning any particular feature as when that feature breaks you won’t know how to get in and figure out what’s wrong.
The last day although I missed a bit of the morning due to having a prior commitment we went through business rules engine, performance topics, and one of my favorite discussions versioning. When dealing with BizTalk in an enterprise level app versioning is of the upmost importance, it is not as simple as one may think and can in fact become quite complex. Some of the versioning does require forethought in order to be able to successfully versionize later … isn’t it great when you learn about these “gotchas” ahead of time as opposed to when you later need to versionize something?
Overall, the mastery labs are really what made the boot camp for me. Basically the mastery labs would be done individually (with Marks walking around the room in case you had questions). The masteries were not simply reproducing what you had just learned, they often times included items that were natural extensions of what you had done. Best said you had to understand what you just learned in order to complete the mastery assignments.
The other nice thing about the mastery labs is that they are given to you in much the same way that you would be handed an assignment at work. You are expected to work from a list of functional requirements to a working piece of software. Obviously in trying to do so you hit many road blocks and things you thought you understood but really did not. These masteries help show those weaknesses and give the instructor a chance to work through them with you.
The only real negatives that I saw including the slow computers were items that should be expected in a beta class. I came across a few times where instructions were incorrect or where something took a bit longer than had been planned for. In my book this is what a beta class is supposed to find and the Marks did a great job of handling any of the situations that did come up whether taking notes to alter the instructions, rescheduling the estimated times for sections, or even staying late on their own time to discuss further items they did not expect heavy interest in.
I won’t say that I left the class a BizTalk expert but I did leave the class with a general understanding and feel ready to join a team with a more experienced member without feeling completely lost.
Overall I give it a 4.5/5 which if you know me at all is very high as I am usually a tough grader J
Module 1 – BizTalk Introduction
– Problem Space
– Single and Multi-box Installation
Module 2 – Designing Solutions
– Patterns – Splitter/Aggregator, FIFO, and Interrupt
– Automated Testing
– Source File Management
Module 3 – Messaging Normalization and Routing
– Schema Creation
– Map/XSLT Creation
– Publish and Subscribe Routing
– Underlying SQL Tables and Stored Procedures
– Flat File to XML
– Custom Pipelines
– De-batching Interchanges
– Recovering Failed Interchanges
Module 4 – Extending External Systems Integration
– Custom Pipeline Components
– Built-in Adapters
– Custom Adapters
– Signing and Encrypting Messages
Module 5 – Debugging and Monitoring
– Health and Activity Tracking (HAT)
– Group Hub Queries
– Debugging Components
– C# Source
– Orchestration Debugger
– Subscription Viewer
Module 6 – Business Process Management
– Message Aggregation
– FIFO settings
Module 7 – Business Rules Engine
– The Rete Algorithm
– Defining Good Rules
– Using Policies from Code
– Tracking Rule Events
Module 8 – Performance
– Load Testing
– Performance Counters
– Messagebox Clusters
– Settings for Tuning
Module 9 – Updating
– High Availability Updates
– Interrupt Pattern
– Alternate Strategies