Pluralsight at TechEd Europe
-
DEV401 — BizTalk Server 2006 for XML Developers
-
DEV402 — Web Services on Steroids aka BizTalk Server 2006
-
PRE007 — What’s Coming in .NET 3.0 (WCF session)
If you encounter the following error when trying to [Save] or [Export XML]:
This XML does not conform to the BizTalk Server 2006 Bam Definition Schema.
…(read more)
If you encounter the following error when trying to [Save] or [Export XML]:
This XML does not conform to the BizTalk Server 2006 Bam Definition Schema.
…(read more)
After a few months of being NAnt infected, I’m at another crossroads. Now that we are starting up on the .NET 2.0 world and are seriously considering the whole VSTS package, MSBuild is a big contender for the building and CI backbone. We didn’t actually get round to using CC.NET in the first phase of our integration project as the team was new to unit testing and automated builds etc, but we’ve made some good progress and have more or less sorted out an automated build and CI is the next step so Team Build may have its uses there.
We took inspiration from Scott Colestock’s deployment framework and built a decent build and deploy engine and are now refactoring it to be more generic. In the beginning, since Nant was quite new to us, I didn’t make complete use of Scott’s tool as-is, because it would have been a big learning curve and with multiple solutions I didn’t like to have to put the deployment framework folder in every single solution. I guess I could have modified it to take stuff from a central location, but hey, those were early days and I was moving away from a batch file centric BTS deployment that I had used till then. Ironically, while generalising the engine now, we are finding that it looks very much like Scott’s, so maybe we’ll move back to Scott’s tool and he has upgraded it to work with v2006 as well.
But that brings us to the crossroads now. Do we throw away our investment in Nant and move off wholesale to MSBuild? What does MSBuild have that could make it worthwhile?
On the surface, it seems like there isn’t very much going for MSBuild. The Nant community is very strong and there are heaps of tasks for various things. Added to that, I think the script is quite expressive and although I haven’t written custom tasks yet, I gather that they are quite easy to write. However, the UK SDC of Microsoft has been going hammer and tongs on this aspect and the Enterprise Solution Build Framework is quite impressive. Guy Smith-Ferrier showed some of the tasks in the SBF at the recent VBUG conference and I was surprised to see how big the task library has grown. The MSBuild script is very similar to Nant too, so if we needed to convert, we could write XSLT and convert most of it.
From the Biztalk aspect, there are a ton of tasks that are coming out from MSBuild. Stephen Thomas deals with some of them in his article here. Since our architecture revolves around Biztalk, this will be a key factor. Right now its all command line based and having to explicitly start, stop and remove ports associated with orchestrations is mind numbingly painful and very difficult to keep in sync. We were planning to take some of the examples shown in the MS Applied Integration Baseline (which contains a C# deployment engine for BTS) and write more custom tasks to slim down the Nant files and make them more reliable, but the MSBuild library is very tempting indeed. Hmm how about a Nant container for MSBuild tasks? (!!)
One of the irritating things about Biztalk is that you cannot build it without Visual Studio, so there’s no option but to call DEVENV from the command line and that slows down compilation of large solutions. The problem still exists with MSBuild, and that’s a real minus, in my book, for the BTS and VS teams. They should have done better. Well, there’s still time. MSBuild is only v1.0 and maybe the BTS team will get this sorted. (Another annoyance is that if you want to change the assembly version or file version, you have to crack open the btproj file cos theres no AssemblyInfo.cs file for BTS. We are going to use the Nant xmlpoke task to do this).
There are some irritants though, with MSBuild. Steve St.Jean has written about its failure to work properly with secondary references. Actually if you haven’t seen that article, check it out. Apparently MS recognises the limitation, but, get this, instead of enhancing MSbuild, they want to dumb down VS so that VS stops recognising secondary references. Doh!!! Homer Simpson moment for MS !!
Theres an interesting discussion on Nant vs MSbuild at the MSDN Forums. In particular, Faisal Mohamood’s post there is a nice explanation of the positioning of MSBuild. But the forum posts also reveal problems such as the limitations with solution file structure and so on.
So, its rather tricky right now. If VSTS plays nicely with Nant (and I don’t see why it shouldn’t, but you can never tell) I might just stick with Nant for the next few months and undertake to write more custom tasks for biztalk or convert the MSBuild tasks to work with Nant (hope that isn’t unethical?) and eventually when MSBuild matures and there are tools which can help us with the migration, I may switch over to MSBuild.
Do feel free to comment if you want to share your thoughts on the subject.
Yesterday, I had the pleasure of presenting on Techniques for Reusable Business Processes with BizTalk Server at the first ever Twin Cities Code Camp.
I covered some basic techniques for making business processes more reusable including:
It is pretty basic BizTalk stuff for people that have worked with BizTalk for a while but I still had a good time and I had the opportunity to do an extended 30 minute demo as part of the presentation.
BizTalk 2006 sample code can be found here and here. The presentation can be found here.
I previously posted here about 2 batch files for starting and stop BizTalk 2004 and SQL Server 2000 services. The ones in this post, below, are for BizTalk 2006 and SQL Server 2005. I use these for quickly and easily reducing memory usage (usually when I need to use VPC). Enjoy!
StartBTSServices:
net start MSSQLServer
net start SQLSERVERAGENT
net start MSSQLServerOLAPService
net start NS$BAMAlerts
net start SQLBrowser
net start msftesql
net start MsDtsServer
net start ReportServer
net start MSDTC
net start RuleEngineUpdateService
net start ENTSSO
net start BTSSvc$BizTalkServerApplication
IISRESET /START
pause
StopBTSServices:
net stop BTSSvc$BizTalkServerApplication
IISRESET /STOP
net stop ENTSSO
net stop RuleEngineUpdateService
net stop MSDTC
net stop SQLSERVERAGENT
net stop NS$BAMAlerts
net stop MSSQLServer
net stop MSSQLServerOLAPService
net stop SQLBrowser
net stop msftesql
net stop MsDtsServer
net stop ReportServer
pause
I recently spoke with a member of the BizTalk EDI Product Team on e-mail about the feature set between 2004/2006 and 2006 R2 after reading several interesting articles about the forthcoming R2 improvements.
The team have now published a post on their blog providing a feature comparison between BizTalk 2002, 2004/2006 and 2006 R2. As an […]
Please MS I’m begging please let me use multi-message parts in my message. Unless I’m missing something very obvious I’m not sure why the WSE adapter would only be able to handle one message part messages. The SOAP adapter is very good at handling this. It is needed for interoperability with java-based web services or handling complex types like dealing with SAP BAPI exposed as Web Services. I’m guessing that they are sending so much time and money on the new R2 bits and the WCF adapters that this issue is not going to be fixed soon. MS is fully aware of the issue and hopefully they come out with a fix. There’s is also a WSE 3.0 adapter on the market from two-connect that can be purchased here. I’ve seen demos of this adapter and it rocks in my opinion.
-B
And these days who isn’t. Well one the latest features of IE 7 is the ability to add a custom search provider into IE. I thought it would be a great idea if I linked up my search provider to a BizTalk syndication feed from here. This syndication was put together by Stephen Thomas of BizTalkgurus.com. So all you have to do is:
Click on the drop down of the search button and select Find More Providers…
Then fillout the following on the page by using the following link here and pasting it into the URL field and name it and you’re done.
Nothing like having all the BizTalk content into the world to be at your fingertips. Enjoy.