BizTalk 2020 Training Course

Announcement: A new BizTalk 2020 training course was published on Udemy in May of 2020.

The course is an introduction to BizTalk and although BizTalk 2020 is used in the demonstrations, over 90% of what is taught in the courses applies equally to prior versions of BizTalk.

The title is “Real World BizTalk 2020 for Developers”. Neal Walters brings his 18+ years experience of BizTalk into this course.

The course only uses the File Adapter. Future courses will cover the SFTP Adapter, the WCF-SQL Adapter, and the WCF Web Services adapters.

The courses beings with an introduction that explains “What is BizTalk?” and why companies use it, what is its market share, and what type of job roles are there in the BizTalk space.

The foundational architecture is laid out, examining the BizTalk Architecture poster, explaining applications, hosts and host instances, adapters, schemas, maps, orchestrations, pipelines, business rule engine, and the ESB Toolkit.

Quizes are included at the end of each modules. They grades don’t matter, but the purpose is review the most important concepts covered in the module.

Module 3 – covers basic content-based routing. Before we even use schemas or XML, Neal sets up some Receive Locations and Send Ports, using the PassThrough Pipleine, and shows how BizTakl can process any type of file, including images such as .jpg. This let’s us see the entire flow of associating a Send Port to a Receive Port with a filter (i.e. a subscription). This module also illustrates how tracking can be turned, and how to use the tracking in the BizTalk Admin Console.

Module 4 – teaches a simple schema and a map. Again, trying to get the “big picture” before delving into all the low-level details. Since a map normally maps from one schema to another, two schemas are created and then, a simple functoid-based map. Neal is always careful to show errors that the student might see, such as malformed XML, or even deploying the same schema twice under two different projects.

Module 5 – adds to the knowledge gained in the previous module, and creates a simple orchestration that uses a Business Rule.

Module 6 – introduces the concepts of custom pipeline. The course doesn’t go into great detail on how to create you own pipeline components. Instead, we download the Eliasen pipeline component and compile it, then put it into a pipeline. That pipeline component allows you to replace one string with another during a Receive or Send (and even to use Regular Expressions in that replace).

Module 7 – teaches all about schemas. First it reviews the basics rule of well-formed XML, the use of elements and attributes and so on. Then it show how to auto-convert an XML file into a schema, using one of the built-in utilities of BizTalk.

This module also has a great lesson on XPath, and demonstrates the XPath Tester Tool, a web site that allows you paste in XML and try out your XPath interactively.

This module even demonstrates how to debatch data using an Envelope Schema. Then it introduces promoted properties and distinguished fields, as well as some trickier and more advanced features of schemas.

Module 8 is called “Maps in Depth”. It teaches all the important functoids, including how to map a one to many and a many to one (i.e. when the schema on the left and right are not structured the same). A C# library and subroutine are created, and called from the map. It is shown how maps are actually implemented in XSLT.

Module 9 continues with map, but focus on writing your own XSLT. Neal demonstrates that the code generated by a BizTalk functoid map can be efficient, and how he can do better with his own XSLT. This chapter also covers the use of Saxon 9 HE (Saxon Home Edition), which BizTalk can now use for maps. Until BizTalk 2020, developers were stuck using XSLT 1.0. The mapping debugger is also demonstrated.

Module 10 -discusses how to deploy your applications, to export both Binding Files and MSI files, and how to take the application from one machine, and deploy it to another machine (such as from Test to Production environment). GacUtil is explained so that C# programs can be put in the Global Assembly Cache.

Module 11 and 12 go into a lot more depth on Orchestrations. Neal shows how to use promoted and distinguished fields in an orchestration, as well as the use of XPath. Module 11 spends a lot of time on the concepts of debugging and tracing.

Neal Walters show how to set the outbound filename from an orchestration, and also a similar feature, using dynamic send ports to be able to set the entire outbound file path/location.

Module 12 focuses on the two convoy patterns (sequential and parallel). He shows how to use the Delay shape, and even how to send a “Stop” message to a convoy. Another commonly used feature in orchestrations is the ability to map multiple messages to a single output, i.e. a multiple-input map.

Neal has already created a second course that should be available by about May 19th. It will cover how to set up an SFTP server and use that with the BizTalk SFTP adapter.

Here’s the link to the course: BizTalk 2020 training course