.NET 3.5, Download, LINQ

LINQ Material

The presentation made available for download through this post is in swedish. The code however is “international”. First of I would like to list what I think are two of the best getting started with LINQ resources available online.



With that said, the material provided here is the LINQ presentation and demo code that I used for the LINQ presentation I held.


Presentation: The mechanics of LINQ.pptx (in swedish)
Code: linqdemo.zip

BAM, BizTalk, Download

BAM Poster available at Microsoft Download

The BizTalk Team announced that a new poster, the BAM poster, will see the light of day. I really like the posters that have been released as companions to the BizTalk Server documentation. I’m not really the graphical guy, at least not when it comes to creating graphics, but that doesn’t stop me from being just as critical as the next guy when it comes to reviewing graphics created by others 😉


For something that is said to “provide an overview of the entire BAM life cycle”, and since it contains other types of data flow, I would have liked to see something about partitioning and archiving. I see that as an important advantage of BAM, to get an thought through process for data handling out of the box. At least, that’s the story I would have added on top of what is in the poster if I would be explaining BAM to someone. Or is that to low level?

.NET 3.5, BizTalk, Download, LINQ

LINQ in BizTalk – Follow up

I’ve previously posted my ideas about using LINQ in BizTalk. At that point it was just theories, and following the links in the comments section of that post I wasn’t the first to have them. Thanks to the red bits/green bits approach BizTalk Server can use LINQ today by using Visual Studio 2008 side-by-side with Visual Studio 2005. This post provides a working sample that does just that – uses LINQ in BizTalk by utilizing a helper assembly, built using Visual Studio 2008 and the .NET Framework 3.5, from a BizTalk Server 2006 R2 Orchestration (built using Visual Studio 2005). If you do have both Visual Studio 2005 and 2008 available, and this doesn’t conflict with the rules of engagement you have as far as your environment goes, I think it’s worth looking at.


The sample consist of the following parts:




  1. A library project named LINQHelperLibrary, with a method that takes in a XLangMessage, extracts the stream, wraps the stream in an XmlReader and feeds that into the constructor for an XElement. Using that XElement a LINQ to XML statement is performed to extract the totalt amount of a Purchase Order document. This library is built using Visual Studio 2008 and the .NET Framework 3.5 compiler.


  2. A BizTalk project named BizTalkLINQ, that contains a generated xsd schema and a very simple orchestration with an expression shape that calls the LINQHelperLibrary and passes in the message, receives the response and outputs a Trace.WriteLine. This project has a reference to LINQHelperLibrary as well as (an explicitly added) reference to System.Xml.Linq.

The sample requires the following:




  • BizTalk Server 2006 (I used R2)


  • Visual Studio 2005


  • .NET 2.0 and .NET 3.5


  • I am including the dll built using Visual Studio 2008, but if you wan’t to build it yourself you’ll need Visual Studio 2008.

To run the sample do the following:




  1. GAC LINQHelperLibrary.dll. (If you want to build it yourself do so using Visual Studio 2008 first)


  2. Build and Deploy BizTalkLINQ.


  3. Configure the orchestration by assigning it a host instance, a receive and a send port (use the XML pipeline).


  4. Feed a Purchase Order document into the Receive Port. A sample file is included in the sample (in the BizTalk LINQFileDrop folder)  – it originates from Sample XML File: Purchase Order in a namespace.


  5. Optionally display the value returned by the helper assembly by using DebugView while it runs. If you don’t there really isn’t muc to see…

Note: This isn’t a LINQ to BizTalk implementation – implementing a provider for BizTalk is a totally different matter, this just uses LINQ to XML from within BizTalk.


Download: biztalklinq.zip

BizTalk, Download, Messaging, Pipeline Components

Pure Messaging Acknowledgements – Follow up

This post is a follow up to my previous post Delivery Notifications outside Orchestrations – a pure Messaging approach. The sole reason for this is to provide a downloadable demo and a walkthrough of that. The demo features a solution with one pipeline component and one passthrough pipeline using the component. It also contains a bindings file to configure the ports needed. Like I said in my first post, there really isn’t much to it, but here it is…and this is how you get it running:






  1. Build Blogical.Shared.PipelineComponents.


  2. Copy Blogical.Shared.PipelineComponents.dll to <biztalk_install_dir>Pipeline Components and add it to the GAC.


  3. Build and Deploy Blogical.Shared.Pipelines. By default it deploys to the BizTalk Application AckRequired.


  4. Open the BizTalk Adminitration Console and import the AckRequired.Bindings.xml file in the solutions root folder. This will give you one receive port with one receive location

    and two send ports.


  5. Configure the FILE adapter settings on the ports.


  6. Drop a file for the AckRequired Receive Port.


  7. Notice the file that goes out through the send port and the ACK that goes out through the other send port.


  8. For more information read the original post and explore (what little there is) of the sample.

Blogging, Download, General

How do you track the latest Microsoft Downloads

Do you ever wonder how alot of bloggers seems to know when downloads become available on the Microsoft Downloads site? And blog about it almost instantly. I am not a download chaser myself, mostly because I don’t have the stamina to check up on the latest news often enough. And to be clear, I think a simple blogpost about an available download that might interest the audience of the blog is a perfect way to make people aware of the download becoming available. In fact, an RSS feed over latest downloads is exactly what I’m missing at the Microsoft Downloads site. Unfourtunatly, even in the new Silverlight version, Microsoft doesn’t provide it. For now the only thing you can do at the site is to use the advanced search features to look for recent additions. For example:



You could sign up for the weekly download notifications newsletter, but it’s not nearly as useful and doesn’t allow you to receive truly targeted conent.


Luckily, I’m not the first to miss an RSS feed over latest downloads, this feed will keep you up to date with the latest downloads. It won’t let you define keywords like BizTalk, but you can live without that… As far as I know, it’s not an official feed, and not connected to the actual download site, and as such it can at times be a bit (hours to days) behind on the very latest downloads just released.