Neal Walters published his new BizTalk 2020 training course on Udemy as of May 2020.
Microsoft BizTalk Server is an integration software and framework for building B2B (Business to Business) and performing EAI (Enterprise Application Integration).
Most companies have various vendors, customers, and trading partners where they need to securely exchange and process data. BizTalk helps automate those business processes (often call BPA - Business Process Automation).
The course actually covers common features of BizTalk that would be the same from BizTalk 2010, 2013, 2016, and 2020. BizTalk 2020 was just released in February of 2020. Neal's last BizTalk coures were created back for the BizTalk 2006 release, and he has put them on his YouTube channel called "MrBizTalk".
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 Sections. They grades don't matter, but the purpose is review the most important concepts covered in the Section.
Section 3 - gives a great overview of Content-Based routing, using the PassThrough Pipeline. The student doesn't need to understand schemas and maps at this point. Neal sends even .pdfs and .jpgs through BizTalk without ever opening Visual Studio. This also provides a nice gentle introduction to the BizTalk Admin Console, and a feature called "Message Tracking" which allows the administrator or developer to see a log of what has processed through the system.
This section also includes lesson on how to set up subscriptions and even how to have multiple subscribers to the same message.
Section 4 - Again using the easy-does-it-approach, Neal demonstrates the creation of two schemas and a map, and shows how BizTalk shines when it comes to simple mapping. With a zest for clever-naming, BizTalk created something called "Functoids" which developers can place on the mapping grid and perform manipulations of the data as it gets mapped.
Neal never shies away from showing the most common errors that developers can get, even in simple file drops and mapping. One thing that happens to almost all developers at one time or another is that the same schema is put into two different .NET assemblies and deployed. Neal shows the odd error and how to get around it. This is an great opportunity to teach about the BizTalk message-type which is the Namespace followed by a pound sign and the root element.
Section 5 - introduces the concept of an orchestration to process the message. It calls a Business Rule as well.
Section 6 - Introduces user-created (aka "custom") pipelines. Rather than spending an hour or two learning the ins and outs of developing a custom pipeline component in C#, the course just downloads a free pipeline component (the Eliasen RegEx/String Replace component). The course shows how to compile and install it into the GAC, then how to use it a custom pipeline. It's very useful for doing a string-replace on data inside the incoming message.
Section 7 - Now that the big picture has been accomplished, the student needs to learn all the other powers and tricks of XSD Schemas. This is the perfect time to teach XPath as well, as BizTalk uses XPath in many different ways (promoted fields, distinguished fields, XPath statement in an orchestration, Business Rules, and so on). One of the not so obvious features of schemas is the ability to have an envelope schema which allows a hierachical message to be debatched.
Section 8 - And now that schema have been covered "in depth", it's time to cover "Maps in Depth". There are many functoids to discuss and demonstrate, including the table looping and scripting functoids. The first allows for some powerful mapping when the schemas have a different "shape", and the second allows you to call C# methods from the map, or even include XSLT fragments inline. This section also covers how to convert CSV data to XML and vice verse using the "Flat File Pipeline".
Section 9 is basically the module on Extensible Stylesheet Language Transformation (XSLT). All maps actually get converted to XSLT, but BizTalk allows the developer to write the entire map in XSLT if he or she chooses. The first lesson converts an existing functoid-based map to XSLT, making it more readable and efficient over the next few lessons.
This lesson also covers XSLT debugging and a new feature only available in BizTalk 2020, the ability to use XSLT 3.0 in maps via the Saxon parser (by Saxonica). The course shows how to download the Saxonica parser and use it to test the XSLT code before using it in BizTalk.
Section 10 - All BizTalk developers and/or administrators need to know how to migrate or transfer applications from one environment to another (for example, Development to QA, then QA to Production). This is typically called migration or deployment. This section covers the ways to do it using the graphical interface inside the Biztalk Admin Console, and also by using the BTSTask command.
Section 11 goes into a lot more depth on Orchestrations. First, how to use use promoted and distinguished fields, and/or XPath. Section 11 also shows multiple ways to debug and trace an orchestration. Many students want to know how to name a file coming out of an orchestration, and that is taught as well.
Section 12 teaches some more advanced features called "Convoys", which require the use of correlation. The two most common convoys are the "sequential convoy" and the "parallel" convoy. The sequential convoy waits for either a new message to arrive (in a loop), or a certain amount of time to pass (via the Delay shape). The sequential convoy is used to implement an aggregation pattern, where multiple messages come into the orchestration, and then are combine into one new larger XML document which is output.
The course has over 21 hours of video training. Rather than overwhelm the student by including even more in that course, Neal hopes to release additional courses that will cover speciality topics like WCF-SQL, WCF web services (SOAP and Rest).
Neal has already created a second course that is in review now. It covers how to setup an SFTP Server using OpenSSH or a commercially available product called CompleteFTP. Neal used CompleteFTP in a prior company, and it handles FTP, FTPS and SFTP. CompleteFTP is a very reasonably priced product, but OpenSSH is open source (i.e. free). However, it takes more knowledge on how to use and configure it. Neal shows how to run OpenSSH on a Windows or Unix (Ubuntu) server. Those interested in saving more money can do so by using Unix, as long as their staff can support it. This second class of course covers how to use the SFTP adapter that is available in BizTalk 2020. It's base don the WinSCP .net Library.