BizTalk Software Factory v2.0 released

I’m very happy to announce that today the BizTalk Software Factory v2.0 is released. This version is updated to work with BizTalk Server 2009.

The v2.0 release contains all functionality currently in the version suitable for BizTalk Server 2006 development.

It took a while to convert the BSF and make it work with BizTalk Server 2009. All kinds of small things are different in Visual Studio 2008, BizTalk Server 2009 and the Guidance Automation Extensions and Toolkit. One example is where the BizTalk application name is stored, namely in the btproj.user file. It was hard to get that right but D. Dijkstra found a way to do it.

To use the BSF v2.0 you need the following:

Optionally you can use nUnit 2.5.2 if you prefer nUnit over Visual Studio Unit Testing. The BSF v2.0 is capable of using both.

I would like to encourage you to take a look at it and please let me know what you think!

Getting started with the BizTalk ESB Toolkit 2.0

While I’ve worked with the exception handling from the ESB guidance 1.0 and read quite a lot about the ESB Toolkit 2.0, I thought I should take a closer look at the ESB Toolkit 2.0 and get my hands dirty.

The first thing you should do is download it 🙂 and that can be done here. Before you install the toolkit, make sure the comply to the prerequisites:

  • Microsoft Windows Server 2008 or Windows Server 2003 (except Web Editions) operating system
  • Microsoft .NET Framework 3.5 SP1
  • Internet Information Services (IIS) 7.0 with IIS 6.0 extensions or IIS 6.0 (used for Web services and the ESB Management Portal)
  • Microsoft SQL Server 2008 or Microsoft SQL Server 2005
  • Microsoft BizTalk Server 2009 Enterprise Edition, including Business Activity Monitoring (BAM)
  • Microsoft Visual Studio 2008 SP1 (required on development computers)
  • Microsoft Chart Controls for Microsoft .NET Framework 3.5
  • Some are quite obvious, but for example without the Chart Controls the installation will fail.

    After downloading the MSI you can double click it to unpack the files, change registry settings and install and register for example the Itinerary designer in Visual Studio.

    If you go to the folder where the toolkit is installed (by default in the Program Files folder), you’ll find some more MSI’s. To do a basic setup, launch the BizTalk Server Administration and import  the ‘Microsoft.Practices.ESB.CORE.msi’.

    Now BizTalk is setup with a new application “Microsoft.Practices.ESB”, containing several orchestrations, send ports and receive ports to support on ramps and exception handling.

    Ok so far so good. The ESB in BizTalk is setup, but the toolkit relies heavily on WCF services and they aren’t setup yet. To do this use the “ESBConfigurationTool.exe”. It is located in the ‘bin’ folder of the location the ESB Toolkit 2.0 is installed. You can setup the both the Exception Management database and webservice and the ESB core components there. The Core components are the Itinerary Database and the core webservices like the resolver, transformation and itinerary services.

    So we’re ready to start with the so called itineraries but what are they? In chapter 11 of the book SOA patterns with BizTalk Server 2009 Richard Seroter writes: “An itinerary is a set of instructions which outline a sequence of services that the bus should perform on a given message”. Another interesting thing is that they “attach to the message itself and do not require any deployment to the BizTalk environment”.

    Ok, we now know what they are but how does it work? The key thing is that the itineraries are attached to the message when it enters BizTalk. This is done by a pipeline component in the on ramp. Then the steps in the itinerary are executed one by one and after every step the message is send to the messagebox again. This makes itineraries a very decoupled way of messaging because BizTalk is unaware.

    So far the getting started. For itinerary design and tooling also this video by Brian Loesgen is worth watching.

    Getting started with the BizTalk Deployment Framework 5.0

    For the next version of the BizTalk Software Factory(BSF) also the BizTalk Deployment Framework(BTDF) must be converted to the latest version, 5.0 in this case.

    From blogs and reviews I understood that the BTDF 5.0 was seriously simplified, something I like in advance. 🙂

    So I started by downloading and installing it on my virtual PC environment. It is installed in the Program Files folder, where also some samples are installed. These samples were the basis for me.

    Like is said on Codeplex with this 5.0 beta release, the documentation is sometimes outdated which makes it a bit harder to get started.

    The best thing you can do after installing is launch the sample. That is the easiest way to find out how it works. You’ll find a toolbar in the Visual Studio IDE which supports several deployment and undeployment options. If you build and deploy the sample application, it is first stopped and undeployed if it was already deployed and then redeployed, bindings applied and started. That’s about it! You can play with the options to generate MSI’s for server deployment, but that is out of scope for this post.

    So what do actually you need to get started? The best way is to copy the “BizTalkSample.Deployment” folder from the “BizTalkSample_BT2009” project to your own project. This contains everything you need.

    • <project>.Deployment.btdfproj
    • BuildDebugMsi.bat
    • BuildReleaseMsi.bat
    • InstallWizard.xml
    • UninstallWizard.xml
    • PortbindingsMaster.xml
    • EnvironmentSettings folder with SettingsFileGenerator.xml

    The <project>.Deployment.btdfproj contains the deployment script where you specify all project names, artifacts to deploy, how to handle bindings and a lot of other things. Not all possible elements are in the sample, take a look at “BizTalkDeploymentFramework.targets” to find all elements you can use.

    The debug/release build files just kick the process to get the build started.

    The install and uninstall wizard files can be used to specify the user interface you see when you deploy or undeploy from the start menu. This user interface is only shown for server deployments via the MSI.

    For now the <project>.Deployment.btdfproj, the PortbindingsMaster.xml and the SettingsFileGenerator.xml are the most important files.

    With BizTalk deployment there is always the question about how to manage your bindings. These files are hardly readable so it is easy to make mistakes. The BTDF contains a SettingsFileGenerator.xml where you can specify values to show up in the bindings. When the deployment is started, the settings are parsed and merged with the PortbindingsMaster to a file called ‘PortBindings.xml’. This file is used to import bindings to the just deployed application. If you don’t need to parse anything, you can instruct the BTDF to use the PortbindingsMaster file instead of the Portbindings file by setting the "<UsingMasterBindings>” element to true.

    With most of the defaults in the sample btdfproj file you can get started or easily figure out what they should be. To conclude this short getting started: the sample can get you up to speed very fast and you’ll have a deployment process in place in minutes.

    jQuery is awesome!

    In my current project I’m working on a BizTalk application and some user interface built in ASP.NET MVC. As a BizTalk consultant my Javascript skills aren’t the best in the world but for the user interface I had to create a view with a “tree control” look.

    From my early days as web developer I remembered to do that using DIV tags and Javascript to hide and show parts of the tree. Since that is a while ago I prepared myself for some (for me) hard core HTML and Javascript.

    This year I visited the Dutch DevDays and there I saw Jan Tielens doing amazing things with jQuery, so I decided to give it a go.

    I was very happy to find out someone actually wrote a TreeTable plugin using jQuery, but how easy would it be to implement it?

    It took me about 15 minutes to get this working and it looks good!

    Awesome!