[INACTIVE BLOG] Connected Thoughts – Thiago Almeida

September 16, 2011

New Role: Developer Evangelist at Microsoft

Filed under: BizTalk — Thiago Almeida @ 9:27 am

I am excited to announce that over the next few weeks I am joining Microsoft New Zealand as a Developer Evangelist. In this new role I will be promoting the adoption of Microsoft platform and tools, with a big emphasis on Windows Azure. Another large part of the role will involve working with start-ups and Independent Software Vendors (ISVs) assisting in their journey to adopt and be successful with Microsoft technologies.

This means that my current focus on middleware and integration technologies will be extended to the broader set of technologies covered by the Developer & Platform Evangelism (DPE) team. It also means that this blog will no longer be maintained. I will though most likely work on Microsoft blogs like the New Zealand ISV blog.

I am also working on finding and training a new leader for the Auckland Connected Systems User Groupcontact me if you are interested.  It might be merged with a potential new user group, the Auckland Azure User Group. Even though I will not be the leader, I will certainly be active in these user groups and other community events.

So, a bit sad to be leaving behind a few things that I hold dear, including ACSUG, my MVP status, and the awesome team at Datacom, but also looking forward to this challenging and rewarding new role at Microsoft.

bucketList.RemoveAll(item => item.Description == "Work for Microsoft");

August 29, 2011

Tech Ed New Zealand 2011 and Guidelines and Best Practices for Migrating .NET Web Services to the Azure Platform

Filed under: BizTalk — Thiago Almeida @ 1:29 pm

This year’s Tech Ed New Zealand has come and gone, and the dust is settling. It was once again a highlight of the year in the New Zealand ICT community: it is New Zealand’s largest IT conference after all!

I attended to a few sessions (not all that I wanted to though), and caught up with several ISVs, partners, and Microsoft employees. The networking and relationship building accounts for a large part of the reason why you should attend such conferences, and even more so in New Zealand. The keynote and a sample of the sessions for each track were recorded and are available for free on Channel 9:


Fortunately my presentation with Emil Velinov from the Windows Azure Customer Advisory Team (CAT) was recorded, here are the details:

Guidelines and Best Practices for Migrating .NET Web Services to the Azure Platform


This session will briefly discuss the different types of services supported in WCF 4, followed by detailed guidance on migrating a service implementation from an on-premises deployment to the Windows Azure platform. The session will address the Azure hosting options and considerations, the steps for securing the service using the Azure Access Control Service (ACS), and finally – enabling a hybrid solution by connecting to existing on-premises services via the Azure AppFabric Service Bus.


Look forward to the event next year!


July 14, 2011

Microsoft’s Middleware and BizTalk Server Roadmap

Filed under: BizTalk — Thiago Almeida @ 4:25 pm

A specific session at the 2011 Microsoft Worldwide Partner Conference is very important for those wondering about Microsoft’s future plans for BizTalk Server and also their broader middleware platform.

This session contains the latest messaging from Microsoft to customers and partners on the subject and touches on several important topics like the myth that BizTalk Server is dead, the new middleware approach, and how the two merge.

So what are you waiting for?

AP03 – The Future of Middleware and the BizTalk Roadmap

If you have a development practice or you are an ISV and you create complex solutions for customers, you need a number of middleware capabilities at your disposal. BizTalk Server has been at the center of Microsoft’s Middleware platform for a number of years, to provide many of these capabilities. AppFabric, both on-premise and on Windows Azure provides additional capabilities as well as some overlapping ones. So what is the strategy here, what is Microsoft up to long term and short term? How will this affect solutions you create and what opportunities will it create for your company? In this session, you will get the answers to these questions.


[Edit 2011-07-16]

I would be remiss if I didn’t link to Richard Seroter’s post “Is BizTalk Server Going Away At Some Point? Yes. Dead? Nope. ”, sparked by presentation I mention above. Richard has brilliantly put into words the views of many of us in the industry, and is a must-read.

Regards, Thiago

July 6, 2011

BizTalk Mainstream Support reminder

Filed under: BizTalk — Thiago Almeida @ 3:21 pm

For Microsoft BizTalk support there are two categories, Mainstream and Extended.

Mainstream includes the following:

  • Non-security hotfix support
  • No-charge incident support
  • Warranty claims
  • Design Changes and feature requests
  • All the points in extended support

Extended support provides only:

  • Paid Support
  • Security Updates
  • Knowledge base articles available

If you purchase an extended hotfix agreement within 90 days of Mainstream support ending you extend the mainstream support features to the extended support phase.

So here are the dates for each BizTalk Server (full table here):


Mainstream Support

Extended Support

BizTalk 2010

12 January 2016

12 January 2021

Biztalk 2009

8 July 2014

9 July 2019

BizTalk 2006 R2

12 July 2011

12 July 2016

BizTalk 2006

12 July 2011

12 July 2016

BizTalk 2004

14 July 2009

8 July 2014

BizTalk 2002

10 July 2007

10 July 2012

What does this mean? As you can see BizTalk 2006 and 2006 R2 are reaching the end of mainstream support next week, and there’s not much left for BizTalk 2004 and 2002 extended support. Therefore if you currently have or support BizTalk Server at your company or clients it’s time to consider upgrading or at least purchase extended hotfix support.

The information in this post is subject to change so contact your local Microsoft office for more information.



May 13, 2011

Quick Update: Upcoming book and Windows Azure Latency

Filed under: BizTalk — Thiago Almeida @ 8:30 am

Been a while, so I thought I’d give you an update on a few things I have been working on in the past few months.

First thing is the upcoming book Microsoft BizTalk 2010: Line of Business Systems Integration. This book is one that cannot be left out of your BizTalk 2010 book arsenal. I have contributed to it and really like the way it is structured and provides real examples of how to use the BizTalk Server 2010 line of business adapters in your solutions.

Kent Weare has posted more details on the book and with the seal of approval of reviewers like Mick Badran, Ben Cline, and Stephen Thomas you know it will be good!

Secondly, I have been on a project with Emil Velinov from the Windows Azure AppFabric Customer Advisory Team. We have looked at a common WCF service implementation:

Then identified the latency and response times in a series of scenarios for the service when hosted in Windows Azure , culminating in a very informative blog post, so check it out.



February 7, 2011

Announcing: Applied Architecture Patterns on the Microsoft Platform Tour of New Zealand with Richard Seroter

Filed under: BizTalk — Thiago Almeida @ 1:18 pm

Can it be true you ask? Yes, it is true. I’m really happy to announce the Applied Architecture Patterns on the Microsoft Platform Tour of New Zealand, with accomplished author and fellow BizTalk MVP Richard Seroter presenting. These will be great sessions for any .NET developer, architect or IT manager trying to make sense of the plethora of new technologies recently released by Microsoft in the application platform space. So mark your calendar and register if you are around! Feel free to forward the invite to anyone you think might be interested. These are user group meetings – free, with drinks and pizza, plus there’s giveaways at the end.

When to Use What: Navigating the Microsoft Application Platform to Choose the Right Solution

Microsoft has recently released a host of new and updated application platform technologies.  It is a challenge to keep up with this onslaught of releases and still maintain an understanding of which technology is the best fit for a given solution. In this session, we will do a tour through the Microsoft application platform and apply strategies outlined in the new book, Applied Architecture on the Microsoft Platform (Packt Publishing, 2010).Through a mix of discussion and demonstration we’ll highlight the patterns where Windows Azure, BizTalk Server, SQL Server, StreamInsight and Windows Server AppFabric are the right solution.

Presenter: Richard Seroter

Richard Seroter is a senior solutions architect for an industry-leading biotechnology company, a Microsoft MVP for BizTalk Server, and a Microsoft Connected Technology Advisor. He has spent the majority of his career consulting with customers as they planned and implemented their enterprise software solutions. Richard worked first for two global IT consulting firms, which gave him exposure to a diverse range of industries, technologies, and business challenges. Richard then joined Microsoft as a SOA/BPM technology specialist where his sole objective was to educate and collaborate with customers as they considered, designed, and architected BizTalk solutions. One of those customers liked him enough to bring him onboard full time as an architect after they committed to using BizTalk Server as their enterprise service bus. Once the BizTalk environment was successfully established, Richard transitioned into a solutions architect role where he now helps identify enterprise best practices and applies good architectural principles to a wide set of IT initiatives.
Richard is the author of two books: "Applied Architecture Patterns on the Microsoft Platform" (Packt Publishing, 2010), and "SOA Patterns with BizTalk Server 2009" (Packt Publishing, 2009). He is also the technical reviewer of the book "Pro BizTalk 2009" (APress, 2009).

Richard maintains a semi-popular blog of his exploits, pitfalls, and musings with BizTalk Server and enterprise architecture at http://seroter.wordpress.com


Date: 28/03/2011 05:30pm start
User Group: Auckland Connected Systems User Group
Location: MPC Room, Microsoft New Zealand Level 5, 22 Viaduct Harbour Avenue, Auckland 1010
Register: http://www.acsug.co.nz/Meetings/When-to-Use-What–Navigating-the-Microsoft-Applica.aspx

Date:  29/03/2011 06:00pm start
User Group: Wellington .NET User Group
Location: Xero, Level 1, 98 Customhouse Quay, Wellington
RSVP: email owen+dnug@bgeek.net

See you there!


Thiago Almeida

Auckland Connected Systems User Group Leader

January 18, 2011

WCF-SQL versus the Old SQL Adapter

Filed under: BizTalk — Thiago Almeida @ 9:53 pm

Since the underlying technology is very different between the two adapters – ADO.NET in the WCF-SQL Adapter and SQLXML in the old SQL Adapter – there are many differences between them.

The first difference worth mentioning is not technical but is instead related to product support. The old SQL Adapter is still available in BizTalk Server 2010. It is still used by the EDI batch functionality and also by the All.Exception send port in the ESB Toolkit 2.1. But the old SQL adapter was deprecated with BizTalk Server 2009 was released and is now unsupported in BizTalk Server 2010. Future releases of the EDI and the ESB Toolkit will most likely move to use the new WCF-SQL Adapter.

From a developer perspective quite a few things have improved. The old adapter relied on using Updategrams for update, insert and delete statements against tables and required SQL statements or stored procedures to use the FOR XML mode to return results so that the data was returned to BizTalk Server in XML format. Updategrams caused both BizTalk maps and schemas to be more complicated than necessary. And the FOR XML clause somewhat tied that stored procedure to BizTalk Server or other callers that understood the XML being returned. The new adapter does not require any of these extra steps and creates the schemas that follow the standard Insert, Update, Delete, and Select statements against tables and views and also to execute Stored Procedures and Functions.

Another area of improvement is the supported SQL Server features. The new adapter has been created to support many more features of SQL Server and overcomes many of the restraints that existed in the old adapter both in terms of performance, fine tuning and feature set. Richard Seroter compiled a comparison chart on his book SOA Capabilities in BizTalk Server 2009. The chapter can also be found online here.

The adapter pack comes with a tool called the BizTalk Adapter Pack Migration Tool. Its intent is to accelerate the adoption of the new adapters with minimal changes to you existing BizTalk solution. It accomplishes this by creating WCF-SQL versions of schemas for any old SQL adapter schemas, and also creates maps that map from the old adapter schema to the new. It is recommended if you want to take advantage of the new adapter very quickly in your existing BizTalk application. But ideally do not use the maps it creates and instead update your solution to completely remove the old adapter schemas, thus avoiding having to call two maps. For more details about the tool consult the Migration Guide for Microsoft BizTalk Adapters for Enterprise Applications available with the BizTalk Server Adapter Pack documentation here. Also see Richard’s review here.

One of the common issues developers run into after migrating schemas for stored procedures from the old SQL Adapter to the new is lack of support for generating strongly-typed schemas for stored procedures that create temporary tables. This is one limitation of the new WCF-SQL Adapter that didn’t exist in the old so let us delve into this a little bit more and cover one workaround.

Strongly-typed schemas are the most common way of receiving data from SQL Server into BizTalk solutions. The reason why the adapter fails when there are temporary tables in the stored procedure is because it uses the FMTONLY setting of SQL Server to discover the format of the stored procedure response without actually calling it. For example, when using the wizard to generate the typed polling schema for a stored procedure called uspCurrentCities it will execute the following against the database:


exec [dbo].[uspCurrentCities]


By enabling FMTONLY before calling the stored procedure the wizard can figure out the structure of the stored procedure response without really executing it. If the stored procedure created and uses a temporary table the wizard throws an exception:


To overcome this limitation there are a few workarounds like updating your stored procedure to use table variables instead. But the most common workaround is to disable the FMTONLY setting before creating the temporary table and then re-enabling it right after. Here is an example of the uspCurrentCities stored procedure with the workaround:

USE [AdventureWorks]






ALTER PROCEDURE [dbo].[uspCurrentCities]





      –Ensure FMTONLY OFF just before creating temporary table

    DECLARE @CheckFmt bit;

    SELECT @CheckFmt = 0 WHERE 1=1

    IF @CheckFmt IS NULL

            SET FMTONLY OFF;


      –Create temporary table

      IF object_id(‘tempdb.dbo.#Address’) IS NOT NULL

            DROP TABLE #Address;


      CREATE TABLE #Address(

            [City] [nvarchar](30) NOT NULL,

            [PostalCode] [nvarchar] (15) NOT NULL)


      CREATE CLUSTERED INDEX IX_AddressTemp ON #Address

            ([City], [PostalCode]); 


      –Ensure FMTONLY is turned back on if it was on before

    IF @CheckFmt IS NULL

            SET FMTONLY ON;


      INSERT INTO #Address

      SELECT DISTINCT [City], [PostalCode]

      FROM Person.Address


      SELECT [City], [PostalCode] FROM #Address


      IF object_id(‘tempdb.dbo.#Address’) IS NOT NULL

            DROP TABLE #Address;


Generating a strongly-typed schema for this stored procedure now creates a proper WCF-SQL adapter schema:


This once deployed and configured in a BizTalk Server solution provides the expected XML content:

<TypedPolling xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedPolling/FMTOnlySample">




      <PostalCode>OX14 4SE</PostalCode>












How the WCF-SQL Adapter builds the ADO.NET connection string

Filed under: BizTalk — Thiago Almeida @ 9:39 pm

The WCF-SQL Adapter that is part of the BizTalk Server Adapter Pack 2010 takes advantage of ADO.NET in the .NET Framework to connect to SQL Server, specifically the classes in the System.Data.SqlClient namespace. Internally the adapter uses a combination of the following URI parts and WCF-SQL binding properties to make up the final ADO.NET connection string to SQL Server. This can be useful if you are already familiar with ADO.NET connection strings and how its parts change the connection behaviour so you can configure the adapter properly.

See here for the SQL Server Connection URI explanation. From the URI the following parts are parsed as follows:

  • Server name (Server_Name), port ([:Portno]) and instance name ([Database_Instance_Name]) are combined to become the connection string Data Source value
  • Database name ([Database_Name]) is used for the connection string Initial Catalog value
  • The partner server name ([Partner_Server_Name]) is used for the connection string Failover Partner value

And the following make up the rest of the connection string:

  • If username and password are passed in on the credentials tab then the Username is used for the connection string User ID value; Password is used for the connection string Password value; and the connection string Integrated Security value is set to false. If no username is set then the connection string Integrated Security value is set to true.
  • The connection string Max Pool Size value is extracted from the WCF-SQL MaxConnectionPoolSize binding property
  • The connection string Encrypt value is extracted from the WCF-SQL Encrypt binding property
  • The connection string Workstation ID value is extracted from the WCF-SQL WorkstationId binding property
  • The connection string Enlist value is extracted from the WCF-SQL adapter UseAmbientTransaction binding property
  • The connection string Connect Timeout value extracted from the WCF-SQL adapter OpenTimeout binding property.
  • The connection string Asynchronous Processing value is set to true

Note that the WCF-SQL Adapter, unlike other adapters in the BizTalk Adapter Pack 2010 like the WCF-Oracle adapter, does not accept credentials in the URI, and does not expose the AcceptCredentialsInUri binding setting in the binding property form. So Username and Password cannot be set in the URI, at least  not in this version of the adapter. Credentials should be set on the Other tab of the WCF-Custom adapter or the Credentials tab of the WCF-SQL Adapter properties.

December 11, 2010

Release of cumulative update packages for BizTalk Server 2009 and BizTalk Adapter Pack 2.0

Filed under: BizTalk — Thiago Almeida @ 1:42 pm

Microsoft have released today two important cumulative update packages. They follow the same approach of cumulative updates that have been successful with SQL Server and BizTalk Server 2006 R2 SP1 for a while now.

The first is the Cumulative Update Package 1 for BizTalk Server 2009 (KB 2429050). It contains 60 fixes with 55 applying to BizTalk Server 2009 and 5 to UDDI as well as added support to HIPAA 5010. The release has 32 and 64bit downloads and can be obtained either by contacting Customer Services or by requesting the download via the online self-service feature.

The second release is the Cumulative Update Package 1 for BizTalk Adapter Pack 2.0  (KB 2444952) and it includes 11 fixes that apply to the SAP Adapter, Oracle Adapter and the baseline framework itself. It applies to any system using the BizTalk Adapter Pack 2.0 (and .NET solutions consuming the adapters, BizTalk Server 2006 R2 SP1, and BizTalk Server 2009).

Like all releases ensure you try them first on a test environment and run regression tests to make sure there are no breaking changes. On my standalone development machine both installations ran without issues and did not require a server restart (the BizTalk Serve 2009 restarts a few windows services though).

Most of the hotfixes are already in BizTalk Server 2010. Very likely the same Cumulative Update approach will be taken for any future BizTalk Server 2010 updates as well and we may see them coming up next year.


Thiago Almeida

November 25, 2010

ACSUG December Meeting: Microsoft BizTalk Server 2010 Demo with Thiago Almeida

Filed under: BizTalk — Thiago Almeida @ 6:19 am


The next Auckland Connected Systems User Group meeting is set for Thursday the 2nd of December at 5:30pm. Presentation starts at 6:00pm. It’s free and we will have the usual pizza, drinks and giveaways. Register here.

Microsoft BizTalk Server 2010 Demo

BizTalk Server is Microsoft’s premier server for building business process and integration solutions. BizTalk Server 2010, the seventh major version of the product, builds on the innovation and success introduced by the previous four versions and now includes full support and integration with Windows Server® 2008 R2, SQL Server® 2008, and Visual Studio® 2010.

This demonstration will walk you through a purchasing process. It will illustrate how the power, simplicity, and agility of Microsoft BizTalk Server helped automate the business process and provide greater visibility into the process to optimize spending and decrease costs.

This demo will show how a purchasing scenario was automated using BizTalk Server to integrate SharePoint 2010 and back end systems while applying business rules and capturing business activity data to get visibility on process progress and business metrics.


Thiago Almeida is a Senior Integrations Consultant at Datacom, a Microsoft Virtual Technical Solution Professional and a Microsoft BizTalk Server MVP. Thiago leads the Auckland Connected Systems User Group (ACSUG).

Datacom Systems Limited, 210 Federal Street, Auckland CBD, Auckland, 1141. Parking on the street around Datacom. There is also pay parking in Hobson St parallel to the venue.

Register to Attend

See you there!

Thiago Almeida

Older Posts »

Create a free website or blog at WordPress.com.