ExpressionMaximizer

30 October 2009

A bigger expression shape window is a feature that almost always appears on “next version of BizTalk wish lists”.

Every time Microsoft releases a new version of BizTalk we are all very disappointed that they did not make the expression window resizable or at least bigger.

There are rumors that this is done to discourage developers to write a lot of code in those windows and move to external assemblies with helper classes instead.

Although I agree with that I still think it would be very nice to have a bigger window occasionally.

Like the “Orchestration Variable Retriever Functoid” this was on my “experimental things to do list” for a long time. I never had or took the chance to try it until BizTalk king Stephen W. Thomas announced his competition for the best BizTalk tip or trick.

Of course I want to join this competition so I started coding. Now that it is finished I must admit it has become quite a hack but it seems to work :-) .

Anyway the “ExpressionMaximizer” will be my entry for the competition.

A quick walkthrough:

I have an orchestration with an expression shape containing a lot of code:

orchestration

I double click the expression shape to open it (in normal mode):

normal_expressionwindow

With expression window still open I press CTRL+SHIFT+ALT+M (nice key combination :-) ) and ……:

maximized_expressionwindow

I have a big expression window where I can type many long lines of code!!!!

Everything is back to normal when you close the window and open it again.

Note that you first have to open the expression shape before pressing the key combination.

Want to try it yourself?
(description below is based on Visual Studio 2008)

- Download this zip file and extract it somewhere.
- Click ‘Tools’ –> ‘External Tools…’
- Press the ‘Add’ button
- Type a title, e.g. ‘Expression Window Maximizer’
- Fill in the command text box by browsing to the extracted ‘ExpressionMaximizer.exe’

ExternalTools

- Press the ‘OK’ button
- Select ‘Tools’ –> ‘Customize…’
- Press the ‘Keyboard…’ button
- In the ‘Show commands containing:’ text box type ‘Tools.External’
- Select the correct ‘Tools.ExternalCommandX’ from the list. (You need to find out the correct entry by counting the external tools in the Tools menu).
- Click in the text box ‘Press shortcut keys:’ to set the focus to it.
- Press CTRL+ALT+SHIFT+M
- Click the ‘Assign’ button.

Customize

- Press the ‘Ok’ button.
- Press the ‘Close’ button.

I tried this on ‘Windows Server 2008 R2/VS2008′ and ‘Windows Server 2003 R2/VS2005’ without problems but I still take no responsibility for malformed windows or other disasters :-) After all it is a big hack!

If you’re interested you can find the (VS2008) source code here.


Introducing the BizTalk PowerShell Provider

29 October 2009

Maxime wrote a nice post to introduce our PowerShell Provider for BizTalk. You can find it here.

There is also a link to a great presentation that they (Michel and Maxime) did at the French BizTalk User Group. The presentation is in the French language. For me that means I had to use the translation dictionary a lot :-) .


Updated sample for my article ‘Dealing with base64 encoded XML documents in BizTalk’

28 October 2009

Almost a year ago I published my article on a possible way to deal with base64 embedded documents in XML messages.

Since then I received a lot of emails and comments from people that where unable to get the sample up and running. I must admit there are quite a lot manual steps to get from the downloadable source to a running BizTalk application.

This is why I updated the article. It has links to three downloads now:

I hope this will make life easier for people who want to try it out.


BizTalk Server 2006 R2 SP1 Beta version number not updated

27 October 2009

I just noticed that the BizTalk version number is not updated when you install service pack 1 (Beta) for BizTalk Server 2006 R2.

To bad as I use the version number to quickly lookup what version of BizTalk is installed on a certain (virtual)box. I mainly use the following powershell command to get the version info from the registry:

get-itemproperty -path ‘HKLM:\SOFTWARE\Microsoft\BizTalk Server\3.0′ -name ProductVersion

I have published a version number overview table in the past each time a new version or SP was released:

BizTalk Server version number overview (updated for BTS2K9)
BizTalk Server version number overview (updated)
BizTalk Server version number overview

The table ‘BizTalkDBVersion’ in the BizTalk management database also holds version information for the product and the database. This table is also not affected by the SP installation.

I’m sure this will be fixed in the final version. For now my table looks like this:

Product name Service pack Version number
BizTalk Server 2004   3.0.4902.0
BizTalk Server 2004 SP1 3.0.6070.0
BizTalk Server 2004 SP2 3.0.7405.0
BizTalk Server 2006   3.5.1602.0
BizTalk Server 2006 R2   3.6.1404.0
BizTalk Server 2006 R2 SP1 (beta) 3.6.1404.0
BizTalk Server 2009 (beta1)   3.8.104.5
BizTalk Server 2009   3.8.368.0
     

BizTalk Management Classes Sample

18 October 2009

In my previous post I wrote about the beta of the BizTalk management classes.

Every now and then you need to do some BizTalk management things in code. This is where the classes come in very handy.

Last week I wrote a small sample to show and explain the use of the classes to a co-BizTalker. He was excited about this but told me it would be a good thing if we provide some more sample code. I’m sure we (me and the great people I work with on this project) will come up with a lot more information when we release the final version. For now I will only post this small sample.

It shows that a lot of “BizTalk management work” can be done using only a couple lines of code. Also this is done in a uniform way (using a single API).

This is what the sample does:

  • connect to a BizTalk group (management database).
  • create an application.
  • add a BizTalk assembly (resource) to the application.
  • import a binding file.
  • creates and exports an MSI file from the new application.
  • Starts the application.
  • Resets the BizTalk Host.

Here is the code:

BTSMgmtClasses_sample

As you can see below I only need 8 lines of code to accomplish it. I don’t know how much code this would take when it was done using the “regular” API’s but I’m very sure many more lines are needed.

If you like this please download the beta from codeplex and start using the classes.