The Problem
If you have been a BizTalk developer long enough, you will know that
application lifecycle management has always been a pain point when it
comes to managing BizTalk projects.
The Out-of-Box support available in BizTalk Server is not too great
for things like automated builds, continuous integration, code
analysis, code coverage, unit testing... I can go on and on, but I am
sure you get the picture.
Thankfully, most of these are set to improve with the upcoming release
of BizTalk Server i.e. BizTalk Server 2009, but there are still
improvement areas that I hope the product group will address soon.
One of the other hard things (IMHO) that one needs to do early-on in a
BizTalk project is to decide on the naming convention and projects
structure for modular deployment. Sometime this is dictated by your
customer and sometimes you just follow what has been decided by your
company, simple isn’t it? Wish life was that easyJ.
In reality you will find that customers want you to use their own
guidelines that are often not complete or not fully thought-out, and
you end up using that and try to fill the gap or modify it by adding
your own stuff.
Is this so bad?... not if you have gone through this exercise and got
it frozen and signed off before you start your development / coding,
else, this can turn out to be the cause for endless frustrations for
you and your team.
This is especially true for BizTalk projects, where you know that
small changes to things like namespaces or typenames can cause a
rippling effect across the project, and you end up rebuilding /
reconfiguring all of the artefacts.
I have been on multiple projects in the past where naming conventions
changed almost every week while the project was halfway through the
development phase, so this is not an uncommon thing; however you need
to be aware of this and take measures to avoid getting into such
situations.
Another challenge is in sticking to the guidelines or conventions that
you have so painstakingly chosen and frozen. If you have a large team,
you will often see that not all developers are fully aware of the
guidelines and conventions that are being followed in the team,
especially when developers are constantly moving in and out of the
team.
Solution
So what can be done in such situations? One of the things you can do
on your BizTalk project is to run a static code analyser as part of
your daily builds. I have always been a huge fan of build automation
and the niceties that come along with it like automated testing,
static code analysis report, code coverage report etc. There is
nothing that makes you happier than getting up in the morning gazing
at your PDA / mobile device to see that there were no errors or build
breaks on the nightly build, especially when you are the Dev Lead /
Architect on the project.
You must be thinking... “all this is great... but isn’t this is a
BizTalk Solution?... how do you automate checking naming
conventions?... especially on things like orchestration shapes, map
names, physical ports etc...”. well you are in luck, you can now do
static code analysis on BizTalk solutions too, thanks to Elton
Stoneman for this cool new tool/plug-in called BizTalkCop available on
codeplex.
Check out the links:
URL: http://geekswithblogs.net/benny