Wednesday, 27 June 2012

MSFT Frustrations

Anyone else wondering who’s calling the shots over in Redmond at the moment? I wonder if they realise just how hard they are making things for us developers? Things that are bugging me at the moment include;

  • They still think IE is king and continue to build products like CRM to be IE only.
  • They don’t force a better world by making IE updates be “required” on windows update – imagine if IE7 disappeared overnight!
  • Stupid decisions like the one to not support IE9 on XP.
  • Marketing hype – like CRM is a development platform, when there’s no development story around it at all.

The reason I’m so narked today is, I’m working on a project that features significant integration to CRM Online, which has limited options for heavy customisation. To do anything useful, you either need to use Silverlight or an externally hosted ASP.NET app (on azure in my case) and use single sign on between the two. And this presents a set of problems;

  • This is an application within a large enterprise.
  • They still have thousands of desktops using XP
  • They still have thousands of desktops with IE7
  • They also have chrome on all these desktops.
  • The requirement is for a rich, HTML5 UI
    • Think single page apps, backbone, moustache, rest interfaces and an MVC application marshalling requests for data to CRM and a bunch of external services.

You can probably see where I’m going with this.

  • A HTML5 UI won’t work on IE7 – it’s not compliant with many of the standards needed, meaning we need to work in lots of IE7 specific mark-up and styling.
  • To test IE7, I need a virtual environment.
  • I can’t switch to chrome as dynamics thinks it’s a mobile browser.
  • I can’t upgrade to IE9 as it’s not available on XP.
  • Upgrading thousands of desktops to Windows 7 and IE9 isn’t going to happen overnight.
  • I can’t use Silverlight – it’s dead technology. (We all know there isn’t going to be a Silverlight 6)

It’s not the end of the world, but I am confused by their lack of co-operation across divisions.

Why couldn’t they have just put the effort in to make dynamics cross browser? Why don’t they just force us all to upgrade to the latest and greatest through windows update? Why don’t they learn from chrome and make IE9 available on XP? Why kill off a perfectly good RIA technology for LOB applications.

To their credit, as far as CRM is concerned, there is an update coming – the Q2 2012 update for CRM will be cross browser, so I guess I should be thankful there, but we’re going live on Monday, so that doesn’t help with immediate concerns.

I look forward to the day when CRM has a real developer story similar at least to SharePoint solutions, to when cross domain calls are properly nailed and ubiquitous in the browser, where single sign on is a breeze and where everyone’s browser is fully compliant with the latest standards.

I can dream….


  1. Yes, unfortunately the developer story in the Dynamics division is pretty sad. I only wish that this group would some how get under Scott Gu's leadership and seriously make this a true developer platform. I can't tell you how many times I've needed the source code to see what the heck was going on under the covers. Don't even get me started with their Linq implementation. Seriously, how can you can call yourself a platform if you can't do basic math queries or other complex queries with your query engine? This product has a lot of potential but I don't think it will reach it from a developer standpoint under the Business Division at Microsoft.

  2. I really can't understand anyone opting to use Dynamics or even SharePoint for any serious web development. Microsoft didn't get the message that the Rails developers shown to the world: Less IS MORE, MUCH MORE. If you make a "platform" as simple as possible, and make it open, embracing standards everywhere, it will be USED and USEFUL.

    Currently I really prefer to spend some money on a Telerik's component suite (they've got it right and are switching almost everything from ASP.NET to ASP.NET MVC and a huge and powerful JavaScript library that will really help creating a rich web client interface... and that comes from a fan of DevExpress controls since the Delphi's golden time!!!) and roll out everything on my own with ASP.NET MVC and perhaps some open source, minimal framework based on the "web stack of love..."

    Microsoft was never, ever good at creating application frameworks. And MSFT is far, far from a reliable "partner".

  3. Thanks for the comments - and I'm firmly with you - I'd prefer to build the required functionality with MVC as a central application, but in this particular case, I do understand the usefulness of CRM.

    I mean, trying to recreate some of the features within represents many man months of development effort, which can just be used out of the box (workflow, queues, assignments, calendering, service schedule), but extending the platform is a royal pain in the backside.

    I've settled on an approach now that I think gives us a workable solution - basically I avoid extending CRM directly and instead build all of my custom UI within an MVC application on azure - CRM publishes it's events to azure service bus and my app then processes as normal. Any custom UI is surfaced through this MVC application, with single sign on between the two platforms using federated identities.

    This means I'm rarely writing code within CRM, so have none of the restrictions and there's a logical de-coupling between the two areas.

    They really should build up a better development story for CRM though, not as a platform per-say, but as a product with good extension hooks. Sharepoint does it much better, but not their cloud offering - Sharepoint Online - don't get me started on that one!