Watch the Video – Migration to BizTalk 2020 – Why and How?
As BizTalk 2020 is out most of the customers have either started migration to planning to migrate.
In this short blog, I will try to give a broader picture of planning BizTalk Migration and answer most basic questions.
So, let’s start with the most mammoth question first –
Question 1 – Why to Migrate?
There are many reasons to Migrate and can be broadly summarized as below –
- Avail Microsoft Support
- BizTalk 2016 Mainstream Support Ends – 1st November 2022
- All other previous versions like 2013R2, 2013 or 2010 etc. are long out of mainstream support
- Upgrade to latest software version of OS, VS, SQL & BizTalk
- Enhance BizTalk Environment
- For better infrastructure, performance, topology – HA/DR
- New features
- BizTalk 2020 is loaded with new features of Hybrid Integration, Improvised Security (TLS1.2, GDPR compliance), Better Monitoring etc.
- Feature packs – Get new features faster, without waiting for new versions
- New Features for Developers and Administrators
- Move to Cloud
- Ability to run on Azure VM as IaaS
Question 2 – What are my Migration Options?
a) Migrate to Azure –
- Hosted Azure Servers (IaaS VMs) – Create Azure IaaS VMs and migrate/host BizTalk Server 2020.
- Easiest Option
- Minimal Changes
- Get all the benefits of IaaS instead of hosting On-Prem VMs
- Refer – BizTalk: When to Move to Azure IaaS https://social.technet.microsoft.com/wiki/contents/articles/35800.biztalk-when-to-move-to-azure-iaas.aspx
- Azure Integration Services – This option is to completely move out of BizTalk and rewrite/redesign complete integration using Azure Integration solutions like Logic App, Function App, Service Bus, Event Hub etc.
- (PaaS/SaaS) – Requires complete redesign/rewriting.
- Allows complete cloud modernization and avail benefits of SaaS/PaaS
- Refer – Azure Integration Services https://azure.microsoft.com/en-in/product-categories/integration/
Migration from BizTalk to Logic Apps/Azure Integration Services –
Features | BizTalk Server | Azure | Capability/Description |
Message Routing | BizTalk MessageBox | Azure Service Bus Queues & Topics, Event Grid | Use Topics and subscriptions, Event-driven approach |
Schemas | BizTalk Schemas | Logic Apps along with Integration Account | Schemas can be uploaded to Integration Accounts or converted to JSON Schema and used |
Mapping | BizTalk Mapper, XSLT, C# | Azure Integration Account | Upload map(XSL file) to integration account |
Pipelines | BizTalk Pipeline and pipeline components | Logic Apps along with Function App | Logic App for workflow and Function App for pipeline component logic |
Adapters | Out-of-the-box adapters (application and protocol) | Logic App | Connectors |
Orchestration | BizTalk Orchestration | Logic App | Define Workflow definition |
Rules | BizTalk Rule Engine (BRE) | Function App | Create custom Azure Functions to perform BRE like operations |
BAM | BizTalk Activity Monitoring | Logic App, OMS | Tracked-properties, OMS portal. Specially Log Analytics for Logic Apps is very helpful |
EDI Parties, Aggreement, Partners | BizTalk EDI | Azure B2B integration using Logic Apps and Integration Account | Use Integration accounts to manage EDI Parties, Aggreements, Partners, upload certificates, maps, schemas etc. |
API (REST, SOAP) | Bindings in adapters (WCF) | API Management | API Management offers OpenAPI Swagger, WSDL and many other API related functionalities. API Logic can be written in Logic Apps and Function App |
Operations | BizTalk Admin Console | Azure Portal, OMS, ARM-templates, PowerShell, CLI | Managing Azure Services |
Monitoring | BizTalk Health Monitor | Azure Monitor, Application Insights | Auzre OMS offers complete monitoring solution. Can also use Serverless360. |
Archiving | BizTalk databases (Archive) | Azure Storage, Application Insights, Log Analysis | Logging & Tracking |
Refer below articles for more detail –
Migration BizTalk to Azure
https://www.serverless360.com/blog/migrating-biztalk-to-azure
b) Migrate to BizTalk Server 2020 –
- In-Place Upgrade
- Migrate to New Environment
- As-Is Migration
- BizTalk Server Migration Tool
- Migrate and Improve
- Traditional Migration of every solution
- Possible enhancement of code, removing/replacing deprecated items
Let’s understand these options in detail –
In-Place Upgrade –
Upgrading of the existing BizTalk Server 2016 Infrastructure to BizTalk Server 2020(In House Upgrade).

In-Place Upgrade Pros & Cons –
Advantages –
- Extremely minimal efforts and time to upgrade
- One click upgrade of BizTalk within the existing infrastructure.
Disadvantages –
- Can only be done with N-1 Version
- High Risk of Failure – Big stack to upgrade, must be compatible
- OS, SQL, VS, BizTalk, 3rd Party softwares etc.
- As-Is Upgrade – No change to infrastructure or code.
- Code changes later will require upgrade to new VS, rebuild etc.
- This approach is only suitable for small businesses with simpler integration
Migration – Parallel New Setup
Advantages –
- Migration can be done in phases
- Can scale up infrastructure
- No downtime as we will have parallel environments
- Can do the enhancements like replace deprecated features, code enhancements etc.
Disadvantages –
- Requires a lot of efforts as all the applications need to be rebuilt, deployed and tested
- Time taking, costly and lots of monotonous activities
Question 3 – I chose Migration to parallel environment. Can it be automated?
Option 1 – Migration Options – BizTalk Migration Tool(MSIT)
Microsoft’s internal team has provided a tool which assists heavily in as-is migration.

Migration Tool Features –

Traditional Migration –
High Level Steps involved –
- Recreate BizTalk Servers 2020 environment with desired (supported) Hardware & Software’s.
- Application Level Migration
- Uprade to Latest Visual Studio
- Change of .Net Framework
- Incorporate references and 3rd Party Softwares
- Rebuild Code
- End to End Testing
- Possible Enhancements if any
Question 4 – Can we automate BizTalk Traditional Migration?
Yes, you can create One click Upgrade & Migration of thousands of BizTalk Solutions following below steps –
Major Operations to Automate –
- Upgrade to Latest Visual Studio using Command line –
devenv {SolutionFile|ProjectFile} /Upgrade [/Out OutputFilename]
- Rebuild Solutions – Use VS command line –
devenv SolutionName /Rebuild [SolnConfigName [/Project ProjName [/ProjectConfig ProjConfigName]] [/Out OutputFilename]]
- Change DotNet Framework Version for all Projects – Specially helpful for class libraries – Pipeline components, custom functoids, custom adapters, Helpers
Replace TargetFrameworkVersion section in project files (.btpproj) with target framework
<TargetFrameworkVersion>DotNetTargetFramework</TargetFrameworkVersion>
- Add BTDF Project or BizTalk Deployment project to solution
Use a template Deployment Folder with all the required files, update it with proper values at runtime
Refer below article for detailed implementation –
BIZTALK AUTOMATED MIGRATION
https://prashantbiztalkblogs.wordpress.com/2020/08/28/biztalk-automated-migration/
Question 5 – What’s New in BizTalk 2020?
I’m sure many of you must be already aware of the new features, so I’m bringing this topic in the end. It’s better to refer MS Official articles for more detail. I will just provide a brief summary.
Refer – What’s New in BizTalk Server 2020
https://docs.microsoft.com/en-us/biztalk/install-and-config-guides/whats-new-in-biztalk-server-2020
Support for newer platforms –
- Visual Studio 2019
- Windows Server 2019, Windows Server 2016, Windows 10
- SQL Server 2019, SQL Server 2017, SQL Server 2016 SP2
- DotNet Framework 4.7.2 or above
- Office 2019, Office 2016
Hardware and Software Requirements for BizTalk Server 2020
New Office 365 Adapters – SMTP & POP3 Adapters are deprecated and replaced by Office 365 Adapters
– Adapter for Mail – Send and receive messages using Office 365 e-mail
– Adapter for Schedule – Set and update appointments using Office 365 schedules
– Adapter for Contact – Define people and groups using Office 365 contacts
Note – A new BizTalk TMS service will run in BizTalk application server, which will be responsible to get token for every office 365 account and cache it.
Better Integration with Azure – Hybrid Integration
– Logic Apps Adapter
– Service Bus Adapter
– Event Hubs Adapter
– Integration with API Management
– Publish Orchestration/Schema endpoints via APIM
– Publish APIs to external, partner & internal developers to unlock the potential of their data and services
– Adapter for Blob Storage
– Read and write binary files in Azure Blob Storage
Deployment and Administration Enhancements –
- Design and Deploy with VSTS
- Aplication Lifecycle Management to deploy and update BizTalk Server instances using Visual Studio Team System (VSTS)
- Backup to Blob Storage
- Backup BizTalk Server database job log files to Azure Blob Storage
- Advanced Scheduling
- Set up recurrence on BizTalk Server receive locations with greater precision using time zones, months, weeks, and days
Security Enhancements –
- Transport Layer Security 1.2
- Securely deploy BizTalk Server using TLS 1.2 authentication and encryption
- SQL Server Encrypted Data
- Read and write to SQL Server always encrypted columns using BizTalk Adapter for SQL Server
Enhanced Administration
- REST APIs
- Manage BizTalk environments using standard RESTful Web services APIs. Can create BizTalk 360 like portal yourself.
- Read-only Operator Role
- Facilitate dev ops model, provide production stamp without ability to update anything
- Group Managed Service Accounts
- Extend windows GMSA support to BizTalk operations and services
- No need to change passwords anymore with GMSA
- Audit Log
- Making BizTalk further secure by maintaining audit trails of all management operation – One of the most important feature for auditing
Enhanced Analytics and Reporting
- Application Insights
- Send BizTalk tracking data to Application Insights for extensible analytics – understand Trends on usage, performance, custom business metrics
- Event Hubs
- Send BizTalk Server tracking data to Event Hubs
- Power BI
- Analyze & report BizTalk tracking data using Power BI. Use operational data templates for visualizations and dashboards
Few Other Important Enhancements –
- XSLT 3.0 Support
- Out of box wiring to work with Saxon XSLT3.0
- SQL Availability Group support for BAM DTS Package via SSIS Catalog
- Helpful for HA of BAM DBs
- Partially disabled receive locations
- Allows Fault Tolerance
- Throughput improvements for Dynamic Send Ports with Ordered Delivery
- Support for SSO Affiliate applications in SFTP adapter
Deprecated Features –
Program | Status | Replacement |
POP3 and SMTP adapters | Deprecated | Office 365 adapters |
Support for ACS authentication in adapters | Removed | SAS authentication |
SOAP adapter | Deprecated | WCF-BasicHttp Adapter |
Old SQL adapter | Removed | WCF-SQL Adapter |
BPEL support | Deprecated | None |
JDE OneWorld adapter | Deprecated | None |
OWC redist | Removed | None |
BAM Portal | Deprecated | None |
WCF-NetTcpRelay adapter | Deprecated | None |
Samples | Removed | Removed from BizTalk Server installation. |
Hope this article helps you in you BizTalk Migration Planning.
Feel free to contact me in case of any query. Thanks.
Contact Me:-
@Gmail, @Facebook , @Twitter, @LinkedIn , @MSDNTechnet, @My Personal Blog
Related Blog – BizTalk Migration Tool Demo
BizTalk Automated migration Tool | Prashant BizTalk And Azure Integration Blogs (wordpress.com)
Contact Me –
Check out my other blogs –
Logic Apps Secure SQL Connection String in Azure Key Vault
While using SQL Connector in Logic Apps we don’t get a straightforward way to fetch/store connection string in Key Vault or in config. By default, the connection string we provide goes and sits in the Configurations as shown in the pics below and is in plaintext format. The regular process to use SQL Connector -…
Save Full File in SQL table Column (varbinary) and read the contents back in t
What if you needed to save full file as-is to a SQL Server table column. I ran into a similar scenario and had to save CSV Files in a table. For this we created a table with a column of type “varbinary” CREATE TABLE [dbo].[TableWithCompleteFiles]([SNo] [int] IDENTITY(1,1) NOT NULL,[FileName] varchar NULL,[FileContent] varbinary NULL) ON [PRIMARY]…
Export SQL Table content as CSV File to a File Location
Recently, I got a request to save the contents of the table to a File. Wroking Command – Above commands will fail with below error – Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1 [Batch Start Line 43]SQL Server blocked access to procedure ‘sys.xp_cmdshell’ of component ‘xp_cmdshell’ because this component is turned off…
This is very helpful. This was written in 2020. we are about to start the migration in the next six months. does this work with current version of BizTalk and LogicApp?
Thanks
LikeLike
Yes, totally the basics are still the same and not much has changed, email me in case you run into any issues or need assistance.
LikeLike