Wednesday, June 3, 2009

Microsoft Technology Rant!

As I try to build more and more complex applications, I am starting to find incompatibilites between various microsoft technologies.

First one being ADO.NET DataServices & Silverlight:

Since I am building a Silverlight application that uses RESTful services to get data, I wanted to make sure the packets that I am sending are small. Comparing JSON and XML packets, JSON packets in general contact less crap, and hence the reason I choose to use JSON string instead of XML. At the sametime I wanted to be flexible, so I designed my webservices to be able to return JSON and XML based on the ACCEPT header (which is exactly how ADO.NET Data Services swtiches between the two formats).

I am now discovering because of a restriction on WebHeaderCollection, I can't switch between the data, and probably will now be forced to use XML!

Another restriction I discovered is that the silverlight plugin is restricted to POST and GET request methods. The decision is for this restriction is because the plugin is designed for the lowerest denominator of where the plugin might be used. I can see how this makes sense, but I want control over this not microsoft.

When I develop software, I know what kind of computers and software I am targetting. I know the limitations, so I want the flexibility. To get around this, I needed to implement POST Tunneling into my webservice so that I can do a normal POST and an extra Header called "X-HTTP-Method-Override" with the real request method I want.

AARGH!!


No comments: