New webcasts in the BizTalk Light and Easy Webcast Series!

View the latest webcasts in the webcast series from BizTalk MVPs, including BizTalk 2010 and Windows Azure, BizTalk and AppFabric Cache Parts 1 and 2, Calling Business Rules from a .NET Application, Tracking Rules Execution in a .NET Application, Publishing
a Business Rules Policy as a Service, Better BizTalk Testing by Taking Advantage of the CAT Logging Framework, and Integration to SharePoint 2010 Parts 1 and 2.

BizTalk 2010: Talking the REST language

As you may/may not know native Restful support is a little lacking in BizTalk 2010.

A ’little’ massaging is needed.

By plugging in a couple of classes into the WCF stack, BizTalk sits in the middle
quite nicely.

Netin
Mehrotra
from MS has come to the rescue – he provides a great walk through
article and sample code to boot.

Here’s the REST
SAMPLE CODE

Here’s the REST
ARTICLE

Enjoy guys.

The alternative is to create your own WCF Service in Windows Server AppFabric hosted
in IIS and then you’ve still got the problem of ’how’ to talk to BizTalk.

Choiceschoices 🙂

Blog Post by: Mick Badran

Composite Applications

It has been a long time since my last blog post.  It certainly hasn’t been for a lack of content but it is amazing how fast time flies when you are busy.  I have been spending a lot of time lately working on composite applications and will be posting a number of entries around this topic.

One of the first questions that people ask is what is a composite app? 

Composite apps can take on many forms and use many differing technologies.  Many times people will talk about composite Apps and will only be referring to the UI tier.  While the concept of a UI composite can be compared to a mashup (a UI that combines publically available web based services to create a meaningful combination of information to a user) a UI composite is built to use business sources – in many scenarios these sources (assets) already exist within the organization from previous application development efforts. 

A composite app can also refer to just the middle tier as well.  Many companies have spend a lot of time and money over the past many years building out SOA services.  A composite app can consist of orchestration services that draw on the functionality of these different services.  One thing to keep in mind however, is that a composite app is not make a SOA architecture.  Instead they they will build on top of the work that has already been done to create a SOA architecture. 

The idea of a composite app is to build upon existing software assets to quickly bring data to consumers in new way. 

Many of the articles and blogs on this subject talk a lot around the UI tier.  While that is a very important part of a composite application, I am going to spend time over the next few posts talking about composites at the middle tier.

There is a very good all-up article titled What Are Composite Applications from Atanu Banerjee where he walks through the full composite application stack.  In this article he outlines three steps that a solution architect must do to design a composite application.  Those things are to:

  • Choose a composition stack. Pick one or more containers from each tier, and a set of component types that are deployable into those containers.
  • Choose components. Define the repository of assets that must be built from this set of component types, based on business needs.
  • Specify the composite application. Define the ways in which those assets will be connected, to provide a particular cross-functional process. The platform should enable these connections to be loosely coupled.

Each of these things are required so that the consumer can get the most benefit.  Over and above this, the organization should start to benefit by realizing faster time-to-benefit turnaround as well as faster time-to-deployment.  These two, along with exposing existing LOB data are the three driving factors that are making the idea of composite applications so popular.

In my next several posts, I will cover some of the technical choices, how to bring bridge between services that live in BizTalk and services that live in AppFabric, and some of the lessons learned.

Blog Post by: Stephen Kaufman

Fixing up Configurations in BizTalk Solution Files

Just a quick one this, but useful for mature BizTalk solutions, where over time the configuration settings can get confused, meaning Debug configurations building in Release mode, or Deployment configurations building in Development mode. That can cause issues in the build which aren’t obvious, so it’s good to fix up the configurations.

It’s time-consuming in VS or in a text editor, so this bit of PowerShell may come in useful – just substitute your own solution path in the $path variable:


$path = ‘C:\x\y\z\x.y.z.Integration.sln’
$backupPath = [System.String]::Format(‘{0}.bak’, $path)
[System.IO.File]::Copy($path, $backupPath, $True)

$sln = [System.IO.File]::ReadAllText($path)

$sln = $sln.Replace(‘.Debug|.NET.Build.0 = Deployment|.NET’, ‘.Debug|.NET.Build.0 = Development|.NET’)
$sln = $sln.Replace(‘.Debug|.NET.Deploy.0 = Deployment|.NET’, ‘.Debug|.NET.Deploy.0 = Development|.NET’)
$sln = $sln.Replace(‘.Debug|Any CPU.ActiveCfg = Deployment|.NET’, ‘.Debug|Any CPU.ActiveCfg = Development|.NET’)
$sln = $sln.Replace(‘.Deployment|.NET.ActiveCfg = Debug|Any CPU’, ‘.Deployment|.NET.ActiveCfg = Release|Any CPU’)
$sln = $sln.Replace(‘.Deployment|Any CPU.ActiveCfg = Debug|Any CPU’, ‘.Deployment|Any CPU.ActiveCfg = Release|Any CPU’)
$sln = $sln.Replace(‘.Deployment|Any CPU.Build.0 = Debug|Any CPU’, ‘.Deployment|Any CPU.Build.0 = Release|Any CPU’)
$sln = $sln.Replace(‘.Deployment|Mixed Platforms.ActiveCfg = Debug|Any CPU’, ‘.Deployment|Mixed Platforms.ActiveCfg = Release|Any CPU’)
$sln = $sln.Replace(‘.Deployment|Mixed Platforms.Build.0 = Debug|Any CPU’, ‘.Deployment|Mixed Platforms.Build.0 = Release|Any CPU’)
$sln = $sln.Replace(‘.Deployment|.NET.ActiveCfg = Debug|Any CPU’, ‘.Deployment|.NET.ActiveCfg = Release|Any CPU’)
$sln = $sln.Replace(‘.Debug|.NET.ActiveCfg = Deployment|.NET’, ‘.Debug|.NET.ActiveCfg = Development|.NET’)

[System.IO.File]::WriteAllText($path, $sln)

The script creates a backup of the solution file first, and then fixes up all the configs to use the correct builds. It’s a simple search and replace list, so if there are any patterns that need to be added let me know and I’ll update the script.

A RegEx replace would be neater, but when it comes to hacking solution files, I prefer the conservative approach of knowing exactly what you’re changing.