Subscribe: Charles Young
Preview: Charles Young

Charles Young

Copyright: Charles Young

Solidsoft Reply needs your talent...

Mon, 05 Oct 2015 21:16:59 GMT

Originally posted on: Reply is in recruiting mode.  We are the UK’s leading integration specialists on the Microsoft Platform with a decade and a half experience of hard-core development using BizTalk Server and related technologies.  These days, of course, we focus much of our attention on cloud-based integration technologies.  However, we have seen a surge of interest in BizTalk Server over the last couple of years.  Much of this has been driven by the ever-growing adoption of Dynamics (AX, CRM) within the enterprise.  In the face of concerted competition from some of the new iPaaS kids-on-the-block, BizTalk Server continues to attract new customers at a very healthy rate.   Not only are we involved in more concurrent BizTalk projects than at any time in our history, the average size and value of those projects has increased noticeably. We are a conservative lot when it comes to hiring.  We have always placed a high value on experience and capability.  Our reputation depends on it.  Our team of approximately twenty full-time BizTalk specialists has been growing in recent months, but we need to extend that team further to cope with current and projected demand.  We are looking to employee another two or three people with proven BizTalk Server development and consulting skills, experience of enterprise-level development and the aptitude to work closely with corporate customers.  These people will join the team as full-time employees, working with other members of our team and alongside our wider community of associates.  Most of the BizTalk development we do is team-based and involves EAI and the design and implementation of enterprise service bus capabilities.  We need people with experience and understanding of the full development life-cycle.  If you are looking to take your career beyond development into technical consultancy and leadership, we offer the opportunity to expand your horizons. As well as BizTalk Server, we have a wider involvement in development on the Azure platform.  We have one team working on one of the largest Azure development projects undertaken in Europe.  We are working closely with Microsoft on early real-world Service Fabric-based development.  We are building our capabilities in BI, BCDR and Azure-based managed services.  Most of our integrations customers have a direct interest in cloud computing and plan to exploit cloud-based approaches alongside more traditional enterprise integration models.  If you want to extend your knowledge and experience of cloud-enabled integration using Azure services such as the service bus and App Service, then consider a career with us. Solidsoft Reply is part of the greater Reply family, a network of highly specialised companies that  help their customers develop business models to optimise and integrate processes, applications and devices and use new technology and communication paradigms such as Big Data, Cloud Computing, Digital Communication, Internet of Things and Mobile and Social Networking.  Reply operates across Europe and several other regions.  Solidsoft Reply is based in the UK (Basingstoke) and Italy. If you think you could find a home at Solidsoft Reply, let me know via this blog site or contact us directly at with your current CV. [...]

Integration User Group: Video available for ‘Microservices and the Cloud-Based Future of Integration’

Thu, 22 Jan 2015 13:44:33 GMT

Originally posted on:

(image) I presented at Monday evening’s inaugural session of the Integration User Group.  This new UG replaces the UK Connected Systems User Group (UKCSUG).  The session was well attended with a good 50 minutes of questions afterwards.  The video of the presentation (first hour only) has been posted at  The slides are also available on Slideshare at

Sam Vanhoutte,  CTO and Product Manager at Codit, will be speaking next Monday, 26th January.  He is a very well-known face in the Microsoft-centric  integration community.  The title is ‘Overview of Azure Microservices and the impact on integration’.  He will discuss the implications of the announcements made at the recent Integrate conference and how this will affect the future for integration professionals. 

You can find further information on planned Integration Monday events at  Follow the events on Twitter using #integrationmonday.   Our very own Nino Crudele is speaking on 9th Feb.  The title is still to be announced but he is always worth hearing.


Webinar: Microservices and the Cloud-Based Future of Integration

Thu, 15 Jan 2015 18:03:25 GMT

Originally posted on:

I will be presenting at the UK Connected Systems User Group ‘Integration Monday’ webinar on Monday, 19th January at 7:30 pm, GMT:


“The software integration market is heating up with dozens of new cloud-based vendors and a sea-change in customer expectations.  What does this means for traditional Enterprise Application Integration?  What do modern integration tools give us and where is this all heading.  The answer is cloud-based microservices PaaS, and Microsoft is leading the charge forward.  What are microservices, what is the next-generation Azure PaaS platform all about and how will this transform the world of application and service integration in the future?”

Registrations are open at (image)

All polemicists are mortal...

Thu, 31 Jul 2014 00:10:54 GMT

Originally posted on:

What is truly offensive about Richard Dawkins' comments on date rape and paedophilia is his air of intellectual superiority founded on hopeless ignorance of basic logic.  He believes the following to be an invalid syllogism:

X is Bad

Y is Worse

Therefore X is not Bad

A syllogism can be valid or invalid, but it remains a syllogism.  As Aristotle might have put it…

All syllogisms have a middle term that appears in both the major and minor premises

In Dawkins’ example, the middle term does not appear in the minor premise

Therefore Dawkins’ example is not a syllogism

He might also have said…

For all syllogisms, the minor term is the subject of the conclusion

In Dawkins’ example the minor term does not appear in the conclusion

Therefore Dawkins’ example is not a syllogism

Modus Baroco, x2

Using fancy technical terms to try to convince others how clever you are only works if you actually know what those terms mean.


Who am I?

Thu, 03 Jul 2014 08:49:58 GMT

Originally posted on:

From Google, this morning…” Charles, do you know Charles Young?” with a lovely picture of myself.

Nope, never heard of me. Google clearly has no idea who I am either.


Solidsoft aquired by Reply S.p.A

Fri, 06 Dec 2013 15:21:29 GMT

Originally posted on:

We are now SolidSoft Reply. This morning, the company was acquired by Reply S.p.A. This is great news for us. We will continue to build the business under the SolidSoft name, brand and culture, but as part of a much larger team. Further information at (image)

Does Red Hat Enterprise Linux run on Azure?

Mon, 29 Apr 2013 16:58:37 GMT

Originally posted on:

Microsoft does not currently offer RHEL on subscription on the Windows Azure platform, and people have reported problems when trying to create and run their RHEL VMs.  So, does RHEL run on Azure?  Read on here.


FAIL VODAFONE (sorry Nokia)

Wed, 30 Jan 2013 19:39:32 GMT

Originally posted on: can't say I follow things that closely in the Windows Phone world, but I am aware of the upgrade to Windows phone 7.8.  I've been looking forward to this for a while.  The improvements in the UI look nice, and when I get it, I can try to kid myself that my company phone, a Nokia Lumia 800, is really an 820.It appears that the roll-out of 7.8 started today in the US for Nokia 900 users.  It can take a while for upgrades to make it to all the eligible phones.  So, imagine my delight when, this evening, my phone informed me an update was waiting for me!  Yeah!  I eagerly started the upgrade process and excitedly informed my bemused family that I was about to get Windows Phone  After a successful upgrade, the phone re-booted...into Windows Phone 7.5.I did a little digging.  It appears that the last upgrade, code-named Tango, has just arrived on my phone.  Tango was released on 20th July last year.  That's just over six months before I got the upgrade.Oh dear me.I'll report back on Windows Phone 7.8 in late summer...if I'm fortunate enough to get it by then :-(Update Apologies to Nokia who I stupidly railed at in an earlier version of this post.   Of course, they simply manufacture the handsets.  In my case, the carrier is Vodafone and they are the company responsible for pushing updates to my phone.    It seems that back in September Vodafone decided to cancel the global roll-out of Tango updates to some users due to a WiFi concern.  Although the press only reported this as affecting a single HTC model, maybe this is connected with my experience. Update 2 (Friday) A colleague has been busy forcing upgrades on his Nokia Lumia 800 (there is a little trick you can use, apparently, that involves switching off your PC WiFi connection at just the right moment while using Zune, and then re-connecting).  He forced an upgrade to Tango.  Now, he reports that he got two further updates and then a third.  The third appears to be Windows Phone 7.8 (which at the time of writing he is currently installing).  So, best guess is that Tango is being rolled out as a precursor to the 7.8 update.  I'll report back on this later. Update 3After many weeks of non-information and constant complaints on their forum, Vodafone did eventually roll out Windows Phone 7.8.  This was, in fact, a patched version of 7.8.  While I have no problems with Vodafone withdrawing the roll-out of 7.8 in order to fix a bug, I do have issues with the inordinate length of time it took them to issue the patched version and, more importantly, the total lack of information provided by the company to their customers. [...]

Poor, confused C# compiler

Tue, 22 Jan 2013 22:06:06 GMT

Originally posted on: C# compiler is a pretty good thing, but it has limitations. One limitation that has given me a headache this evening is its inability to guard against cycles in structs.  As I learn to think and programme in a more functional style, I find that I am beginning to rely more and more on structs to pass data.  This is natural when programming in the functional style, but structs can be damned awkward blighters.Here is a classic gotcha.  The following code won't compile, and in this case, the compiler does its job and tells you why with a nice CS0523 error:    struct Struct1    {        public Struct2 AStruct2    }    struct Struct2    {        public Struct1 AStruct1    }Structs are value types and are automatically instantiated and initialized as stack objects.  If this code were compiled and run, Struct1 would be initialised with a Struct2 which would be initialised with a Struct1 which would be initialised with a Struct2, etc., etc.  We would blow the stack.Well, actually, if the compiler didn't capture this error, we wouldn't get a stack overflow because at runtime the type loader would spot the problem and refuse to load the types.  I know this because the compiler does a really rather poor job of spotting cycles.Consider the following.  You can use auto-properties, in which case the compiler generates backing fields in the background.  This does nothing to eliminate the problem.  However, it does hide the cycle from the compiler.  The following code will therefore compile!    struct Struct1    {        public Struct2 AStruct2 { get; set; }    }    struct Struct2    {        public Struct1 AStruct1 { get; set; }    }At run-time it will blow up in your face with a 'Could not load type from assembly' (80131522) error.  Very unpleasent.ReSharper helps a little.  It can spot the issue with the auto-property code and highlight it, but the code still compiles.  However, ReSharper quickly runs out of steam, as well.   Here is a daft attempt to avoid the cycle using a nullable type:    struct Struct1    {        public Struct2? Struct2 { get; set; }    }    struct Struct2    {        public Struct1 Struct1 { get; set; }    }Of course, this won't work (duh - so why did I try?).  System.Nullable is, itself, a struct, so it does not solve the problem at all.  We have simply wrapped one struct in another.  However, the C# compiler can't see the problem, and neither can ReSharper.  The code will compile just fine.  At run-time it will again fail.If you define generic members on your structs things can easily go awry.  I have a complex example of this, but it would take a lot of explaining as to why I wrote the code the way I did (believe me, I had reason to), so I'll leave it there.By and large, I get on well with the C# compiler.  However, this is one area where there is clear room for improvement.UpdateHere's one way to solve the problem using a manually-implemented property:    struct Struct1    {        private readonly Func aStruct2Func;        public Struct1(Struct2 struct2)        {            this.aStruct2Func = () => struct2;        }        // Let's make this struct immutable!  It's good practice to do so         // with structs, especially when writing code in the functional style.        // NB., the private backing field is declared readonly, and we need a        // constructor to initialize the struct field.  There are more optimal        // approaches we could use, but this will perform OK in most cases,         // and is quite elegant.        public St[...]

Forget Sinofski

Tue, 13 Nov 2012 16:13:25 GMT

Originally posted on:

Forget about Steven Sinofski's unexpected departure from Microsoft.   The real news from Redmond is that, after approximately 72 years of utter stagnation, the latest version of Visio has been upgraded to support UML 2.x!   It gets better.  It looks like it actually supports the latest version of UML (2.4.1). 



Microsoft Cloud Day - the ups and downs

Sat, 23 Jun 2012 00:08:24 GMT

Originally posted on: term ‘cloud’ can sometimes obscure the obvious.  Today’s Microsoft Cloud Day conference in London provided a good example.  Scott Guthrie was halfway through what was an excellent keynote when he lost network connectivity.  This proved very disruptive to his presentation which centred on a series of demonstrations of the Azure platform in action.  Great efforts were made to find a solution, but no quick fix presented itself.  The venue’s IT facilities were dreadful – no WiFi, poor 3G reception (forget 4G…this is the UK) and, unbelievably, no-one on hand from the venue staff to help with infrastructure issues.  Eventually, after an unscheduled break, a solution was found and Scott managed to complete his demonstrations.  Further connectivity issues occurred during the day. I can say that the cause was prosaic.  A member of the venue staff had interfered with a patch board and inadvertently disconnected Scott Guthrie’s machine from the network by pulling out a cable. I need to state the obvious here.  If your PC is disconnected from the network it can’t communicate with other systems.  This could include a machine under someone’s desk, a mail server located down the hall, a server in the local data centre, an Internet search engine or even, heaven forbid, a role running on Azure. Inadvertently disconnecting a PC from the network does not imply a fundamental problem with the cloud or any specific cloud platform.  Some of the tweeted comments I’ve seen today are analogous to suggesting that, if you accidently unplug your microwave from the mains, this suggests some fundamental flaw with the electricity supply to your house.   This is poor reasoning, to say the least. As far as the conference was concerned, the connectivity issue in the keynote, coupled with some later problems in a couple of presentations, served to exaggerate the perception of poor organisation.   Software problems encountered before the conference prevented the correct set-up of a smartphone app intended to convey agenda information to attendees.  Although some information was available via this app, the organisers decided to print out an agenda at the last moment.  Unfortunately, the agenda sheet did not convey enough information, and attendees were forced to approach conference staff through the day to clarify locations of the various presentations. Despite these problems, the overwhelming feedback from conference attendees was very positive.  There was a real sense of excitement in the morning keynote.  For many, this was their first sight of new Azure features delivered in the ‘spring’ release.  The most common reaction I heard was amazement and appreciation that Azure’s new IaaS features deliver built-in template support for several flavours of Linux from day one.  This coupled with open source SDKs and several presentations on Azure’s support for Java, node, PHP, MongoDB and Hadoop served to communicate that the Azure platform is maturing quickly.  The new virtual network capabilities also surprised many attendees, and the much improved portal experience went down very well. So, despite some very irritating and disruptive problems, the event served its purpose well, communicating the breadth and depth of the newly upgraded Azure platform.  I enjoyed the day very much.  [...]

Microsoft and the open source community

Wed, 28 Mar 2012 10:27:53 GMT

Originally posted on: the last decade, I have repeatedly, in my imitable Microsoft fan boy style, offered an alternative view to commonly held beliefs about Microsoft's stance on open source licensing.  In earlier times, leading figures in Microsoft were very vocal in resisting the idea that commercial licensing is outmoded or morally reprehensible.  Many people interpreted this as all-out corporate opposition to open source licensing.  I never read it that way. It is true that I've met individual employees of Microsoft who are antagonistic towards FOSS (free and open source software), but I've met more who are supportive or at least neutral on the subject.  In any case, individual attitudes of employees don't necessarily reflect a corporate stance.  The strongest opposition I've encountered has actually come from outside the company.  It's not a charitable thought, but I sometimes wonder if there are people in the .NET community who are opposed to FOSS simply because they believe, erroneously, that Microsoft is opposed.Here, for what it is worth, are the points I've repeated endlessly over the years and which have often been received with quizzical scepticism.a)  A decade ago, Microsoft's big problem was not FOSS per se, or even with copyleft.  The thing which really kept them awake at night was the fear that one day, someone might find, deep in the heart of the Windows code base, some code that should not be there and which was published under GPL.  The likelihood of this ever happening has long since faded away, but there was a time when MS was running scared.  I suspect this is why they held out for a while from making Windows source code open to inspection.  Nowadays, as an MVP, I am positively encouraged to ask to see Windows source.b)  Microsoft has never opposed the open source community.  They have had problems with specific people and organisations in the FOSS community.  Back in the 1990s, Richard Stallman gave time and energy to a successful campaign to launch antitrust proceedings against Microsoft.  In more recent times, the negative attitude of certain people to Microsoft's submission of two FOSS licences to the OSI (both of which have long since been accepted), and the mad scramble to try to find any argument, however tenuous, to block their submission was not, let us say, edifying.c) Microsoft has never, to my knowledge, written off the FOSS model.  They certainly don't agree that more traditional forms of licensing are inappropriate or immoral, and they've always been prepared to say so.  One reason why it was so hard to convince people that Microsoft is not rabidly antagonistic towards FOSS licensing is that so many people think they have no involvement in open source.  A decade ago, there was virtually no evidence of any such involvement.  However, that was a long time ago.  Quietly over the years, Microsoft has got on with the job of working out how to make use of FOSS licensing and how to support the FOSS community.  For example, as well as making increasingly extensive use of Github, they run an important FOSS forge (CodePlex) on which they, themselves, host many hundreds of distinct projects.  The total count may even be in the thousands now.  I suspect there is a limit of about 500 records on CodePlex searches because, for the past few years, whenever I search for Microsoft-specific projects on CodePlex, I always get approx. 500 hits.  Admittedly, a large volume of the stuff they publish under FOSS licences amounts to code samples, but many of those 'samples' have grown into useful and fully featured frameworks, libraries and tools.All this is leading up to the observation that y[...]

Tell Us Once (TUO) goes live

Fri, 16 Dec 2011 11:34:39 GMT

Originally posted on:

It's always exciting when a new application you've worked on goes live. The last couple of weeks have seen the 'soft' launch of a new service offered by the UK government called 'Tell Us Once' (TUO). You can probably guess from the name what the service does. Currently, the service allows UK citizens to inform the government (as opposed to Register Officers, who must still be notified separately) just once of two types of 'change-of-circumstance' event; namely births and deaths. You can go, say, to your local authority contact centre, where an officer will work through a set of screens with you, collecting the information you wish to provide. Then, once the Submit button is clicked, that's it! With your consent, the correct data sets are parcelled up and distributed to wherever they need to go - central and local government departments, public sector agencies such as the DVLA, Identity and Passport Service, etc. No need to write 50 letters!

With my colleagues at SolidSoft , I'm really proud to have been involved with the team that designed and developed this new service. For the past few years, we worked originally on the prototypes and pilots (there was more than one!). Over the last eighteen months or so, we have been engaged in building the national system, and development work in on-going. It's been a journey! The idea is very simple, but as you can imagine, the realisation of that idea is rather more complex. Look for future enhancements to today's service, with the ability to report events on-line from the comfort of your own home and the possible extension of the system to cover additional event types in future.

Interaction with government has just got a whole lot better for UK citizens, and we helped make that happen. It's a pity that I don't intend to have any more children (four is enough!), and I really hope I don't have to report a death in the near future, but if I do, I'll be beating a path to the door of my local council's contact centre in order to 'tell them once'.



BizTalk Server 2010 R2 Announced

Fri, 09 Dec 2011 08:37:43 GMT

Originally posted on: Yesterday, Microsoft announced the forthcoming release of BizTalk Server 2010 R2 on the BizTalk Server blog site.  This is advanced notice, given that this new version will ship six months after the release of Windows 8, expected in the second half of next year.  On this basis, we can expect the new version of BizTalk Server to arrive in 2013.  Given the BizTalk team’s previous record of name changes, I wonder if this will eventually be released as BizTalk Server 2013. Microsoft has been refreshingly open in recent months about their future plans for BizTalk Server.  This strategy has not been without its dangers with some commentators refusing to accept Microsoft’s statements at face value.  However, yesterday’s announcement is entirely in line with everything Microsoft has been saying, both publically and privately, for some time now.  Since the release of BizTalk Server 2004, Microsoft has made little change to the core technology with, of course, the exception of a much re-vamped application packaging approach in BizTalk Server 2006.  Instead, Microsoft chose to put investment into a number of important ‘satellite’ technologies such as EDIFACT/X12/AS2 support, RFID Server, etc.  Maintaining the stability of the core platform has allowed BizTalk Server to emerge as a mature and trusted workhorse in the enterprise integration space with widely available skills in the marketplace. In terms of its major investments, Microsoft’s focus has long shifted to the cloud.  Microsoft has candidly communicated that, given this focus, they have no current plans to add major new technologies to the BizTalk platform.  In addition, they absolutely have no intention of re-engineering the core BizTalk platform.  In my direct experience in recent months, this last point plays very well to prospective and existing enterprise customers.  It takes us straight to the heart of what most organisations want from an integration server: a ‘known quantity’ with a good track record for dependability, scalability and stability and a significant pool of available technical resource. The announcement of BizTalk Server 2010 R2 illustrates and illuminates Microsoft’s stated future strategy for the product.  An important part of Microsoft’s platform for enterprise computing, it will continue to be enhanced and extended.  It will match future developments in the Windows platform and new versions of Visual Studio.  However, we should not expect to see any dramatic new developments in the world of BizTalk Server.  Instead, the BizTalk platform will continue to steadily mature further as the world’s best-selling integration server. One of the big messages of yesterday’s announcement is that BizTalk Server will increasingly support its emerging role in building hybrid solutions that encompass systems and services that reside both on-premises and in the cloud.  At SolidSoft , we are increasingly focused on the design and implementation of cloud-based and hybrid integration solutions.  Integration is challenging, and Azure is a young, fast evolving platform.  Microsoft has discussed at length their vision of Azure within a wider ‘hybrid’ context.  The availability of a tried and tested, mature, on-premises integration server is a vitally important enabler in building hybrid solutions.  Better than that, the announcement makes it clear that, as well as new support for the Azure service bus, BizTalk Server 2010 R2 licensing will be revised to open up new opportunities for hosting the serv[...]

Announcing BizTalk Server 2010 Unleashed

Sun, 25 Sep 2011 21:30:24 GMT

Originally posted on: last, I can announce that ‘BizTalk Server 2010 Unleashed’ has been published and is available through major booksellers in both printed and electronic form. The book is not a new edition of the old ‘BizTalk Server 2004 Unleashed’ book from several years ago, although Brian Loesgen, our fearless team leader, provided continuity with that title. Instead, this is entirely new content written by a team of six authors, including myself.       BizTalk Server is such a huge subject. It proved a challenge to decide on the content when we started our collaboration a couple of years back (yes, it really was that long ago!). We quickly decided that the book would principally target the BizTalk development community and that it would provide a solid and comprehensive introduction to the chief artefacts of BizTalk Server 2010 solutions – schemas, maps, orchestrations, pipelines and adapters. Much of this content was written by Jan Eliasen and forms part 1 (“The Basics”) of the book.   On the day my complimentary copies were delivered, I was working on the implementation of a pipeline component, and had an issue to do with exposing developer-friendly info in Visual Studio. I used this as a test-run of Jan’s content, and sure enough, discovered that he had clearly addressed the issue I had, including sample code. Jan’s contribution is succinct and to the point, but is also very comprehensive (he’s even documented things like creating custom pipeline templates!). I particularly appreciate the way he included plenty of guidance on testing individual artefacts.   My contributions to part 1 is a chapter on adapters (the ‘adapter chapter’ as we fondly called it). This explores each of the ‘native’ adapters and the family of WCF adapters. There is also some content on the new SQL adapter which is part of the BizTalk Adapter Pack. In that respect, it overlaps with ‘Microsoft BizTalk 2010 Line of Business Systems Integration’ which I reviewed recently, and also in respect of the SharePoint adapter. However, ‘Microsoft BizTalk 2010 Line of Business Systems Integration’ provides a whole lot more information on a range of LoB adapters. It is written in a different style to BizTalk Server 2010 Unleashed and is highly complementary.   Although the original plan was to include content on custom adapter creation, this didn’t, in the end, get covered in any depth. One reason for this is that, going forward, most custom adapter development for both BizTalk and Azure Integration Services (still some way off) is likely to be done using the WCF LoB Adapter SDK. That suggested that we would have had to document two distinct adapter frameworks in order to do the job properly, and this proved a little too much to tackle. Room there for another book, methinks.   Part 1 accounts for about half the content of the book. Beyond this, we wanted to add value by covering more advanced topics, including the use of BizTalk Server alongside WCF and the emerging Azure platform, new features in BizTalk Server 2010 and topics that have been only partially covered elsewhere. So, for example, Anush Kumar was contributed an entire section (part 4) on RFID including the new RFID Mobile Framework. Anush is well-known in the BizTalk community due to his involvement in the development of RFID Server. Between Jon Flanders and Brian Loesgen, the book includes content on exploiting WCF extensibility in BizTalk, integrating via the Azure service bus (please note that this content was written before the advent of topics/subsc[...]

Book Review: Microsoft BizTalk 2010 Line of Business Systems Integration

Mon, 19 Sep 2011 21:47:38 GMT

Originally posted on: benefit of my recent experience on a BA flight was that I got plenty of time to read through “Microsoft BizTalk 2010 Line of Business Systems Integration”. I’d promised the publisher weeks ago that I would take a look and publish some comments, but August has been such a busy month for me, and they have had to be patient.   I should point out that, for the sake of transparency, that with another BizTalk book about to be released (next week) which I helped co-author, I have an urgent and obvious need to make good on this promise before I start to blog on other stuff.   BTS10LoBI is a really welcome addition to the corpus of BizTalk Server books and fills a conspicuous gap in the market.  BizTalk Server offers a wide-ranging library of adapters.  The ‘native’ (built-in) adapters understandably get a lot of attention, as do the WCF adapters, but other adapters, such as the LoB adapters and HIS adapters, are often overlooked.  I came to the book with the mistaken assumption that its chief focus was on the BizTalk Adapter Pack.  This is a pack of adapters built with the WCF-based LoB SDK.  In fact, the book follows a much broader path.  It is a book about LoB integration in a general sense, and not about one specific suite of adapters.  Indeed, it is not simply about adapters.  It focuses on integration with various LoB systems, and explains how adapters and other tools are used to achieve this. This makes for a more interesting read.  For example, one, possibly unintended, consequence (given that it represents collaboration between five different authors) is that it illustrates very effectively the spectrum of approaches and techniques that end up being employed in real-world integration.  In some cases developers use adapters that offer focused support for metadata harvesting and other features, exploited through tools such as the ‘Consume Adapter Service’ UI.  In other cases, they use native adapters with hand-crafted schemas, or they create façade services.  The book covers additional scenarios where third-party LoB tools and cloud services (specifically SalesForce) are used in conjunction with BizTalk Server.  Coupled with lots of practical examples, the book serves to provide insight into the ‘feel’ of real-world integration which is so often a messy and multi-faceted experience. The book does not cover the BizTalk Adapter Pack comprehensively.  There is no chapter on the Oracle adapters (not a significant issue because they are very similar to the SQL Server adapter) or the Siebel adapter.  On the other hand, it provides two chapters on the SAP adapter looking at both IDOC and RFC/BAPI approaches.  I particularly welcome the inclusion of chapters on integration with both Dynamics CRM 2011 and Dynamics AX 2009.  I learned a lot about Dynamics CRM which I haven’t had occasion personally to integrate with in its latest version.  The chapter on SalesForce mentions, but does not describe in any detail, the TwoConnect SalesForce adapter which we have used very effectively on previous projects.  Rather, it concentrates on direct HTTP/SOAP interaction with and, very usefully, advocates the use of Azure AppFabric for secure exchange of data across the internet.  The book provides two chapters on integration with SharePoint 2010.  The first explores the use of the native adapter to communicate with form and document libraries, and provides illustrated examples of working with InfoPath forms.  It would have been rea[...]

Broken British Airways

Sun, 18 Sep 2011 14:04:09 GMT

Originally posted on:'m sitting is a nice new hotel in Redmond - the Hotel Sierra is well worth considering if you are staying in the area. I'm sleep-deprived and jet-lagged, and it's raining hard outside, but hey, I just got to play with one of the Samsung tablets they handed out at Build, and was not disappointed.  Microsoft is doing something trully remarkable with Win8 Metro.   On the other hand, I am deeply disappointed with the UK flag carrier, British Airways. Indeed, I've lost patience with them big-time. So forgive me for getting this off my chest. I am very much in the mood to do as much reputational damage to them as I can.   When I checked in on-line, they had booked me into one seat but I could see another with more legroom (a front row). Because of repeated experience over the last few years with defective headsets (I always carry my own earphones these days after one flight here we went through three different headsets before finding one in which one of the earphones actually worked) and bad headset connections (having to constantly twiddle the jack to try to hear anything), I spent a little while consciously debating with myself the intangible risks of changing my seat – i.e., I could easily be swapping a ‘working’ seat for a broken ‘one’. Of course, there was no way to know, so I opted for the seat with more legroom.   MISTAKE! Forget about dodgy headsets. Nothing worked. Not even the reading light! Certainly not the inflight entertainment. They failed to show me the safety video (the steward did panic a little when he realised they had failed to comply with their legal obligations). So I sat for 9.5 hours in a grubby, worn-out cabin with nothing!   To be fair, they did offer to try to find me another seat (the plane was very full), but I opted for the legroom because I wanted to try to get some sleep. So I could probably have got in-flight entertainment. The point is, though, that this is now more than just an unfortunate couple of co-incidences over the last two or three years. I am reasonably fair-minded and understand that sometimes, with the best will in the world, things just go wrong.  In any case, I was bought up to put-up or shut-up (as my mother would say - it's part of the culture).  However, I am forced to conclude that this is now a repeated trend that I experience regularly to the point where I am consciously suspicious of the seats they give me, and clearly with good reason.  BA simply fails to maintain its cabins to anything like a reasonable or acceptable standard (I must trust they do a better job in maintaining the engines). I used to feel some patriotic pride in BA.  Not now.  It’s so sad to see the British flag carrier consistently deliver such an embarrasingly poor and second-rate service. I will be asking SolidSoft in future to, where possible, book me onto a different carrier and will do what I can to convince the company to use other carriers by default.   Personally, I think the UK government should give flag carrier status to someone else (Virgin, I guess).       [...]

Windows 8, Metro and IE10: First impressions

Wed, 14 Sep 2011 23:56:06 GMT

Originally posted on:'ve just installed the Windows 8 Developer Preview.  These are some first impressions: Installation of the preview was quite smooth and didn't take too long.  It took a few minutes to extract the files onto a virtual image, but feature installation then seemed to happen almost instantaneously (according to the feedback on the screen).  The installation routine then went into a preparation cycle that took two or three minutes.  Then the virtual machine rebooted and after a couple of minutes more preparation, up came the licence terms page.  Having agreed to the licence, I was immediately taken into a racing-green slidy-slidy set of screens that asked me to personalize the installation, including entering my email address.  I entered my work alias.  I was then asked for another alias and password for access to Windows Live services and other stuff.  There was a useful link for signing up for a Windows Live ID.  I duly entered the information.  Only on the next screen did I spot an option to not sign in with a Live ID.  I didn't try this, but I felt a bit peeved that the use of a Live ID had appeared mandatory until that point.  I suspect the idea is to try to entice users to get a Live ID, even if they don't really want one. A couple more minutes of waiting, et voilà.  The Metro Start screen appeared, covered in an array of tiles.  Simultaneously I got an email (on my work alias) saying that a trusted PC had been added to my Live account.  I clicked the confirmation link, signed into Windows Live and checked that my PC had indeed been confirmed. Then Alan started chatting, but that is a different matter. Of course, Oracle's Virtual Box (and my Dell notebook) haven't quite mastered the art of touch yet.  For non-touch users a scroll bar appears at the bottom of the Metro UI. I had a moment's innocent fun pretending to swipe the screen with my finger while actually scrolling with the mouse.  Ah, happy days.  Then I discovered that the scroll wheel on my mouse does the equivalent of finger swiping on the Start page. I opened up IE10.  Wow!  I thought IE9's minimal chrome story was amazing.  IE10 shows how far short IE9 falls.  There is no chrome.  Nothing.  Nadda.  Of sure, there is an address box and some buttons.  They appear when needed (a right mouse click without touch) and disappear again as quickly as possible.  It’s the same with tabs which have morphed, in the Metro UI, into a strip of thumbnails that appear on demand and then get out of the way once you have made your selection.  Click on a new tab and you can navigate to a new page or select a page from a list of recents/favourites.  You can also pin sites to 'Start', which in this case means that they appear as additional tiles on the Start screen.  I played for a minute and then I suddenly experienced the same rush of endorphins that hit me the first time I opened Google Chrome a few years back.  Yes, sad to say, I fell in love with a browser!  A near invisible browser.  A browser that is IE for goodness sake! A browser that does what so many wished IE would do years ago. It gets out of your way. Do you like traditional tabs?  That's not a problem, because the good-ole desktop is just a click (or maybe a tap or a swipe) away.  There is even a useful widget on the now-you-see-me/now-you-don't address bar that takes you to desktop view.  It is a bit of a one way trip, and results in a new IE frame opening on the desktop for the current page.  On the[...]

BizTalk Server 2010: Loading properties in custom pipeline components

Wed, 14 Sep 2011 13:48:44 GMT

Originally posted on:

Following the previous post, here is a second bit of wisdom.  In the Load method of a custom pipeline component, only assign values retrieved from the property bag to your custom properties if the retrieved value is not null.  Do not assign any value to a custom property if the retrieved value is null.

This is important because of the way in which pipeline property values are loaded at run time.  If you assign one or more property values via the Admin Console (e.g., on a pipeline in a Receive Location), BizTalk will call the Load method twice - once to load the values assigned in the pipeline editor at design time and a second time to overlay these values with values captured via the admin console.  Let's say you assign a value to custom property A at design time, but not to custom property B.  After deploying your application, the admin console will display property A's value in the Configure Pipeline dialog box.  Note that it will be displayed in normal text.  If you enter a value for Property B, it will be displayed in bold text.  Here is the important bit.  At runtime, during the second invocation of the Load method, BizTalk will only retrieve bold text values (values entered directly in the admin console).  Other values are will not be retrieved.  Instead, the property bag returns null values.  Hence, if your Load method responds to a null by assigning some other value to the property (e.g., an empty string), you will override the correct value and bad things will happen.

The following code is bad:

    object retrievedPropertyVal;
    propertyBag.Read("MyProperty", out retrievedPropertyVal, 0);

    if (retrievedPropertyVal != null)
        myProperty = (string)retrievedPropertyVal;
        myProperty = string.Empty;

Remove the 'else' block to comply with the inner logic of BizTalk's approach.


Biztalk Server 2010: Pipeline component fails with "Value does not fall within the expected range."

Wed, 14 Sep 2011 12:36:02 GMT

Originally posted on:

Here is a small snippet of BizTalk Server wisdom which I will post for posterity.  Say you are creating a custom pipeline component with custom properties.  You create private fields and a public properties and write all the code to load and save corresponding property bag values from and too your properties.   At some point, when you deploy the BizTalk application and test it, you get an exception from within your pipeline stating, unhelpfully, that "Value does not fall within the expected range."  Or maybe, while using the Visual Studio IDE, you notice that values you type into custom properties in the Property List are lost when you reload the pipeline editor.

What is going on?   Well, the issue is probably due to having failed to initialise your custom property fields.  If they are reference types and have a null value, the PipelineOM PropertyBag class will throw an exception when reading property values.  The Read method can distinguish between nulls and, say, empty strings, due to the way data is serialised to XML (e.g., in the BTP file).   Here is a property initialised to an empty string:


Here is the same property set to null:


The first is OK.  The second causes an error and leads to the symptoms described above.

ALLWAYS initialise property backing fields in custom pipeline components.  NEVER set properties to null programmatically.


Andrew Ng to speak at Rules Fest

Mon, 22 Aug 2011 22:41:20 GMT

Originally posted on:

In my previous post I mentioned the free AI course being run by Peter Norvig and Sebastian Thrun (122,314 and rising) in conjunction with Stanford University School of Engineering.  Professor Andrew Ng is running a related course on Machine Learning. This is also a free on-line course run along the same lines as the AI course. Over 30,000 people have signed up so far.
I mention this because Andrew has just confirmed that he will be speaking at this year’s Rules Fest. Rules Fest is all about the practical application by developers of reasoning technologies to real-world problems. It brings together people from across the whole spectrum of public and private sector organisations, including commercial and research organisations and academia, to inspire, inform and enlighten developers and architects. Machine learning is central to the rapidly evolving world of intelligent systems, and we are very excited that Andrew will be speaking at the event.

Huge response to on-line AI course

Sat, 20 Aug 2011 21:13:06 GMT

Originally posted on: Norvig and Sebastian Thrun are offering a free on-line course on AI later this year in conjunction with Stanford University. The course is broadly based on Peter Norvig's book "Artificial Intelligence: A modern Approach" written jointly with Stuart Russell. Along with my colleagues on the Rules Fest committee, we have been following this with interest. In a few days, well over 100,000 people have signed up (112,774 at the time of writing, and still increasing fast). The course broadly overlaps with our natural areas of interest at Rules Fest which is all about the practical application of reasoning technologies in real-world computing. It is very encouraging to us to see the huge interest this course is generating. We will doubtless be contacting Peter, yet again, to see if he will speak at next year's conference (we keep plugging away at this).   In another development, we all woke up to the news a couple of days ago that HP, as part of its dramatic change in strategy, has bid almost $11Bn to acquire enterprise search company, Autonomy. Autonomy offers proprietary technology that exploits Bayes theorem, Shannon's information theory and specific forms of SVD to create an intelligent search platform with learning capabilities. Clearly, HP sees this type of technology as playing a major and lucrative role in their future.   Some time ago, at an event organised by the excellent BizTalk Users' Group in Sweden, I was asked to do a little crystal ball gazing. I trotted out the line that the next few years will see AI-related and reasoning technologies, formally thought of as esoteric and impractical, find their place at the heart of enterprise computing alongside existing investments in traditional LoB/Back Office applications and integration services. With the advent of cloud computing and platforms such as Azure, we have the horsepower available to make this a practical and feasible possibility for mainstream enterprise computing. AI used to be a dirty word. No longer! [...]

Windows Azure AppFabric SDK - June CTP - Download issues

Tue, 21 Jun 2011 16:06:49 GMT

Originally posted on:

Microsoft has announced availability of the June CTP for Windows Azure AppFabric. See This is an exciting release and provides greater insight into where the AppFabric team is heading in terms of developer and management tooling. Microsoft is offering space in the cloud to experiment with the CTP, but this is limited, so register early to get a namespace!
You can download the SDK for the June CTP. However, we ran into a lot of trouble trying to do this today. Whenever we followed the link, we ended up on the page for the May CTP. We found what appeared to be a workaround which we were able to repeat on another box (and which I reported on Connect), but then a few minutes later I couldn't repeat it. Just now, the given link appears to be working every time in IE, but not in Firefox!   Frankly, the behaviour seems random!   It looks like the same URL points to two different pages, and I suspect that which page you end up on is hit and miss.
The link to the download page is If you end up on the wrong page, try again later and you may get to the right place. Or try googling "Windows Azure AppFabric SDK CTP – June Update" and following a link to this page. For some reason, that sometimes seems to work.
Good luck!

Windows Azure AppFabric May and June CTPs - A summary

Thu, 02 Jun 2011 12:21:31 GMT

Originally posted on: spent some time today summarising the new features in the Windows Azure AppFabric May CTP for SolidSoft consultants. Microsoft released the CTP a couple of weeks ago and has a second CTP coming out later this month.  I might as well publish this here, although it has been widely blogged on already.  There is nothing that you can’t glean from reading the release documents, but hopefully it will serve as a shorter summary. The May CTP is all about the AppFabric Service Bus.  The bus has been extended to support ‘Messaging’ using ‘Queues’ and ‘Topics’ ‘Queues’ are really the Durable Message Buffers previewed in earlier CTPs.  MS has renamed them in this CTP.  They are not to be confused with Queues in Windows Azure storage!  Think of these as ‘service bus queues’.  They support arbitrary content types, rich message properties, correlation and message grouping. They do not expire (unlike in-memory message buffers).  They allow user-defined TTLs.  Queues are backed by SQL Azure.  Messages can be up to 256KB and each buffer has a maximum size of 100 MB (this will be increased to at least 1GB in the release version).  To handle messages larger than 256KB, you ‘chunk’ them within a session (rather like BTS large message handling for MSMQ).  The CTP currently limits you to 10 queues per service namespace.  Service Bus queues are quite similar to Azure Queues.  They support a RESTful API and a .NET API with a slightly different set of verbs – Send (rather than Put), Read and Delete (rather than Get), Peek-Lock (rather than ‘Peek’) and two verbs to act on locked messages – Unlock and Delete.  The locking feature is all about implementing reliable messaging patterns while avoiding the use of 2-phase-commit (no DTC!).  Queue management is very similar, but configuration is done slightly differently.  AppFabric provides dead letter queues and message deferral.  The deferral feature is a built-in temporary message store that allows you to resolve out-of-order message sequences.  Hey, this stuff is actually beginning to get my attention! Today’s in-memory message buffers will be retained for the time being.  MS is looking at how much advantage they provide as low-latency non-resilient queues before making a decision on their long-term future.  This is beginning to sound like the BizTalk Server low-latency debate all over again!  Currently, the documented recommendation is that we migrate to queues. ‘Topics’ provide new pub/sub capabilities.  A topic is…drum roll please…a queue!   The main difference is that it supports subscription.  I assume it has the same limitations and capabilities as a normal queue, although I haven’t seen this stated.  It is certainly built on the same foundation.  You can have up to 2000 subscriptions to any one topic and use them to fan messages out.  Subscriptions are defined as simple rules that are evaluated against user and system-define properties of each message.  They have a separate identity to topics.  A single subscription can feed messages to a single consumer or can be shared between multiple consumers.  Unlike Send Port Groups in BizTalk, this multi-consumer model supports an ‘anycast’ model for competing consumers where a single consumer gets a message on a first-come-first-s[...]

IE10 Preview - How Microsoft Competes in the Feature Olympics

Wed, 13 Apr 2011 20:09:27 GMT

Originally posted on: Explorer has made huge strides in the last couple of years. Microsoft has at last begun to lay the ghost of IE6 to rest with a solid, fast, standards compliant, reasonably up-to-date (not quite the same thing) forward-looking browser with the cleanest UI in the business. However, one issue clouds the horizon. Other browsers, most notably Google Chrome, rev much faster that IE. The importance of this is that, by bringing out new versions on shorter (much shorter, in some cases) timescales, other browsers gain a clear advantage. They get emerging specifications and technologies out to end-users faster and therefore shape the future of the web in a way that IE could not touch for many years. This, in turn, builds a sense of momentum which increases the loyalty of the user base. Indeed, it is a major factor in growing the user-base, as we can see clearly with Chrome. With IE, by contrast, we have lived for years with a strong sense of Microsoft holding everyone else back. Microsoft needs to speed up the cycle. I wondered if we would see any signs of this after the RTW of IE9 last month. Well, yes we can. Yesterday, Microsoft released Platform Preview 1 of IE10. Given Microsoft's record, this is absolutely astounding and provides further evidence that the bad old days for IE really are receding. Of course, after three weeks of development, things are not that different to IE9, but the HTML5 story is improved, thanks chiefly to several new CSS3 features. IE9's HTML5 story is mixed. On the one hand, the browser lays a strong foundation for the future with comprehensive DirectX rendering and a much-repeated commitment to HTML5 as a future standard. On the other hand, the feature list count for HTML5 is noticeably lower than its nearest rivals. Put simply, IE9 supports less HTML5 than others, but supports it well. The IE team has repeatedly stated its position on this. Their main argument is that IE9 supports 'site-ready' HTML5 that will interoperate across all today's browsers and avoids features on which there is still disagreement or which may not make it to the final specification. A secondary theme is that it was more important to develop the sub-systems that underpin a great HTML5 experience than strive after having the longest HTML5 feature list. Broadly, the argument plays quite well. Given IE's poor reputation amongst web developers, it is understandable that they want to stress their commitment to interoperability. Certainly, some of the other browsers are now carrying the burden of 'HTML5' features that won't actually make it into the W3C Recommendation (whenever it finally arrives) and features which are not broadly interoperable with other browsers. Of course, it's not really as clear cut as this. Some of the features that were once counted as part of HTML5 are still very much alive and kicking and will almost certainly be incorporated into future versions of HTML. Try using each of the HTML5-enabled browsers in turn to browse the various HTML5 showcases provided by different vendors, and you will quickly get an idea of where HTML5 interoperability is really at, currently. And yes, the other HTML5 browsers tend to fare well on Microsoft's HTML5 preview site in terms of functionality, suggesting that Micro[...]