BizTalk is Dead? Long Live BizTalk!

by John Callaway 9. December 2011 10:59

The BizTalk Server team blog sneaked out an announcement yesterday that you might have missed. I caught it due to an RSS feed. BizTalk Server 2010 R2 is coming. Now the question is when, and a better question will they change the name, as they should to BizTalk 2011?

We have a while to wait, no firm dates yet, but since it adds support for Windows Server 8 and SQL Server 2010 (codename Denali) which don’t have announced release dates yet either, that isn’t too much of a surprise. They are saying about six months after those products release. Support for Visual Studio 11 was also part of the announcement.

It doesn’t sound at all earth shattering, more just a bit of a jiggle. It may calm some of the fears as they are frequently bandied about from the title of the article, that BizTalk is a dying breed. Rest assured that QuickLearn will be on the forefront of training for this new product as soon as a beta is available.

In addition to support for the new platforms another point of interest is a change to licensing making it possible to provide BizTalk as a hosted service , and to transfer a license to a hosting provider. This is obviously a step in moving BizTalk into the cloud, a change that has long been planned. We’ll have to see what that means as to whether Microsoft will be a possible provider themselves (a la Office 365 and SharePoint online).

That’s about it for what’s new unless you are interested in IBM host integration there are some adapter improvements that way. For the whole article check out the BizTalk Team blog at http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2011/12/08/biztalk-server-2010-r2.aspx

Until next time, see you in the funny papers.

Tags: , ,

Announcement | BizTalk | News

Automated Deployment and Testing of BizTalk Server 2010 Applications

by Nick Hauenstein 8. December 2010 13:09

Back when BizTalk Server 2009 was released, there was a lot of buzz about the new integrated support for unit testing of schemas, maps, and pipelines, and cleaner support for automated builds driven by Team Foundation Server (TFS). These were definitely welcome additions that made it much easier to enable continuous integration with automated build and testing. However, there were some things missing. In this article, I’ll review the current state of automated build and testing capabilities that exists for BizTalk Server 2010 when using Visual Studio 2010 Team Foundation Server (TFS). I will first examine the items lacking out of the box, and then direct you to community projects that can improve the situation.

When it comes to the built-in unit testing support in BizTalk Server 2009 and 2010, there are still some areas lacking. For example, testing schemas with imports yielded erroneous results, as all of the necessary schemas were not used in validation. Testing pipelines cannot be accomplished purely in memory with the API exposed. There was not really any work done to enable integration and functional testing of orchestrations. Finally, the automated build process did not take into account the necessity for the bits that were compiled to be deployed somewhere for testing -- possibly due to the lack of functional and integration testing support for orchestrations (i.e., there would be no reason to deploy bits that could not be tested anyway).

Thankfully, community efforts filled in most of these gaps for BizTalk Server 2009, and indeed in most cases these community projects preceded the implementation of automated build and testing support in BizTalk Server. Pipeline, pipeline component, and flat-file schema testing was made much more elegant with Tomas Restrepo’s PipelineTesting library. Functional and integration testing of orchestrations was provided for in BizUnit, and automated deployment in preparation for test could be enabled using the bLogical Custom Tasks.

You may have used one or all of these community tools when setting up an environment with BizTalk Server 2009 and Team Foundation Server 2008, and it is still possible to use most of the functionality offered by these in BizTalk Server 2010 and Team Foundation Server 2010. If you have not had any experience with enabling automated testing of BizTalk Server applications, you may benefit from our self-paced online training course covering BizTalk testing strategies.

PipelineTesting Library

The PipelineTesting library is a mature and stable library that has been well maintained and has always remained a step ahead of what was offered out of the box with each version of BizTalk Server. It not only provides a less-clunky API, but a fuller feature set. This is best shown by a short example (although this example does not even get into the depth of what is provided in the PipelineTesting library).

Here is some rough sample code that shows basic usage of the built-in BizTalk Pipeline Testing support:

[TestMethod] 
public void TimeReportFFReceivePipeline_TimeReportFF_OutputValidates() 
{ 
    // Built-in BizTalk Pipeline Testing Support
    // (CON: Must be enabled on pipeline project before compilation) 

    // CON: Must create the pipeline ahead of time 
    TimeReportFFReceivePipeline target = new TimeReportFFReceivePipeline(); 

    // PRO: Can provide a list of input documents without loading them explicitly 
    // CON: Input documents must exist on disk 
    StringCollection inputDocuments = new StringCollection(); 
    inputDocuments.Add(Path.Combine(TestContext.TestDeploymentDir, "TimeReport_3.txt")); 

    StringCollection parts = new StringCollection(); 

    Dictionary schemas = new Dictionary(); 
    // CON: Must reference .xsd file 
    schemas.Add("TestWorkshopApplication.Messaging.TimeReportFF", @"..\..\..\Messaging\TimeReportFF.xsd"); 

    target.TestPipeline(inputDocuments, parts, schemas); 

    // CON: Must locate output messages as files 
    DirectoryInfo testDir = new DirectoryInfo(TestContext.TestDeploymentDir); 
    FileInfo[] outputList = testDir.GetFiles("*.out"); 

    Assert.IsTrue((outputList.Length > 0), "No outputs for pipeline found"); 

    foreach (FileInfo file in outputList) 
    { 

        /* Additional testing of message content */ 

    } 
}

Now compare that with a code performing roughly the same test using the PipelineTesting library:

[TestMethod] 
public void TimeReportFFInPipeline_TimeReportFF_OutputValidates() 
{ 

    // PipelineTesting Library Pipeline Testing Support 

    String sourceFile = Path.Combine(TestContext.TestDeploymentDir, "TimeReport_4.txt"); 

    // PRO: Can compose a pipeline at runtime 
    FFDisassembler ffDasm = Disassembler.FlatFile().WithDocumentSpec(typeof(TimeReportFF)); 
    ReceivePipelineWrapper target = Pipelines.Receive().WithDisassembler(ffDasm); 
    target.AddDocSpec(typeof(TimeReportFF)); 

    MessageCollection result; 

    // CON: Have to manually load input document 
    // PRO: Input document can exist only in memory 
    using (var readStream = File.OpenRead(sourceFile)) 
    { 
        IBaseMessage msg = MessageHelper.CreateFromStream(readStream); 
        result = target.Execute(msg); 
    } 

    Assert.IsTrue(result.Count > 0, "No outputs found from flat file pipeline"); 

    // PRO: Raw IBaseMessage instances of outputs are available in memory 
    foreach (IBaseMessage msg in result) 
    { 

        /* Additional testing of message content or context */ 
    } 

}

It actually doesn't take too much effort to get this library working with your BizTalk Server 2010 solutions, and in turn with Team Foundation Server 2010. You will have to upgrade the solution to the Visual Studio 2010 format, and re-reference the PipelineObjects library (exists under the \Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies folder). If you don't have NUnit installed, you can exclude the Test project from the build. Once you have it built, you're good to start writing tests against your BizTalk Server 2010 artifacts. When automating the build and test with Team Foundation Server, you will need to remember to include the .dll somewhere within source control.

BizUnit 3.1

BizUnit is a framework for performing automated integration and functional testing of BizTalk solutions. It takes a black-box approach, and requires that all artifacts are built and deployed before testing commences. If you already perform manual end-to-end testing of your BizTalk applications, you could likely benefit greatly from BizUnit over time. It provides a huge library of pre-built test steps (e.g., start BizTalk host, copy a file, wait for a file, execute a database query) that have the net effect of saving you a lot of time. Test cases, which are combinations of test steps, exist in a declarative XML format that are processed by the BizUnit class which can be invoked from within your MSTest or NUnit test assemblies.

Getting BizUnit working for BizTalk Server 2010 is not necessarily a very easy process. Before you even begin, you must consider that there are two versions currently available. The most recent version is BizUnit 4.0 Beta, which completely changes the test case format (to use XAML), and looks to be the way of the future. However, it does not look like that version has been updated in quite some time, so it is unclear when a final release will be ready. The other version available is BizUnit 3.1, which is stable and has a fully developed library of test steps along with full documentation. For the sake of this blog posting, we will go forward with 3.1, and examine some of the issues you will encounter.

This is another instance in which you will have to upgrade the solution to the Visual Studio 2010 solution file format. From there, you will notice that the solution has a project for each category of test step (e.g., BizTalk steps, LoadGen steps, MQ Series steps, Outlook automation steps, etc...). You can exclude the project for any type of step that you will not be using. Then for each of the “Steps” projects, you will need to re-reference assemblies, so that the latest versions are referenced. You might notice at this point, that the BizTalkSteps project has a dependency on the PipelineTesting library already discussed. You will definitely want to include the version that you built against the BizTalk Server 2010 binaries here. This is another place where you will need to remember to include the .dll's for both the BizUnit runtime and the steps that you will be using within source control, or simply install BizUnit on each build server if that makes more sense in your environment.

bLogical Custom Tasks

With BizTalk Server 2009, it became possible to automate builds of BizTalk applications without installing Visual Studio on the build server (though it is required to install the Project Build Component from the BizTalk installation media). It was also possible with BizTalk Server 2009 to automate tests and, with the help of community tools, automate integration and functional tests. However it was still not possible, using only out-of-the-box functionality, to include deployment as part of the build. The custom MSBuild Tasks for BizTalk by bLogical were developed to add the missing deployment step to the automated build process. Unfortunately, there are a few issues that still need to be overcome for these to work with Team Foundation Server 2010.

First, the easiest problem to deal with is in the GacHelper.cs class within the project:

namespace Blogical.Shared.Tools.BizTalkBuildTasks.Internal
{
	public class GacHelper
	{
		#region Private Fields
		const string ToolName = "bin\\gacutil.exe";
		#endregion
This path gets concatenated with the path to the .NET Framework SDK to resolve the full path to the gacutil tool. Unfortunately, this will reference the old gacutil tool. For .NET 4 assemblies, the new tool path should be "bin\\NETFX 4.0 Tools\gacutil.exe".

The second hurdle isn't so easily solved. There is a dependency, mainly in the internal TeamBuildTask base class, on classes within the Microsoft.TeamFoundation.Build.Proxy namespace. This has been obsoleted, and no longer appears in the 2010 version of the assembly. This means that, at least for now, you will now have to provide your own solution for these small missing pieces in the automated build/deployment process. Post a comment if you have found an alternative solution, or keep watching this space for updates on this.

Summary

Using BizTalk Server 2010, you can still benefit from the automated build and testing capabilities released with BizTalk Server 2009, and most of the community solutions developed to enable continuous integration. There are a few steps necessary to get everything working and setup, and a few missing pieces that you will have to build yourself, but the end result is beautiful.

Also, bear in mind that Team Foundation Server is not just about source control and it's not just about automated build or testing. It's also about issue tracking, project management, and reporting. If you are paying for a license, make sure that your organization is taking full advantage of it -- especially on your BizTalk Server integration solutions. Be sure to check our new collection of instructor-led training on Application Lifecycle Management using Visual Studio 2010 and Team Foundation Server 2010.

BizTalk Server 2010 Released – Developer Edition Now Free

by Nick Hauenstein 24. September 2010 16:24

Microsoft has just released BizTalk Server 2010, and it is now generally available! Along with this release comes an updated licensing structure that will be a relief for consultants, and companies managing multiple BizTalk environments. While the cost of the Enterprise edition has increased, the cost of the Developer edition has been eliminated. The Developer edition includes the full capabilities of the Enterprise edition, with the limitation being only that you cannot use it in production.

The pricing and licensing page sums this up saying:

Note: Many customers who deploy BizTalk Server implement separate development, testing, and production environments for their BizTalk Server 2010 solution. For the development and testing environments, you can use the free download of the BizTalk Server Developer Edition.

For the production environment, you need a valid processor license of BizTalk Server 2010 Enterprise, Standard, or Branch Edition for each processor on which you install an edition of BizTalk Server 2010.

I applaud this move by Microsoft, as it could encourage a new generation of developers to download and experiment with this powerful platform. This is a move that could drive adoption while at the same time potentially lower the TCO for those organizations managing multiple environments. Given the nature of BizTalk Server, I trust that this will not result in an equivalent of Eternal September for the BizTalk community, but don’t quote me on that remark.

To further help out developers that are new to BizTalk Server in general, we are offering a major discount on our BizTalk Developer Fundamentals online course. Simply use promo code BT2010 when you register, and you will receive $295 off a self-paced registration. This offer expires at the end of September, so act fast!

Finally, go and get BizTalk Server 2010 while it's still cached at a CDN server near you!

Tags: , ,

BizTalk | Blog | News

Are You Ready for BizTalk 2010?

by Nick Hauenstein 16. September 2010 12:00

The next major release of BizTalk Server is just around the corner. Microsoft has had some of the new features brewing since before BizTalk Server 2009. Others have been long sought after functionality that have yielded many third party components to fill the gap. In an industry where change is always on the horizon the one thing that remains constant is the question of readiness. Are you prepared for the launch of BizTalk Server 2010?

Let’s drill into some of the new features to find out what it can provide your organization.

Enhanced BizTalk Mapper

imageOne of the features, that will stand out the most as you open up Visual Studio 2010 to create your first new BizTalk Server 2010 project, is the new and improved BizTalk Mapper. New features include:

  • Ability to search a map for a given schema node, or functoid
  • Ability to cut, copy, and paste functoids and links between maps and pages
  • Cleaner display of map links based on how related they are to schema nodes within the view
  • Automatic highlighting of links and functoids related to the active selection
  • Automatic scrolling into view of links and functoids related to the active selection
  • Simplified configuration UI for functoids (e.g., the scripting functoid has a single tabbed window with which you can fully configure the connections and the script)
  • Indicative match functionality that suggests nodes to link

These features and others make dealing with large maps, re-using existing maps, and creating new maps a much more pain free experience. Many of the features the new BizTalk Mapper offers derive from a version of the BizTalk Mapper demoed at PDC in years past – they have more than delivered on what was already demonstrated.

Updated Trading Partner Management (TPM) Capabilities

imageAnother fairly major change within BizTalk Server 2010 is the way in which Parties are configured. Previously, if you had a party with whom you interacted with in multiple ways, there was not a clear way to configure and logically categorize those interactions within the Admin console. BizTalk Server 2010 solves this problem by bringing in the concepts of Business Profiles, and Trading Partner Agreements.

A Business Profile is a singular role that a trading partner could play, or a singular instance of that partner. For example you could have a trading partner that at sometimes will be a vendor, and at other times will be purchasing from your business. Those two roles would become two separate Business Profiles attached to the same party. You could also have a trading partner that has both a US and European division, those could also become separate profiles. Each profile also has related identity and protocol settings that can be configured.

A Trading Partner Agreement is a definition of how two profiles interact, including the selected protocol settings for each side of the communication.

Managing parties in this way still enables rapid change, but also allows for logical organization and consistency for those partners who interact in multiple ways with your enterprise.

Adapter & Integration Changes

Since BizTalk Server 2009, and even somewhat earlier, we have seen BizTalk adapters in a slow but steady migration over to WCF counterparts. BizTalk Server 2010 continues in this path as the SQL adapter finally rests in peace. The WCF-SQL adapter serves as its replacement (alternatively WCF-Custom using the sqlBinding binding).

In a similar turn of events, the SOAP adapter has also been deprecated in this release, and with it the BizTalk Web Services Publishing Wizard.

This slow migration to WCF-based adapters has not stopped the product team from making key updates to existing adapters however. The FTP adapter has been updated to support both FTPS (not yet SFTP), and read-only FTP locations. This functionality has been long sought after, and a few third party components had been filling this gap. That will no longer be necessary.

 

BizTalk Server Settings Dashboard

imageThis new feature is not quite as glamorous as some of the others, but is still a huge improvement. The BizTalk Server Settings Dashboard is a new UI for configuring the key performance, throttling, and tracking settings of your entire BizTalk group while offering fine grained control all the way down to the Host Instance level. It combines settings that had previously been strewn about in the Admin Console, the registry, the BizTalk configuration file, and the configuration database, into a single logically organized UI.

Further, it allows you to import/export these settings for transfer between environments (even when the naming of the hosts and host instances does not match the original environment. This is going to be a boon for controlled performance testing, and something to keep in your back pocket.

Updated Platform Support

This release of BizTalk Server will no longer be supported on Windows Server 2003. Instead the minimum requirement will be raised to Windows Server 2008 with SP2, and it will also support running on Windows Server 2008 R2. If you’re running it for development purposes, it will also support both Windows Vista with SP2 and Windows 7 on the desktop OS side of things.

For development you will now be using Visual Studio 2010 when dealing with BizTalk Server. Visual Studio is, by far, Microsoft’s best IDE to date. I was personally hesitant at first given its whimsical color scheme, however shallow that may be, but the productivity gains ultimately sold me – that, and the fact that it even runs perfectly happily on my netbook.

If you’re not running SQL Server 2008 yet in your environment, you will be. BizTalk Server 2010 supports both SQL Server 2008 SP1, and SQL Server 2008 R2.

How to Obtain BizTalk Server 2010

 

 

If you want to start diving into BizTalk Server 2010 now, you can find the link to download the Beta at Microsoft’s BizTalk Landing Page.

QuickLearn also offers a class on BizTalk Server 2010 aimed at developers who would like to update their skills to Microsoft’s latest offering. A preview of that class, and our new self-paced learning environment, can be accessed through the link on the QuickLearn Online Anytime page.

Tags: , , , , , ,

BizTalk | Blog

Want a Preview of BizTalk 2010?

by Monique Bulette 10. August 2010 11:35

Get sneak peak of QuickLearn’s BizTalk Online Anytime Training and learn about new features in BizTalk 2010 including:

  • Enhancements to the BizTalk Mapper
  • Adapter and Integration Changes
  • Improved Trading Partner Management
  • BizTalk Server Settings Dashboard
  • New OpsMgr Management Pack
  • Updated Platform Support

See all of QuickLearn’s BizTalk Training Courses


kick it on DotNetKicks.com

Tags:

BizTalk | Blog | News