May 2007 - Posts

VS Team Architect - Class Libraries on the AD at last

I guess no one can ever say that the VS dev team isnt responsive.. after all the posts in various forums about the lack of support for class libraries on the AD surface, this has now been made available. Unfortunately its only available on Orcas Beta 1 (as a Power Toy) . Check out the post and screenshot at : http://blogs.msdn.com/vsarch/.  Apparently Orcas has some underlying infrastructure that allows it to support such out of band developments so this wont work on VS2005 which is a pity, but if we have waited so long, its only another few months to wait for the final orcas release with all these goodies.

Another really good thing is that Steve Cook and Gareth Jones et al have published a new book on Domain Specific Development with VS. It should be available now on Amazon (the link is too long to paste here- check it out).
with 0 Comments

Biztalk Solution Templates-2 : ApplySettings AddIn

In my previous post i had outlined my first attempt at creating solution templates using the Visual Studio vstemplates technique. I have now gone one step further and built an add-in that allows the user to apply solution wide settings to all the projects. The settings that can be specified are as follows

  • RootNamespace : Namespace prefix upto and not including the solution. This usually follows the format Company.Product. ProductGroup. (e.g) Microsoft.IntegrationPlatform.Services.
  • Solution Name: Taken from the active solution, but can be changed to anything needed - for example CustomerService. The reason this is provided is because some teams like to keep the entire namespace in the solution name but while generating assemblies, the prefixes could be superfluous
  • SolutionNamespace: Namespace comprising the rootnamespace and the solution. (e.g) Microsoft.IntegrationPlatform.Services.CustomerService where CustomerService is the functionality provided by the components of the solution.
  • Application Name: This is the Biztalk application name to be applied to the biztalk projects. Sometimes this is the same as the solution name but need not necessarily be so.
  • Key File: This allows the user to select an existing key file or to create a key file and have it applied to all the projects including the non biztalk projects (which is needed to allow them to be GACed). 

Acknowledgements
The strong naming functionality is borrowed from the work done by Jon Flanders and Carlos Medina . In Jons tool you can generate and apply a strong name to a biztalk project on the fly and with Carlos' enhancements,you can generate and apply the strong name to all projects, or if you already have a strong named project you can copy those settings across to other projects. You can also apply the ApplicationName to the active configuration.

In this tool, the extra functionality is that you can
(1) apply the application Name to ALL configurations - deployment/development/debug/release etc (i usually add in the debug and release configurations to my biztalk projects to make it easy for my automated build scripts to move between biztalk and non-biztalk projects and
(2) choose a strong name file from anywhere on the machine and opt to use a hardcoded path to the key file or a relative path. At this time the relative path can only be calculated from the solution root so the program copies the snk file to the solution root and calculates it from there. Technically it is possible to calculate relative paths to anywhere in the source tree, but right now the code does not support this.

You can download the add-in from here.

As always, your feedback will be appreciated and welcome to help make this tool better. I am looking at trying out some wizards next which will be more flexible and allow more settings and options to be specified.

with 0 Comments

BizUnit 2.3 Beta 1

Just a quick note to say that Kevin has a beta release of BizUnit 2.3 onĀ  http://www.codeplex.com/bizunit. I had a look at the alpha version earlier and i must say that it looks pretty good. Theres a bunch of additions to the BizUnit() and Context() classes including the ability to pass a Stream to the BizUnit constructor which looks like a nice way to break the dependency on the raw XML. We now have the chance to use the Context in more depth including setting up property values into the Context and passing that into the BizUnit constructor.

I've queried about the documentation and whether CHMs will continue to be the only sources there. If so, then i plan to write more articles in the BizUnitExtensions project to cover the new stuff.

I havent had a chance to test extensions against this release, but there is definitely a breaking change in that the Context HasKey() and Change() methods that are used by some extension steps are not available anymore, but the good news is that the ContextManipulator step appears to work, so i guess i can change the code in the appropriate steps to use this step instead of Context Change, or i can move the context change and haskey() into the extension steps. Lets see how it turns out. I should be able to re-release an updated version of extensions as soon as 2.3 is complete.

Anyway, grab your copy of the latest BizUnit and test it out and post your feedback on the codeplex site. Enjoy...


with 0 Comments