Tuesday, March 27, 2007

Freeware SOAP Testing

I've been searching for valid freeware SOAP testing tool for a time.


I've tried SOAPSonar but it was not able to set request timeout (at least in the version that I've tried out).


I find SOAP UI very useful. It has some interesting features like:


  • Inspect and Invoke

  • Implement and Validate

  • Functional Test

  • Load and Stress Test

Here's application screenshoot:

Wednesday, March 21, 2007

BizTalk 2004/2006 versioning

The original request of a client was: "We want our partners connecting in staging and production environment but on the same BizTalk servers"

I've started searching about this matter, but nothing found to help, so I've started thinking. Finally a solution to the problem was found.

Scripts were developped for automatic versioning, build and deployment in test, preproduction and production environment.

What do you need to successfully version a set of schemas, pipelines, pipeline components, orchestrations etc. :

  1. Schema versioning:
    • XML namespace must be in some way "dynamic" (eg. http://mynamespace.com/__ASSEMBLYVERSION__/messageA)
    • If you use "Quick promotion" that you should also version namespace of PropertySchema.xsd schema
    • Namespace of schema (when you click on a .xsd file) should be of form: org.MyOrg.__ASSEMBLYVERSION__.schemas and you preserve Type of schema
    • AssemblyVersion should be set to the progressive version being built (it's located in .btproj file)
  2. Orchestration versioning:
    • After schemas are prepared you can use them in orchestrations. These do not need any particular modification
    • AssemblyVersion should be set to the progressive version being built (it's located in .btproj file)
  3. Custom pipeline versioning:
    • DefaultNamespace should be as: org.MyOrg.__ASSEMBLYVERSION__.pipelines (it's located in .btproj file)
    • AssemblyName should be as: org.MyOrg.__ASSEMBLYVERSION__.pipelines - this will help when you GAC assemblies later in the deployment phase (it's located in .btproj file)
    • Assembly version should ramain set to 1.0.0.0 (it's located in .btproj file)
  4. Custom pipeline components:
    • If you need to perform any action on XML document load from stream you should remember that XML namespace used is dynamic..

In general all DLL's should have the same assembly version (the progressive one), but DLL's having custom pipelines should have version set to 1.0.0.0 and in the assembly name have this version incorporated.

Another important thing is that when you do a replace of __ASSEMBLYVERSION__ macro in pre-build stage you should keep it in form of _1_3_15_1000_ so it is accepted as a part of .NET namespace, XML namespace and file name...


Hope that someone will find this blog usefull ...
Just to mention that this system is live for more than 2 years in production environment of important client.

Ivan Jocic