A few issues

Nov 19, 2009 at 11:05 AM
Edited Nov 19, 2009 at 11:13 AM

Hello,

in the source repo it seems that code for EndpointSystems.OrchestrationLibrary.dll is missing.

Also, it seems that your application requires Microsoft.BizTalk.BRMAControls.dll to be available locally.

Notice that you compiled your app with the "Any CPU" platform flag and on x64 platforms it makes ShoBiz run as a 64-bit app ... unfortunately the ExplorerOM class that you are using does not run in 64-bit apps. You should recompile all your assemblies with the "x86" platform flag to force ShoBiz to always run as a 32-bit application.

Finally, I found an issue in the EndpointSystems.OrchestrationLibrary.dll for which you are not unfortunately providing source code ... but it looks like in method SaveOrchestrationImage the following instruction

o = new BtsOrch(appName, orchName);

is pulling up an orchestration that has the property ViewData null and when you call o.ViewData.OuterXml an exception is obviously thrown.

If you are willing to provide me with the source code for EndpointSystems.OrchestrationLibrary.dll I will get back to you with further details as to what is failing.

 

Thx.

Stefano

 

Coordinator
Nov 19, 2009 at 6:54 PM

Hello Stefano,

I just checked in a source code update with the following changes:

  • The solution and all projects build exclusively to 'x86'; all 'Any CPU' references were removed.
  • Microsoft.BizTalk.BRMAControls.dll and all other dependencies were moved to a bin\ folder at the directory root. Microsoft.BizTalk.BRMAControls.dll, by the way, can be found in the %BizTalkInstallDir%\Tracking\Control directory. There are a couple of assemblies in the bin\ folder that can only be found by digging through the GAC folders; I don't recall which ones specifically at the moment, but in the next release I'll document that a little better.
  • The unit test project no longer does a clean sweep of C:\temp.

The OrchestrationLibrary wasn't included because I had planned on making that its own separate source control project, which I never got around to actually deploying; I can't . I don't have the source code with me at the moment but I'll try to get that posted as soon as possible.

Speaking of next release, I just recently started working on a more MSBuild-friendly version of this project, one that would eliminate the UI entirely (something I'm not too fond of anyways - the window does not refresh and I'm not wild about its layout either). As part of this next version, I'm also building a MAML library for Sandcastle documentation that will better facilitate automated document generation. It's a bit time consuming, but I'm hoping to have that done (and published @ codeplex) soon. Once I've got the MAML library finished I'll start rebuilding ShoBiz to use it, the Orchestration Library, Sandcastle, and SHFB as a MSBuild-style component - maybe with a UI that just configures and runs the MSBuild target...

I'll send you a message through CodePlex once I've posted the Orchestration Library.

 

Thanks for letting me know about the issues!

Lucas

Coordinator
Nov 22, 2009 at 10:55 AM

Stefano,

 

You can now download OrchestrationLibrary at http://orchestrationlibrary.codeplex.com

Lucas

Nov 24, 2009 at 1:26 PM
Edited Nov 24, 2009 at 1:29 PM

Hello again Lucas,

with the provided code I debugged doc generation for the BTS app that was previously failing (BTW, it looks like the EndpointSystems.OrchestrationLibrary project is not in synch with the ShoBiz app ... putting everyting in a single solution does not compile unless you do some code editing).

Anyhow, what came out of my debugging session is that in method GetAssembly you are querying table "adpl_sat" for the "properties" column and pulled out the value for key "SourceLocation" from the returned XML you use it to load the orchestration assembly. Unfortunately the orchestration assembly that you are failing to load was installed by an MSI package which afterwards removed the assembly from the source location. The result of this is obviously that the assembly fails to be loaded. May I suggest you to simply load the orchestration assembly from the GAC .... being a BTS artifact the assembly must for sure be in the GAC!

Let me know when you fix this issue and I'll retest your app.

Thx,

Stefano