Real-World BizTalk
Some very wise individual once said, “The right tool for the right job!”. How true this is. I have been in IT software development for almost 25 years and have seen the evolution of application programming from TI-BASIC to Paradox Databases to IBM RPG/COBOL to Visual Basic to C/C++ to Java to C#; and that is only a partial picture of the stuff I have done. With all of that experience under my belt – and then some, the one thing I have learned is this… Application/System development is easy – if you use the right tool(s).
Now, here is the wisdom of the trade – not all tools are cut out to do what they are supposed to! That’s right, sometimes you will find software development tools that are touted to make the task of application development easier and better; however, they actually make things worse! So, we have to stop trying to be “cool” and “trendy” with our programming prowess and become real software engineers who design and develop to the need to produce sound, reliable and easily maintainable code.
This brings me to my primary topic of using BizTalk Server in the real world or, at least, in my world since this post is about my lessons learned in using BTS. Now, I must first say that BTS is a very powerful tool and “can” be a huge source of application development ease, happiness and bliss! But as usual, we always find a way to bring out the worst in everything. Here are some things you should never, ever, never, ever, never, never-ever do with BTS in my opinion…
- Don’t use BTS in an ETL (Extract, Transform and Load) capacity of any kind! It simply is not built for this type of data management. Use Informatica or SSIS but don’t use BTS for this.
- Don’t use the BRE (Business Rules Engine) unless you have a very basic set of rules that can be managed by someone other than a developer! I believe the BRE was designed for Business Analysts to manipulate/manage BRE information. There are ways to implement the BRE in a programmer-heavy way but I don’t recommend it. If you have very complex business rules to drive you system functionality, you should code them in a class library. This will make them easy to manage/maintain and you don’t have to have a BTS pro on-hand to change a minor business rule.
- Don’t try to use BTS for everything! Sometimes, all you need is a quick console application or class to perform a certain task. Why use BTS and have to set up schemas, pipelines, maps, orchestrations and still need a helper class to do something that could be done very quickly. Be smart, be simple and be happy!
Now, as I said before, BTS is a powerful tool so, if you are going to use it, use it to make things better. Here are a couple of things I like about BTS and it’s uses…
- BTS should be the goto solution for hosting XML Web Services – hands down! An orchestration can be setup as a web service, receive the XML from the user, make decisions about processing that data and send the request to downstream systems or initiate processes based on that data. This thought almost brings me to tears of joy!
- BTS is an awesome system integration powerhouse! If you have multiple, diverse systems in-house that must be in communication with each other to provide a total working solution for your company, then BTS is for you!
I am glad that I have some BizTalk experience because used in smart ways, it can be one of the most helpful and powerful tools in your company’s tool chest.