In this period, I’m supporting different development teams to implement a big integration solution using different technologies such as BizTalk Server, Web API, Azure, Java and other and involving many other actors and countries.
In a situation like that is quite normal to find many different problems in many different areas like integration, security, messaging, performances, SLA and more.
One of the most important aspects that I like to consider is the productivity, writing code we spend time and time = money.
Many times a developer needs to find a solution or he needs to decide a specific pattern to solve a problem and we need to be ready to provide the most productive solution for it.

For instance, a .Net developer can decide to use a plain function to solve a specific loop instead using a quicker lambda approach, a BizTalk developer can decide to use a pure BizTalk approach instead using a quicker and faster approach using code.

To better understand this concept, I want to provide you a classic and famous sample in the BizTalk planet.

An usual requirement in any solution is, for example, the possibility to pick up data in composite pattern and cycling for each instance inside the composite batch, in BizTalk server this is the classic situation where we are able to understand how much the developer is BizTalk oriented J

By nature, the BizTalk development approach is more closed to a RAD approach rather than a pure code approach.

To cycle in a composite message in BizTalk we can use different ways and looking in internet we can find many solution, one of the most used by BizTalk developer is creating an orchestration, create the composite schema, execute the mediation, receive the composite schema in the orchestration, in the orchestration cycle trough the messages using a custom pipeline called in the orchestration.

Quite expensive approach in term of productivity and performances.

Another way is using for example a System.Collections.Specialized.ListDictionary in the orchestration.

Create a variable in the orchestration type System.Collections.Specialized.ListDictionary

Create a static class and a method named for example GetAllMessages

Inside your method write the code to pick up you messages and stream and load into the ListDictionary

Create an expression shape and execute the method to retrieve the ListDictionary

xdListTransfers = new System.Collections.Specialized.ListDictionary();

MYNAMESPACE.Common.Services.SpgDAL.GetAllMessages(ref xdListTransfers,

ref numberOfMessages,

ref dataValid);

Use variable by ref to manage the result, the variable numberOfMessages
is used to cicle in the orchestration loop.

Because we use a ListDictionary we can easily get our item using a key in the list, as below using the numberOfMessagesDone variable.

xmlDoc = new System.Xml.XmlDocument();

transferMessage = new MYNAMESPACE.Common.Services.TransferMessage();

transferMessage = (MYNAMESPACE.Common.Services.TransferMessage)xdListTransfers[numberOfMessagesDone.ToString()];

Where numberOfMessagesDone
is the increment value in the loop

Using this method, we keep our orchestration very light and it’s very easy and quick to develop.

I have many other samples like that, this an argument which I’m really care about because able to improve our productivity and performance and first of all the costs.

 

Previous articleBig Data integration in high scale scenario using Azure Service Fabric and GrabCaster
Next articleThe IT Integration market – My point of view and my next events
I have +25 years of hands-on experience in Cloud Technologies and Cybersecurity, supporting and driving global companies to adopt technologies in the most secure and profitable way. My cores expertises are Security and Cloud Governance, and I strongly believe in the conjunction of both to achieve the top result. In my career, I had the opportunity to lead global cloud infrastructures, providing guidance and leadership in Security and Cloud Governance. Security is my first passion, but I have deep experience in many other areas like Cloud Governance and Integration. I define myself as a very versatile person. In my past, I had the opportunity to work in many different areas, supporting different company roles, from technical roles to Sales, Pre-Sales and High Stakeholders. I see myself as a hands-on geek manager. I love to get my hands dirty and also be able to lead and create important things and initiatives. Mt passion for technology is also the reason for my activities in the IT community. I love sharing my experience and motivating people on engaging the technology with the right motivation and passion. I do conferences around the world, sharing my passion. I have been Microsoft MVP since 2006, Certified Ethical Hacker (CEH) and with a Master in Cybersecurity.

LEAVE A REPLY

Please enter your comment!
Please enter your name here