(Update: The original download files were missing the
PDB-to-GAC functionality I've discussed before. Please download
again if you have already...)
The
BizTalk Deployment Framework has been updated to work with BizTalk
2006...It is hard to believe that this project has been going on since May of
2004!
The Deployment Framework for BizTalk 2006 still has the same goals as
the 2004 version:
-
Streamline the deployment process for developers, ensuring repeatability
-
Make it easier for a team of BizTalk developers to stay in sync - not just with
BizTalk artifacts, but with all the other infrastructure that surrounds the
solution (virtual directories, queues, file folders, etc.)
- Extremely close
parity between server-side deployments and developer deployments - so you are
always testing your server deployments as you go through a typical developer
work day.
BizTalk 2006 itself introduced quite a few features to make deployment easier,
and can work fine for small (or solo) projects. Here are a few
limitations I've encountered:
-
Though much improved, it is still possible to get into "dependency chaos" -
where you spend time manually undeploying/deploying individual artifacts.
-
Binding changes have to be communicated "manually" between developers on a
team, since the import process is done through the Admin MMC or
command-line. Just "getting latest" from version control isn't
sufficient.
-
Binding files for your various environments have to be maintained as separate
files (manually), rather than "merging in" environment-specific settings
-
Artifacts such as rules, virtual directories, queues, folders, additional
dependent assemblies, etc. can be represented as "Resources" within the Admin
MMC (and in exported MSIs), but not in a fashion that easily moves between developers
on a team.
So! To get started with this version, download the
Deployment Framework (Tools) zip and run the
MakeBizTalkExternalTools_VS2005.vbs script. This will add entries to the
Visual Studio tools menu for deploying and undeploying using the
framework. You can download the
full sample to see the framework in action (first build it, then
do Tools-BizTalk Deploy. You'll see something like
this.)
The high-level approach is the same as the 2004 framework - you supply a small
project-specific NAnt script that indicates via properties what elements of a
deployment your solution requires. You include
BizTalkDeploymentInclude.nant to get all the core
deployment functionality, and make sure the DeployTools directory is
copied to your project. (Unzipping the
Deployment Framework Core into your project is a good way to do
this.) See the
documentation for a more complete discussion.
The primary difference in the upgraded framework for BizTalk 2006 is
that we now create a BizTalk Application definition, and use
BTSTask to add all BizTalk artifacts as resources within that
application. Starting and stopping the application is done at an
application level rather than per port/per orchestration.
Packaging up your solution as an MSI can be done with the WiX-based scripts
that have been in the framework for awhile, or by using the MSI
export mechanism in BizTalk 2006, if you prefer. (The latter solution
will require a few additional steps, and doesn't give you the parity described
earlier. But it works if you need to go that route.)
Other Notes:
-
NAnt
.85 RC4 (and
NAntContrib ) is required. Be sure to copy the new
BizTalk.NAnt.Tasks.dll to NAnt's bin directory. We need to call BizTalk's
.net 2.0 assemblies, and NAnt wasn't built against 2.0 -- so change
nant.exe.config to have only<supportedRuntime
version="v2.0.50727" /> in the<startup> element.
-
Log4net usage in the sample (which isn't required of course for the
framework) has been updated to
log4net 1.2.10 , as has my
serializable wrapper. You can find the new
log4net.Ext.Serializable in the
Tools
download (which is useful all by itself, apart from the framework.)
-
You can actually use the BizTalkDeploymentInclude.nant file in this release
with BizTalk 2004, if you like, to aid in your migration. There is NAnt
property to indicate 2004 vs. 2006.
-
Scan all the
previous release notes...
Leave comments with any questions/issues/etc. Enjoy!
Download:
Full Sample,
Framework Core,
Tools Source ,
Docs