Saturday, September 25, 2010

BizTalk Server 2010 has shipped!

A few days late, but BizTalk 2010 is finally finished. The European BizTalk Conference I attended were meant to be the release party, but the product just missed the deadline. Now it's here though.

I'm mostly looking forward to the new and improved mapper but the enhanced granularity of performance settings as well as a standard SFTP adapter and integration with AppFabric is nice additions as well. Now I just hope for a project to kick off where this new version is chosen as the platform to use.

Saturday, September 11, 2010

Flat file schemas, delimeter characters, wrap characters and escape characters explained

A question on the BizTalk Professionals group on LinkedIn caused me to write a short answer, but I thought I'd do a more comprehensive take on it here.

The question was: what is the difference between wrap characters and escape characters?

When parsing a flat file schema, delimiter characters are used in order to split the incoming data into separate entities. Let's say we have the following data:

Alpha,Beta,Gamma,Delta,Epsilon

In this case, comma (,) is used as a delimeter which will enable us to split the string into the five separate words we want.

However, if it were to be a list of numbers with decimals and we use comma as the decimal separator as we do in Europe, using comma as a delimeter would be tricky since we don't know whether to split the string on the comma, or use it as a separator. In this case, we can use wrap characters.

"2,25","1,14","5,34"

In this example, the quote character (") is used as a wrap character, i.e. it wraps the separate entities. These are in turn separated with the delimiter character which is a comma (,). This will make us use the delimiter character as part of our data.

The same can be pulled off using escape characters. An escape character is placed before an otherwise reserved character in order to not parse it but to use it as part of the data. Most common is to have backslash (\) as the escape character due to it's use as such in many programming languages.

2\,25,1\,14,5\,34

The above line will give a similar result as the one with wrapped entities if backslash (\) is defined as an escape character. It escapes the following comma (,) which then will not be parsed even if it is defined as the delimiter and so it will be used as part of the data instead.

Friday, September 10, 2010

European BizTalk Conference recap

I'm back at the office after two days at Microsoft in Stockholm and the European BizTalk Conference where I enjoyed myself together with another 150 attendees. A good event as always with the BizTalk User Group Sweden and great sessions that mostly covered the platform around BizTalk for a change.

The three speakers, Richard Seroter, Stephen W. Thomas and Ewan Fairweather, are three of the five authors of the recently published book Applied architecture patterns on the Microsoft platform, which in turn caused the event to follow the basic chapter layout of the book (a book I will review as soon as I have browsed through my copy).

Day one consisted to a large extent of sessions on the different technologies that are available. SQL Server, BizTalk 2010, AppFabric, Azure and WF 4.0 were covered. Day two had sessions covering scenarios where each of the technologies were used in the solution. On this second day, StreamInsight was used in a presentation as well as the last technology presented at the conference. All sessions got taped and so videos should be up on the net within a few weeks I presume.

A very important lesson learned at the conference was a discussion on the anxiety of BizTalk developers considering all this new technology emerging. The speakers made a strong point that BizTalk is not to be replaced by AppFabric, WF 4.0, StreamInsight, SQL Server functionality and whatever there might be. All this new technology can and will instead be used as a complement to BizTalk in order to leverage functionality that previously was hard or impossible to pull off using solely the BizTalk platform. A good example of this was shown in the StreamInsight session with a vast amount of data being streamed and analyzed in realtime.

All in all, a good two days with the crème de la crème of BizTalkers in the region as well as a few from further away in the world.