Archive for September, 2010

New Blog Home & a New BizTalk Version

Blog Update

Yesterday I found out about the big change Microsoft was making to abandon the Live Spaces blog platform. I had been using this platform for the past three years so I am sorry to see it go. It was definitely not perfect but I found it to have better search engine rankings and it worked fairly well for what I needed. Today I converted my blog over to WordPress so bear with me while I go through a few growing pains. I know of a few issues that I will have to correct:

  • Some of the images are showing up in a limited preview/thumbnail mode. I have started fixing this and should have this all updated shortly.
  • The links from the MSDN forums are no longer correct. I am still working on a great solution for this. If anyone knows of a way to handle this, please let me know.

I anticipate there will be a few other hiccups along the way. Please reply to this post and let me know if you see anything not working correctly. There are a couple improvements to the blogging experience I am excited about with the move to WordPress:

  • Much better extensibility
  • Spam controls – this was a major annoyance on Live¬†Spaces and it was very difficult to manage
  • More designer capabilities

So today i am turning a page on a new blog experience and later this week we will be welcoming the next version of BizTalk being completely released. In my part of the Northern hemisphere the leaves are changing now with Fall so I suppose it is a suitable time for so many changes. ūüôā

New BizTalk Version RTM coming 10/1

If you have been following along with the BizTalk news lately you know that the next major version of BizTalk is due to be released near the end of Q3 2010. Here is the link to the BizTalk server team blog announcing that BizTalk 2010 will be available on October 1, 2010: http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/09/22/biztalk-server-2010-released-for-manufacturing.aspx. The core part of BizTalk server in the developer edition is now being offered for free at http://www.microsoft.com/downloads/en/details.aspx?FamilyID=938102b8-a677-4c20-906d-f6ae472b3a6a&displaylang=en. Perhaps this is a win for those of us who have been requesting a lite or express version of BizTalk for lower cost projects. It is nice to see that the developer edition is being offered which normally includes all of the features of the enterprise edition but with a license that cannot be used for production purposes. I had a few observations on the current status of the release I wanted to make for anyone checking for the latest downloads of BizTalk 2010.

  • The free download of BizTalk 2010 does not include the extension packs such as the adapter pack or accelertors so I am not sure if the license model may have changed with the new free version. If I were to guess, I would anticipate that these will still be included with the free version but they are just not available yet for download. For example, fixes for the issues with the ESBT 2.1¬†made after the beta release has not been posted for general consumption.
  • During the BizTalk 2009 launch, there was a period of time when the documentation had not been completed and people were starting to use the RTM product without all of the MSDN articles being available. It looks like Microsoft learned a lesson last time and has already released much of the BizTalk 2010 documentation. Here is an example of the RTM documentation that was posted with the free BizTalk 2010 developer edition: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=74b202a2-272a-4b27-b7dd-0dced1bead22&displaylang=en
  • At this point MSDN has not been updated with the new downloads so I would expect this to happen right before 10/1. The Connect site that was used for feedback during the Beta is still up but it has not changed much in the last days of the beta.
  • To aggregate a little of the information gleaned from some of the beta bugs and MSDN forums, the BizTalk adapter pack with BizTalk 2010 will be supporting Oracle 11g Release 2 (R2) but will not be supporting any new Siebel versions. This new version information should now be available for the BizTalk adapter pack.

I am excited about the new capabilities of my blog and BizTalk 2010. Stay tuned for more of my BizTalk blog posts. Thanks!

,

Leave a comment

Trying to Rehost the BizTalk Mapper Activity (AppFabric Connect)

Introduction

Recently I was working on a technical question and proof of concept about being able to reuse the BizTalk mapping designer functionality. The goal was to be able to reuse the functionality within a business user application to enable an information worker to create a map. One of my personal goals was to try to do this in an environment that did not incorporate Visual Studio. This is challenging because until recently with BizTalk 2010 there was not really any way (that I know of) to export or hijack the BizTalk extensions from Visual Studio and reuse them in a separate non development environment.

With the BizTalk 2010 beta it has been possible to develop message transforms within the VS 2010 workflow projects once you install the WCF LOB SDK beta. A Windows workflow (WF) activity known as the BizTalk mapper activity shows up in the VS toolbox. A few other articles exist on using this activity, see the following for a good summary: http://seroter.wordpress.com/2010/05/24/using-the-new-biztalk-mapper-shape-in-a-windows-workflow-service/.

I decided that it would be interesting to know whether or not you could work with this activity within a WF rehosted environment because this would provide the ability to reuse the mapper functionality in a partial trust, non VS environment. A WF rehosted environment provides a lighter-weight visual editing environment for a workflow that is either stopped or running.

This post shows what I encountered when trying to rehost and manipulate a workflow that use the BizTalk mapper. Unfortunately I found that in the current beta it is not possible to easily manipulate the BizTalk mapper activity in a rehosted workflow. Upon further investigation, the API for the mapper depends on the presence of Visual Studio and simply compiling a project that references the mapper toolbox activity requires extensive Visual studio references. Hopefully this post will save you some time from trying to do this yourself.

 

Process

To start out with a good basis for the test, I found a blog post which provided a good WF 4 rehost sample. I chose the one at http://msmvps.com/blogs/theproblemsolver/archive/2009/12/23/rehosting-the-workflow-designer-in-wf4.aspx. Thanks to Maurice for this great WF 4 post. Basically this enables you to open an Activity.xaml file for a coded workflow and then view it in the rehost environment with the toolbars at the left like in VS. To add the BizTalk mapper activity I did the following steps:

1. Directly referenced the assemblies relating to the BizTalk Mapper activity. Below I give a little more detail on these:

There are a couple of assemblies related to the beta version of the BizTalk mapper activity, but all of them install into “C:Program Files (x86)Microsoft BizTalk Server 2010Developer Tools” (on a 64-bit¬†system)¬†rather than the typical WCF LOB SDK path of “C:Program FilesWCF LOB Adapter SDKBin”.
  • Microsoft.ServiceModel.Channels.MapGenerator – Creates the cs or vb code for the code behind of the map.
  • Microsoft.ServiceModel.Channels.MapperActivity – WF 4 activity classes, and also includes the type selector form pop up form that generates the BizTalk schemas and default maps.
  • Microsoft.ServiceModel.Channels.MapperToolboxItem – additional packaging that basically wraps the MapperActivity but relies extensively on the VS packaging assemblies.

2. Then I started trying to build the project for the new references because I want to try to manipulate a workflow with the mapper activity already added in and/or add it to a new workflow. To help with this I opened the three assemblies above in Reflector to look at the references. Quickly we see that the MapperActivity assembly does itself rely on Microsoft.VisualStudio.Shell.Interop (v. 7.1 so this is VS 2003) as well as the BizTalk mapper compiler.

If you keep all three of the assemblies from #1 referenced then you have to also reference a couple of other VS assemblies commonly used with VS extensions (obviously the MapperActivity was not meant for use outside of VS):

  • Microsoft.VisualStudio.OLE.Interop
  • Microsoft.VisualStudio.Shell.10.0
  • Microsoft.VisualStudio.Shell.Interop.10.0
  • Microsoft.VisualStudio.Shell.Interop.9.0
  • Microsoft.VisualStudio.Shell.Interop.8.0
  • Microsoft.VisualStudio.Shell.Interop (v. 7.1)
  • System.Drawing (for basic ComponentModel extensibility)

Basically to illustrate some of these dependencies, here are the first and third assemblies in reflector with references shown:

Then here is the second one for the MapperActivity:

You can also see that the MapperActivity relies on EnvDTE (related to VS) and also ole32.dll (unmanaged code).

3. Also add reference to Microsoft.XLANGs.BaseTypes.dll for handling the BizTalk type system and some other essentials.

4. Add code for adding the Mapper activity to the constructed toolbox:

// Add the BizTalk mapper
var bizTalkcat = new ToolboxCategory(‚ÄúBizTalk Activity‚ÄĚ);
var assembliesBTS = new List();

assembliesBTS.Add(typeof(Microsoft.ServiceModel.Channels.MapperActivity.MapActivityDesigner).Assembly);

var queryMapper = from asm in assembliesBTS
from type in asm.GetTypes()
where type.IsPublic &&
!type.IsNested &&
!type.IsAbstract
&& type.ContainsGenericParameters    // Only matches the Mapper activity
select new ToolboxItemWrapper(type.FullName, type.Assembly.FullName, null, ‚ÄúMapperActivity‚ÄĚ);

queryMapper.ToList().ForEach(ti => bizTalkcat.Add(ti));

toolbox.Categories.Add(bizTalkcat);

Conclusion

So after configuring the WF 4 rehost to handle managing the BizTalk mapper activity, the activity shows up in the toolbox and can be added to the workflow editing screen but cannot be effectively managed and configured. Here is a screenshot of the running host with the BizTalk activity and a workflow rehost showing the mapper activity:This is great until you try to configure the BizTalkMapClass via the Edit button on the designer surface or via the property grid and you get an error that the project cannot be found as shown below:

This is because the Mapper activity relies on the EnvDTE project that does not exist outside of VS. I will attempt to do some other workarounds for managing the mapper activity outside of VS but for now it looks like the mapper is restricted to use within VS. I welcome all comments on other approaches to making this work. Also, the code for my attempts so far may be found here: Ben’s SkyDrive public folder

Thanks,

, , , ,

7 Comments