Just stumbled across
this post about the UK SDC Build and Deployment Framework for MSBuild. Actually I did download the zip from GDN a while ago and didnt get to investigate in detail and Howard has listed the tasks nicely on his blog. The thing Im most interested to find is that it has a series of tasks that deal with Biztalk 2004.I've just posted a message on the workspace to find out if it can work with VS2003 and MSBee. Since Biztalk 2004 is a .NET 1.1 product, i think it should but im not sure if the tasks themselves have been written in .NET 2.0. although a backport should be possible if the source code is available.
Heres something awesome I came across and absolutely have to share with you. The Biztalk team are coming out with a BTS Best Practices Analyser on the lines of the SQL best practices analyser and the Baseline Security Analyzer . Richard Seroter has put in an article outlining what we can expect when it is finally released at the end of June this year. IMO, this is waaayy cool. It will be a great learning resource as well as a QA tool and since it will be extensible, we can put in our own custom rules and standards as well. I cant wait to get my hands on this thing.
Also, Kevin B Smith has released BizUnit 2006 (v2.1) featuring some new test steps. His blog also has an article with some introductory comments on how BizUnit works backed up with a useful picture of the scenario he had written about when introducing the tool a while ago. If you download and install it, the CHM file has a section called the BizUnit class which contains a good description on how this works. I also found (when i first used it quite a while ago) that only the default constructor was working. For some reason the other constructor which allows you to home in on a particular section of your config XML wasnt working, but maybe it was just me not understanding how to get it to work. However I did find that the default constructor is good enough for most scenarios. Im looking forward to continuing my usage of the tool in this project. I only scratched the surface last time (there are nearly 38 custom tests/steps in v2) and should be able to try deeper stuff now. In combination with the Nant and CC.NET auto build and deploy scenario, this makes for a real powerful development framework.
I replied to a post on this subject earlier and then decided i'd make it a full blown post of my own. Here are my thoughts on VSTS and open source alternatives. A comparison matrix would probably be a better representation, but i'll wait till i collect more information and then produce one.
Before going on, let me state that I am fully aware that there are many folk in the agile world, for whom a daily scrum and a whiteboard/flipchart (and possibly a wiki of sorts) + an assortment of stuff like Nant, nunit, ndoc etc is enough collaboration and info sharing for the entire project. I respect that (and will probably blog about dev philosophies later) and the rest of this post is not for them. This discussion represents the visual tools driven approach.
I think that for the most part the TS features are mirrored by open source alternatives(MSBuild does have some way to go to get as comprehensive as NAnt/NantContrib) and there isnt an official MS version of CC.NET either (although there are some articles appearing on how to do CI in VSTS). Not sure of what the open source alternatives are for Team Test (load test etc).
However, i think a key selling point of TS is its project portal, integrating VStudio tasks with MS Project and Excel as well as TFS work items, display of bug reports and status directly in the project portal and so on. I dont think there is any open source offering that matches that.
Having said this though, we need to see how exactly this integration is going to pan out. For instance, how low level must your tasks in MS Project be to have relevance to the developer.? and then again, if your tasks are that low level, perhaps they shouldnt be there in MS Project. I believe in planning a project properly and assigning tasks to developers but i prefer to keep them at the use case level or story level rather than down to components or lower. VS tasks are too low level for my taste, although an alert system to notify developers that TODO's and other flagged things are still pending is quite useful. Earlier, in my company, we had integrated CVS with Bugzilla but now we use SVN and JIRA and they arent integrated.
Also dont forget that the SOA designer and its extensibility is worth a lot to architects especially as DSLs start to take root in the larger developer consciousness. The SOA designer,deployment designer and SDM is also a part of VSTS (okay, its part of Team Architect but there are plans to extend this well beyond into deployment packaging, possibly integration with Application Center and so on) , so this has to be factored into the comparison equations. Where is the open source alternative to the designers?
I guess theres a lot more but thats all i could think of for now. Comments and feedback would be welcome. I think we would all benefit (yes including MS) if there was an open source alternative in the .NET world to give VSTS a run for its money which would spur more innovation and improvements in the products. There, I'll stand down from my soap box now.
I've been fairly quiet for a long time cos we've been beavering away at our latest integration project. (in case anyone cares!!). I finally got into the NAnt world and have become truly 'NAnt Infected'. Now I'm wondering what took me so long. The major factor for getting into it was the pain we had last time round trying to build and deploy our Biztalk solution which was only of medium size. This time Im not having any of that. Its gotta be continuous integration all the way. Im also working with a team that isnt well versed with Biztalk or large scale .NET development so manual deployments just arent on. Two great resources in getting into this are the book "Expert .NET Delivery with Nant and CC.NET" (Marc Holmes writes extremely well) and Scott Colestocks Deployment Framework. I view the latter as a master class in Nant scripting.
Im not using Scotts framework as is, because the folder structures and naming conventions i adopt are quite different from his and i would have to do a fair amount of customizing to get his framework to work for me. Additionally, the team has yet to be introduced to Nant and it would be quite a task for them to get familiar with a fairly advanced framework. But on close inspection, there are many similarities between the framework and the batch files i put together last time which called the SDK VB Scripts (and the MSDN Whitepaper provided much of the scripts anyway). However, it must be said that Nant is much more elegant than batch files.
The other reason im not delving too much into deployment and writing another engine is that we plan to move to BTS 2006 in the fall and i would rather spend time with a comprehensive framework which is based on much needed improvements (such as the Application model) than on the fairly raw current one. Even v2006, from what i hear, has complications when it comes to undeploying custom pipelines.
I think the one click deploy and undeploy should be done from both the MMC as well as from VS.NET. After all why not assign an Application to a VS.NET solution and just have a right click menu item that spins through the solution picking up dependencies automatically and doing the necessary tasks. Let me wait and see. Perhaps they have already done that, but if they havent, GAT should provide a route. Will keep y'all posted. Happy Biztalking!!