BizTalk Servers Slow First Hit

Lately I been thinking about BizTalk Server, and a particular behavior that it consistently demonstrates without fail. It takes a dreadful amount of time to service a “cold” request, however once “warmed”, it hums. Its challenging at best to justify this behavior to a technology ignorant client. Without getting too deep into BizTalk Servers internals (I would love to spend some time with windbg and the SOS extension digging around), I wanted a way to have partial control over how BizTalk Server manages the actual processes that invoke the code we make. All mainstream BizTalk artefacts (orchestrations, maps, pipelines) boil down to managed code (IL). BizTalk consumes our crafted “business” assemblies (dll’s) by loaded them into its address space through one or more AppDomain’s, at which time the messaging engine can call out to them when it sees fit. ...

August 2, 2010 · 3 min

Sharing Libraries in a Team

When developing in a team consisting of more members than yourself, you’ll quickly run into the scenario where shared libraries and/or other similar resources need to be shared in someway. Its especially nice when you can cleanly compile code freshly pulled from source control. In my opinion, this is a must. Sloppiness here can cause heartache throughout the the entire development lifecycle of the project. This problem is aggravated with the introduction of new starters that come on board…they do a get latest, build and spend the next few days crawling through hundreds of build errors. ...

June 13, 2010 · 2 min

BizTalk Server 2009 Unit Testing

I feel like i’ve missed the boat with this, but the “first class” unit testing support that has been added to BizTalk Server 2009 is terrific. Unit testing with BizTalk Server up to this point, has always been very painful and custom. How was this ground breaking feat made possible? A project level build switch has been added to all Visual Studio BizTalk project types. Check it out, bring project properties up for any BizTalk 2009 project in your solution, and there will be an “Enable Unit Testing” true/false flag sitting there. ...

June 12, 2010 · 2 min

Managing Database Evolution

On a new clients site the other day, observed that over time the more companies I work for the deeper my knowledge for applying effective work practices becomes. In other words, over time you see things that work well, and things that don’t. I’m talking about simple practices that when applied to teams result more quality and/or efficient software. Databases and their associated artefacts (functions, triggers, message broker queues and so on) should be managed, and versioned. Again a simple problem with a simple solution, but in the real world tends to be practiced poorly. ...

June 5, 2010 · 2 min

Azure BizSpark Camp

Microsoft (through the BizSpark program) at zero cost to attendees, organised exclusive “choice” Windows Azure training from Chris Auld, geek out resources for for a whole weekend of Windows Azure education, collaborated with some inspiring people, and left with a slightly inflated ego. Last month I was invited to attend the Azure BizSpark Camp in Sydney. Given minimal detail about the event, 7 small Australian startups pitched business concepts to Microsoft, and were selected to compete for the prize of 5G’s of cold hard cash, a sturdy glass trophy that could do some serious damage in a fight, and potential exposure to some real concrete venture capital investors (“VC’s” for short if you’re the hip businessy type) – i.e. people willing to throw cash at your business concept with the intent of making more money in return. ...

April 12, 2010 · 3 min

C# 3.0 Language Extensions

Put together a little snippet to remind myself of the some of the beautiful language extensions that shipped with the C# language. {% highlight csharp %} namespace CSharpLanguageExperiment { using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { // Object Initialiser Person bill = new Person { FirstName = “Bill”, LastName = “Gates”, Age = 40 }; // Type Inference var ben = new Person { FirstName = "Ben", LastName = "Simmonds", Age = 25 }; // Anonymous Types var john = new { FirstName = "John", LastName = "Smith", Age = 18 }; // Anonymous Delegate Func<string, bool> filter1 = delegate(string name) { return name.Length > 4; }; filter1("hel"); // Lambda Expression Func<string, bool> filter2 = x => x.Length > 4; filter2("foobar"); // Extension Method ben.GetData(); // Queries List<Person> people = new List<Person>(); people.Add(bill); people.Add(ben); Func<Person, bool> filter = x => x.Age > 30; IEnumerable<Person> exp = people.Where(filter); foreach (Person person in exp) { Console.WriteLine(person.GetData()); } } } ...

December 25, 2008 · 2 min

70-235 Certified

A few weeks ago I sat the 70-235 exam. Coming from a real-world perspective I wasnt overly impressed with the exam. To me it felt mind numbingly robotic and very 2006 R1 feature set focused (e.g. BAM and BRE). However the exam successfully probed some interesting areas within BizTalk, encouraging me to learn things about BizTalk that I would not otherwise get exposure to. Patrick Wellink’s post How to prepare for the BizTalk 2006 Exam concisely summarised how to prepare for this exam. At first I sensed some sarcasm in Patrick’s post, but now having successfully passed the exam found his post to be scaringly accurate. ...

December 21, 2008 · 2 min

BizTalk XHTML Formatted Messages

BizTalk messages are very XML centric. A while ago there was a requirement to produce a neatly formatted XHTML report, which was destined to be emailed. At the time I stumbled across a customised version of the XslTransform pipeline component which ships with the BizTalk SDK. It demonstrates how to apply an XSLT transformation in the pipeline. The customised version I was playing around with, pulled up XSLT from a SQL data store. Regardless of where or how the transformation be done, we needed to produce an XHTML document as a result. The thing with XHTML is that is it just that. Its XML. A XSD schema can be produced from a well formed piece of XHTML. Therefore it is possible to create a strong message type (e.g. FooReport.xsd) which can then be pub/sub’ed with BizTalk. ...

December 21, 2008 · 1 min

BizTalk 2006 Install Problems on Windows XP

Today while doing some vanilla BizTalk 2006 R2 installs, discovered the installer was choking with: Error 5003.Regsvcs failed for assembly C:\Program Files\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Deployment.dll. Return code 1. Awesome. Other cases of a malfunctioning regsvcs executable have been reported. For reasons that remain unknown to me regsvcs.exe stop functioning following the installation of SP1 for VS.NET 2005 and the .NET 2.0. regsvscs.exe appeared to be intact, but invoking any of it functionality (including listing its command line help) would return nothing—hence the return code 1 problem. ...

December 21, 2008 · 1 min

R&D Todo List

Now my post-grad studies are finalised ive got some spare time to inject into technology. I plan to inject some solid hours into running through the .NET 3.0 certification stream. Some areas that currently excite me, which I hope to spend more time with: ASP.NET MVC Advanced Windows Debugging Azure/Oslo/Dublin BizTalk Server 2009 Claims Security and BizTalk JQuery JSON/POX WCF EndPoints MsBuild NServiceBus OpenId PKI and BizTalk PowerShell SharePoint Services UDP Multicast based Pub/Sub Engine Workflow Foundation

December 17, 2008 · 1 min