Tuesday, June 24, 2008

MSBuild Extras (MSBee) - Who should use it?

For those of us who are not yet familiar with this product, MSBuild Extras Toolkit for .NET 1.1 (MSBee for short) is an addition to the Visual Studio 2005 MSBuild compile engine that allows developers to compile .NET 1.1 applications from within Visual Studio 2005. Normally, Visual Studio 2005 is only able to produce .NET 2.0 assembly (3.0 as well if you install the add-on). MSBee is however not fit to be used as the means to generate a multi project enterprise level solution in both 1.1 and 2.0 Framework. Here are some general limitations of this tool:

1. MSBee is a command line utility: MSBee can only be used from the command line, NOT from within Visual Studio 2005, unless you write a Visual Studio Macro to automate it from within the VS Development environment. But even then it will still remain a command line utility with all the limitations of such type utilities.

2. No Support for Partial Classes: As part of the process to use MSBee you have to convert the VS 2003 project to a VS 2005 project using automated converters. During this process, any web references in the VS 2003 application are converted to use the VS 2005 format of web references, which uses Partial Classes. Any code in Visual Studio that uses Partial Classes will generate an error when run through MSBee. In addition any NEW Windows Form created in Visual Studio 2005 will use Partial Classes and Generics, neither of which are supported in .NET 1.1.

3. MSBee is not ideal for multi-project solutions: MSBee can only compile one project at a time. This means that if you have a solution that has 50 sub-projects in it, you will have to compile them one by one!

4. No support for any bugs, questions or issues: The MSBee project discussion page which can be found HERE seems very much dead! You may post a question on their forum and not get a reply back to it EVER! I personally have also tried posting questions on several very active forums such as MSDN MSBuild forum with no response what so ever! Usually this means that the technology is pretty much dead!

5. MSBee does NOT produce .NET 1.1 CAB Files: So if you use CAB files to distribute your DLL with your application you are out of luck!

6. No way to step through the MSBee compiled code: When you generate .NET 1.1 assembly using MSBee, if you encounter Errors and Warnings, there is no way for you to step through the code using Visual Studio 2005! This makes debugging complex errors close to impossible.

So based on the above issues and the 2 week long testing that I performed analyzing this utility, I would recommend that developers should only use MSBee on either a few individual libraries in your VS 2005 solution that are not yet ready for your conversion during a transition phase OR a very simple Windows Form application that doesn't have many sub-projects and does not require constant changing. The technology however is not reliable enough for a Complex Enterprise Level Solution.

Pete Soheil
DigiOz Multimedia

No comments: