Archive for the ‘Integration’ Category

While researching for my last post, Thinking outside the box (or not): How to create “Global C# function” to be reused inside a map?, in BizTalk360 blog, I encountered several errors while playing around with maps in order to find an approach that would allow me to create the concept of Global Function. And some of this errors were:

Inline Script Error: must declare a body because it is not marked abstract, extern, or partial

Inline Script Error: ; expected

or

Inline Script Error: Type ‘BizTalkMapper.FunctoidInlineScripts’ already defines a member called ‘FunctionName’ with the same parameter types

CAUSES

The cause for this problem is that you are not correctly declare the body of the Inline C# Function.

Or, if you are trying to reuse an existing Inline C# Function you are doing it properly.

To reuse Inline C# Functions this are the rules that you need to follow:

  • If all of the Scripting Functoids are in the same grid page: In the first Scripting Functoid, linked from the source to the destination, we will have to specify the body function and in the following functoids, we only need the function declaration (no body).
  • If the Scripting Functoids are in different grid pages: The Scripting Functoid that specifies the body function needs to be on the leftmost grid page and the remaining Scripting Functoids (with the function body declared) on the other grid pages to the right. In other words, counting the grid pages from left to right, if the Scripting Functoid that specifies the body function is on the second grid page, the remaining functoids with the function body declared, cannot be placed on the first grid page, they can only be placed from the second grid page (including the second).
SOLUTION

The solution to solve this issue you have two options, you need to follow the rules described above (BizTalk Mapper tips and tricks: How to reuse Scripting Functoids with Inline C# inside the same map) or you need to implement the concept of global C# Function described in my post: Thinking outside the box (or not): How to create “Global C# function” to be reused inside a map?, in resume:

  • Add a Grid page to your map and rename it to “GlobalFunctions”
  • Set this grid as the first grid page of your map (important steap)
  • Drag-and-Drop a Scripting Functoid to the “GlobalFunctions” grid page and place the C# code
  • Do not link any inputs and don’t map (link) this Scripting Functoids to any element in the destination Schema.
  • Double click the earlier Scripting Functoids added to the “GlobalFunctions” grid page and set the expected input values as empty constant values, that by default doesn’t exist
  • Now you can use these functions in other grid pages using only the function declaration

A few weeks ago, while improving an existing solution to fulfil the new business requirements, I encountered the following error while trying to validate or test a BizTalk map:

Exception Caught: The map contains a reference to a schema node that is not valid.  Perhaps the schema has changed.  Try reloading the map in the BizTalk Mapper.  The XSD XPath of the node is: /*[local-name()='<Schema>’]/*[local-name()=’MyRootNode’]/*[local-name()=’MyRecord]/*[local-name()=’MyElement’]

To contextualize the problem, the BizTalk Visual Studio solution I was working on was composed by several projects, but for the propose of this error, let’s say that we had two projects:

  • Schemas Project: containing all the schemas used by the BizTalk Solution;
  • Map Project: containing all the maps used by the BizTalk Solution;

I did the necessary changes on the source schema and they were automatically reflected in the map that I was working on without the need to rebuild the Schema Project. And when I try to test the map, after making all the necessary changes on it, I got the above error.

Which was a little awkward at the point because indeed I changed the contract of the source schema but it was reflect in the map that I was working on. Everything seemed fine, I even try to close and open the map again, but that did not solve the problem

CAUSES

Again, the reason for this error is awkward because the schemas changes were reflected on the map, even if it was a different solution and without rebuilding the Schema Solution. However, the cause for this error is that is referring an invalid or incorrect version of the Schema assembly.

SOLUTION

The solution to solve this issue is simple, you just need to rebuild the entire solution or rebuild the schema project before you try to validate or test the maps.

After the Schema project solution is rebuild the problem will disappear and you will be able to validate or test the map.

And the most expected email arrived once again on 1st January, thanks Microsoft for another wonderful start of New Year. Once again, I’m delighted to share that I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional), This is my 7th straight year on the MVP Program, an amazing journey and experience that started in 2011 as BizTalk MVP, which gave me the opportunity, and still does, to travel the world for speaking engagement, share the knowledge, and to meet the most amazing and skilled people in our industry.

azure-mvp-sandro-pereira

As usual, I would like to thank:

  • My MVP Lead Cristina Herrero
  • The BizTalk Product Team and Azure Teams like: Jim Harrer, Mandi Ohlinger, Tord G. Nordahl, Dan Rosanova, Jon Fancey, Paolo Salvatori, Kevin-Lam and Jeff-Hollan; Microsoft Portugal: Paulo Mena, Luís Calado, Ivo Ramos, Ricardo Jesus, Pedro Santos and all other Microsoft employees involved;
  • To DevScope (my company) and all my coworkers: no names here because all of them are amazing professionals – what an amazing team they are, so, thanks for all the support given.
  • To all my fellow Microsoft Integration MVP’s: Nino Crudele, Steef-Jan Wiggers, Saravana Kumar, Kent Weare, Mikael Håkansson, Johan Hedberg, Tomasso Groenendijk, Salvatore Pellitteri, Richard Seroter, Stephen W. Thomas, Mick Badran, Michael Stephenson, Bill Chesnut, Thomas Canter, Nicholas Hauenstein, Sam Vanhoutte, Glenn Colpeart, Howard S. Edidin, Martin Abbott, Leonid Ganeline and Ashwin Prabhu for the support in this program.
  • And special thanks to all my blog readers, friends and of course to BizTalk and Azure/Integration Community – there are so many that I don’t want to mention names so I don’t take the risk to forget someone.

Finally, my wife Fernanda, the kids Leonor and Laura (for all the “confusion and madness” they bring into my life), and to all members of my beautiful family… THANKS for all the support during this last years!

It’s a big honor to be in the program and I’m looking forward to another great year!

In my native language (Portuguese):

Obrigado Microsoft para outro maravilhoso início de Ano Novo. Estou muito feliz por poder partilhar com todos vocês que fui renomeado Azure Microsoft Most Valuable Professional (MVP)

Esta é a sétima vez que recebo este prémio e como é normal nestas ocasiões, gostaria de agradecer a todos os leitores do meu blog, amigos, a todos os membros da comunidade. Também gostaria de agradecer a minha MVP Lead Cristina Herrero, a todas as pessoas da Microsoft em especial à equipa de produto do BizTalk e Azure (Jim Harrer, Mandi Ohlinger, Tord G. Nordahl, Dan Rosanova, Jon Fancey, Paolo Salvatori, Kevin-Lam and Jeff-Hollan), Microsoft Portugal (Paulo Mena, Luís Calado, Ivo Ramos, Ricardo Jesus, Pedro Santos entre outros), a todos os meus colegas de trabalho na DevScope – que equipa maravilhosa, a todos os meus colegas Microsoft Integration MVP’s e a todos os MVP’s Portugueses .

Eu também gostaria de fazer um agradecimento muito especial à minha linda mulher Fernanda, as minhas traquininhas Laura e Leonor (por toda a "confusão e loucura" que trazem à minha vida) e à minha linda família por todo o seu suporte nestes últimos anos.

É uma grande honra estar no programa e espero continuar a contribuir para a comunidade BizTalk, e integração no geral, e a merecer o reconhecimento.

Instead of trying to archive everything I want at once, what will probably take me long time, I decided to publish another version of my Microsoft Integration Stencils Pack with an additional of 80 new shapes and some reorganization. With these new additions, this package now contains an astounding total of ~911 shapes (symbols/icons) that will help you visually represent Integration architectures (On-premise, Cloud or Hybrid scenarios) and solutions diagrams in Visio 2016/2013. It will provide symbols/icons to visually represent features, systems, processes and architectures that use BizTalk Server, Microsoft Azure and related technologies.

  • BizTalk Server
  • Microsoft Azure
    • BizTalk Services
    • Azure App Service (API Apps, Web Apps, Mobile Apps, PowerApps and Logic Apps)
    • Microsoft Flow
    • Event Hubs
    • Service Bus
    • API Management, IoT and Docker
    • Machine Learning, Stream Analytics, Data Factory, Data Pipelines
    • and so on
  • PowerBI
  • PowerShell
  • And many more…

The Microsoft Integration Stencils Pack v2.3 is composed by 8 files:

  • Microsoft Integration Stencils v2.3 (406 Shapes)
  • MIS Apps and Systems Logo Stencils v2.3 (109 shapes)
  • MIS IoT Devices Stencils v2.3 (131 shapes)
  • MIS Support Stencils v2.3 (108 shapes)
  • MIS Servers and Hardware v2.3 (45 shapes)
  • MIS Originals v2.3 (42 shapes)
  • MIS Users v2.3 (40 shapes)
  • MIS Devices v2.3 (30 shapes)

If you are wonder where is v2.2? yes I skipped one version, version 2.2 was a private version Smile.

These are some of the new shapes you can find in this new version:

Microsoft-Integration-Stencils-Pack-v2.3-new-shapes

You can download Microsoft Integration Stencils Pack for Visio 2016/2013 from:

Microsoft Integration Stencils Pack for Visio 2016/2013 (7,7 MB)
Microsoft | TechNet Gallery

Because yesterday Portugal was European Champion I decide today to give a gift to the community by making an earlier release of my Microsoft Integration Stencils Pack.

After the major release in June 16, I started to realize that with so many stencils it was becoming a little hard to find, or rather, I was spending too much time to find some representations that I wanted to use in my diagrams. Don’t get me wrong, I will continue to add new stencils and I already did in this release, however, the major improvement that I’m trying to make is to divide the Stencils in different files for a better organization.

With these new additions, this package now contains an astounding total of ~831 (~100 additions) (symbols/icons) that will help you visually represent Integration architectures (On-premise, Cloud or Hybrid scenarios) and solutions diagrams in Visio 2016/2013. It will provide symbols/icons to visually represent features, systems, processes and architectures that use BizTalk Server, Microsoft Azure and related technologies.

  • BizTalk Server
  • Microsoft Azure
    • BizTalk Services
    • Azure App Service (API Apps, Web Apps, Mobile Apps, PowerApps and Logic Apps)
    • Microsoft Flow
    • Event Hubs
    • Service Bus
    • API Management, IoT and Docker
    • Machine Learning, Stream Analytics, Data Factory, Data Pipelines
    • and so on
  • PowerBI
  • PowerShell
  • And many more…

Divided in 8 files to be easier to maintain and find the right shapes:

  • Microsoft Integration Stencils v2.0 (420 shapes)
  • MIS Apps and Systems Logo Stencils (69 shapes)
  • MIS IoT Devices Stencils (123 shapes)
  • MIS Support Stencils (101 shapes)
  • MIS Servers and Hardware v2.1 (39 shapes)
  • MIS Originals v2.1 (22 shapes)
  • MIS Users (27 shapes)
  • MIS Devices v2.1 (30 shapes)

Some of the new additions:

MIS-Stencils-v2.1-last-additions

You can download Microsoft Integration Stencils Pack for Visio 2016/2013 from:

Microsoft Integration Stencils Pack for Visio 2016/2013 (7,1 MB)
Microsoft | TechNet Gallery

Finally, I found some extra minutes to be able to write and after spending all my available free time over the last few weeks, mainly in researching but also in creating several ones… I’m happy to say that a major version, 360 new shapes – that is the double of the previous version, of Microsoft Integration Stencils Pack for Visio 2016/2013 is now available for you to download.

With these new additions, this package now contains an astounding total of 721 shapes (symbols/icons) that will help you visually represent Integration architectures (On-premise, Cloud or Hybrid scenarios) and solutions diagrams in Visio 2016/2013. It will provide symbols/icons to visually represent features, systems, processes and architectures that use BizTalk Server, Microsoft Azure and related technologies.

  • BizTalk Server
  • Microsoft Azure
    • BizTalk Services
    • Azure App Service (API Apps, Web Apps, Mobile Apps, PowerApps and Logic Apps)
    • Microsoft Flow
    • Event Hubs
    • Service Bus
    • API Management, IoT and Docker
    • Machine Learning, Stream Analytics, Data Factory, Data Pipelines
    • and so on
  • PowerBI
  • PowerShell
  • And many more…

With so many new shapes, I decide to divide the package in 4 files to be easier to maintain and find the right shapes:

  • Microsoft Integration Stencils v2.0 (416 shapes)
  • MIS Apps and Systems Logo Stencils (60 shapes)
  • MIS IoT Devices Stencils (123 shapes)
  • MIS Support Stencils (122 shapes)
BizTalk Server

Requested by several community member I added two special shapes:

  • The infamous T-Rex
  • and “The Chicken Way”

MIS-Stencils-Pack-BizTalk-Server

BizTalk Services

MIS-Stencils-Pack-BizTalk-Services

Azure App Service, Microsoft Flow and API Management

MIS-Stencils-Pack-App-Services

Azure

MIS-Stencils-Pack-Azure

Infrastructure

MIS-Stencils-Pack-Infraestructure

PowerBI, PowerShell and Service Fabric

MIS-Stencils-Pack-PowerBI

IoT

MIS-Stencils-Pack-IoT

and many more:

MIS-Stencils-Pack-More

That you can use and resize without losing quality.

Again, I didn’t create all of this shapes, maybe half of them, the other half was the work of gathering all the available resources and combine them together, for example, if you’re looking for more or official Azure Visio stencils, then you can find them here: Microsoft Azure, Cloud and Enterprise Symbol / Icon Set – Visio stencil, PowerPoint, PNG.

There are still many points that could be improved as well as adding new stencils but I hope you like the final result.

You can download Microsoft Integration Stencils Pack for Visio 2016/2013 from:

Microsoft Integration Stencils Pack for Visio 2016/2013 (6,4 MB)
Microsoft | TechNet Gallery

Bigger and better this is what to expect in this fourth conference that will take place in London. I think we can say with great certainty that this will be the biggest integration conference in the world that will happen this year! (of course related to Microsoft technologies, I don’t want to compare with other integration technologies)

Integration-2016-banner

This will be a three-day event purely focused to the Microsoft Integration stack, so we invite you all to join us in London, England. The event will take place at ExCeL London Exhibition Center and once again is being organized by BizTalk360 in conjunction with Microsoft. Please visit this link for more detail about the event and for registration information.

We will have:

  • This is not anymore a BizTalk related event this is now an Integration event covering a broad set of technologies that will appeal to integration focused professionals:
    • BizTalk Server and its expected new release BizTalk Server 2016
    • Azure App Service – API Apps and Logic Apps – PowerApps and Microsoft flows
    • Azure Service Bus (Event Hubs and Messaging)
    • And other topics like Internet of Things (IoT), Azure API Management, Azure Stream Analytics and Power BI or even Open Source technologies
  • 27 speakers (16 Integration MVP and 11 Microsoft program managers) and 27 sessions
    • The first half of the sessions and speakers are represented by Microsoft product group and the second half from Microsoft Integration MVP’s
  • There will be a paid Live Stream option for those who are not able to attend locally to this event see more about this option here.

This will also be an amazing opportunity to Network, Connect, and Reconnect with Colleagues. Meet some of the people you have been following on Twitter and blogs and network with them and others who are interested in the same things you are. To hang out with the smartest people you know – and I’m not talking about the speakers or Microsoft! I’m talking about you guys! – last reports mention that more than 370 attendees from over 150 companies across 25+ countries are going to attend the event, so imagine the experience that all of us have combined!

So my advice is: Don’t be afraid or shy, don’t wait for people come to you, instead, take your chances, engage the people you want to meet by easily saying "Hi my name is… ". This experience can be a great morale booster for you, lifelong friendships and connections have evolved from such conferences – I’m speaking for personal experience!

Integration-2016-engage-networking

And me to facilitate this approach or initiative to engage people – I will take near to 50 BizTalk cool gifts to distribute among the attendees that probably will ask questions in my session or who engage me during the event to have a simple conversation – doesn’t need to be about BizTalk or technologies it can be a simple introduction or normal conversation Smile.

Integration-2016-gifts

I’m also thrilled to be once again (fourth time) a speaker in this amazing event that I help to construct among with the other BizTalkCrew members (Nino Crudele, Steej-Jan Wiggers, Tord G. Nordahl and Saravana Kumar).

Integration-2016-im-speaking

I liked my session last year and the feedback that I received and based on the time that I have to present (30 min session) I decided that my topic would be one again about tips and tricks for developers and admins: “A new set of BizTalk Server Tips and Tricks”

Session Abstract

It’s critical to use good tools and techniques to maintain, support and produce new working solutions as quickly as possible. In this session, Sandro will introduce you to a new set of useful BizTalk Server Tips and Tricks, acquired by years of experience in the field.

The session will cover the expectations for all the roles: architects, managers, developers, and administrators. Topics include BizTalk migration strategy, content-based routing techniques, Mapping, BizTalk administration tips, extending BizTalk out-of-the-box capabilities and many more.

Integration-2016-sandro-session

I hope that, like me, you find it an interesting topic! See you there!

And remember, this annual conference has become a must-attend event for those interested in integration, so check more details about this event here.

Exciting news… Version 1.9.0.0 of BizTalk Mapper Extensions UtilityPack for BizTalk Server 2013 R2 and 2013 is now available!

Here’s the change-log for this release:

  • Ten new functoids:
    • Advance Logical AND Functoid
    • Advance Equal Functoid
    • Advance Greater Than Functoid
    • Advance Greater Than or Equal To Functoid
    • Advance Less Than Functoid
    • Advance Less Than or Equal To Functoid
    • Advance Not Equal Functoid
    • Advance Logical NOT Functoid
    • Advance Logical OR Functoid
    • If-Then-Else Functoid
  • Updates on the deployment scripts
What’s new in this version?

Although BizTalk Server provides many functoids to support a range of diverse operations when working with conditional mapping, we are limited to the number of existing operations or otherwise have to use custom XSLT.

This new library – Logical Functoids – includes a suit of functoids to perform a variety of logical operations, often controlling whether a particular element or attribute is created in an output instance message. Most of the Logical Functoids are a replica of the existent Logical Functoids that came out-of-the-box with BizTalk Server with the advantage that these will allow you to connect with others Custom String Functoids. They are fully compatible with existing functoids and don’t produce any more additional code.

biztalk-mapper-extensions-utilitypack-2013-r2-v1-9

See also the reason I decide to create this library here: Why is so hard to make a simple If-Then-Else Functoid? … well, not anymore!

Advance Logical AND Functoid

Use the Advance Logical AND functoid to return the logical AND of input parameters. It determines whether all of the specified input parameters are true.

Parameters

This functoid requires a minimum of two input parameters and a maximum of one hundred:

  • Parameter 1: A value that can be evaluated as either True or False.
  • Parameters 2 – 100: Values that can be evaluated as either True or False.

Returns the logical AND of parameters. True if all of the specified input parameters evaluate to True; False otherwise.

01-Advance-Logical-AND-Functoid

Advance Equal Functoid

Use the Advance Equal functoid to return the value “true” if the first input parameter is equal to the second input parameter. It tests whether the two input parameters are equal.

Parameters

This functoid requires two input parameters:

  • Parameter 1: A value to be tested for equality with the parameter 2.
  • Parameter 2: A value to be tested for equality with the parameter 1.

Returns “True” if the values of the two input parameters are equal; “False” otherwise.

02-Advance-Equal-Functoid

Advance Greater Than Functoid

Use the Advance Greater Than functoid to return the value “true” if the first input parameter is greater than the second input parameter. It tests whether the first input parameter is greater than the second input parameter.

Parameters

This functoid requires two input parameters:

  • Parameter 1: A value to be tested to determine whether it is greater than parameter 2.
  • Parameter 2: A value to be tested to determine whether it is greater than parameter 1.

Returns “True” if the value of the first input parameter is greater than the value of the second input parameter; “False” otherwise.

03-Advance-Greater-Than-Functoid

Advance Greater Than or Equal To Functoid

Use the Advance Greater Than or Equal To functoid to return the value “true” if the first input parameter is greater than or equal to the second input parameter. It tests whether the first input parameter is greater than or equal to the second input parameter.

Parameters

This functoid requires two input parameters:

  • Parameter 1: A value to be tested to determine whether it is greater than or equal to parameter 2.
  • Parameter 2: A value to be tested to determine whether it is greater than or equal to parameter 1.

Returns “True” if the value of the first input parameter is greater than or equal to the value of the second input parameter; “False” otherwise.

04-Advance-Greater-Than-or-Equal-To-Functoid

Advance Less Than Functoid

Use the Advance Less Than functoid to return the value “true” if the first input parameter is less than the second input parameter. It tests whether the first input parameter is less than the second input parameter.

Parameters

This functoid requires two input parameters:

  • Parameter 1: A value to be tested to determine whether it is less than parameter 2.
  • Parameter 2: A value to be tested to determine whether it is less than parameter 1.

Returns “True” if the value of the first input parameter is less than the value of the second input parameter; “False” otherwise.

05-Advance-Less-Than-Functoid

Advance Less Than or Equal To Functoid

Use the Advance Less Than or Equal To functoid to return the value “true” if the first input parameter is less than or equal to the second input parameter. It tests whether the first input parameter is less than or equal to the second input parameter.

Parameters

This functoid requires two input parameters:

  • Parameter 1: A value to be tested to determine whether it is less than or equal to parameter 2.
  • Parameter 2: A value to be tested to determine whether it is less than or equal to parameter 1.

Returns “True” if the value of the first input parameter is less than or equal to the value of the second input parameter; “False” otherwise.

06-Advance-Less-Than-or-Equal-To-Functoid

Advance Not Equal Functoid

Use the Advance Not Equal functoid to return the value “true” if the first input parameter is not equal to the second input parameter. It tests whether the two input parameters are not equal.

Parameters

This functoid requires two input parameters:

  • Parameter 1: A value to be tested for inequality with parameter 2.
  • Parameter 2: A value to be tested for inequality with parameter 1.

Returns “True” if the values of the two input parameters are not equal; “False” otherwise.

07-Advance-Not-Equal-Functoid

Advance Logical NOT Functoid

Use the Advance Logical NOT functoid to return the logical inversion of the input parameter. Use to logically negate the value of the Boolean input parameter.

Parameters

This functoid requires one input parameter only:

  • Parameter 1: A value that can be evaluated as either True or False.

Returns “True” if the specified input parameter evaluates to False; “False” otherwise.

08-Advance-Logical-NOT-Functoid

Advance Logical OR Functoid

Use the Advance Logical OR functoid to return the logical OR of input parameters. The input parameters have to be Boolean or numeric. It determines whether any of the specified input parameters are true.

Parameters

This functoid requires a minimum of two input parameters and a maximum of one hundred:

  • Parameter 1: A value that can be evaluated as either True or False.
  • Parameters 2 – 100: Values that can be evaluated as either True or False.

Returns “True” if any of the specified input parameters evaluate to True; “False” otherwise.

09-Advance-Logical-OR-Functoid

If-Then-Else Functoid

Use the If-Then-Else Functoid to return a value from one of two input parameters based on a condition. If the condition (first input) is True, then the value of the second input parameter is returned, otherwise the Third input is returned.

Parameters

This functoid requires three input parameters:

  • Boolean representing the result of a previous condition
  • The value to be returned if the condition is True.
  • The value to be returned if the condition is False.

If the condition is True, then the value of the second input parameter is returned, otherwise the Third input is returned.

10-If-Then-Else-Functoid

You can found and download Source Code, Application Binaries and Documentation in CodePlex BizTalk Mapper Extensions UtilityPack home page:

BizTalk Mapper Extensions UtilityPack
CodePlex

 

or from MSDN Code Gallery:

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2013 R2 (685.6 KB)
Microsoft | MSDN Code Gallery

We are thrilled to announce the last (6th) integration track session for Tuga IT 2016 on Saturday (free conference day) – “2 Speed IT powered by Microsoft Azure and Minecraft” with Michael Stephenson!

TUGA-IT-Speaker-Michael-Stephenson

The official scheduler is not yet available, nevertheless, this session will be performed in Saturday, 21 (on the free day). All the session will be available soon at Tuga IT 2016 that will be held on from 19 to 21 of May at Microsoft Portugal in Lisbon.

This is one-day free event that you can’t afford to miss, the seats are limited so go ahead and reserve yours here: https://www.eventbrite.com/e/tuga-it-2016-saturday-registration-22632816363

2 Speed IT powered by Microsoft Azure and Minecraft

Description: One of the recent shifts in IT has been around the concept of 2 speed IT. This can be a key approach to allow IT organizations to offer their customers the agility they require in situations where they need it. In this session Mike will talk about some real world examples where Azure has empowered organizations to deliver sprint style solutions that can offer marathon runner reliability, also Mike will show how a model reference architecture in Azure and Minecraft can be used by architects to visualize solutions that you want your teams to build.

Speaker: Michael Stephenson

Michael is a highly experienced freelance consultant with many years of architecting and delivering integration projects which leverage the Microsoft technology stack. He has deep, practical knowledge of delivering complex solutions with BizTalk, Microsoft .NET, Microsoft Azure and associated technologies. Michael has also been a technical lead on 25+ projects which have leveraged Microsoft’s cloud platform.

Michael is heavily involved in the community activities around Microsoft technologies through the Microsoft MVP and Advisor/Insider programmes and also speaks at user groups on a regular basis and is a keen blogger with articles such as how to build a real world integration platform on Azure. Michael is an author for Pluralsight having produced a very popular courses on .net and RabbitMQ.

Michael is also the creator of the BizTalk Maturity Assessment an initiative to help companies to measure the maturity of how they work with BizTalk and compare how they do BizTalk against recognized good practices. For more info refer to http://biztalkmaturity.com.

Links:

 

Register for Saturday event now on https://www.eventbrite.com/e/tuga-it-2016-saturday-registration-22632816363 – Seats are limited! See you in Lisbon.