Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 5,968 | Comments: 44,488

filter by tags archive

The consequences of web services architecture

I mentioned before that MS CRM's decision to build all its external API based on web services (that cannot be accessed outside of ASMX proxies) was a big mistake. It is a mistake because you are handing the developer a really clumsy, stupid, API.

I just spent an hour trying to figure out how to set a value to null. An hour!

It couldn't be as simple as this:

customer.new_employeeintouch = null;

It has to be:

customer.new_employeeintouch = new Lookup();
customer.new_employeeintouch.IsNull = true;
customer.new_employeeintouch.IsNullSpecified = true;


Stefan Wenig

Oh come on, this is so logical you should actually be surprised that resharper did not guess it and expand your "= null" to that code ;-)

The Other Steve

Rest assured. Microsoft could have come up with a clumsy, stupid API without involving web services.

Stuart Cam

Yes they could have, its called the Sharepoint 2007 API...

Vladan Strigo

Did you maybe think that MS CRM is only a test of developer patience? Something like MTV Boiling Point thingy?

Hehehehehe... if you can only last for a couple of more things like that.... MS will award you :) :)



Jeremy Gray

Riffing on The Other Steve's point: Microsoft DID come up with a clumsy, stupid API without involving web services.

There's nothing about that API example that is specific to web services or that would have been caused by wanting to expose it as a web service. I'm sure that API was equally clumsy and stupid before it was wrapped for web service exposure.

Let's call a horse a horse, shall we?

Darius Damalakas

Ayende, but I did not get what was the problem with the web services?

Looks more like your opinnion, without having facts.

Ayende Rahien


Do you really think that something like this is a reasonable API?

Darius Damalakas


Absolutely not.

The code smell probably lasts for two miles, or even longer. ;)

It's just that I'm picky, same API can be made without web services. simple as that

Ayende Rahien

Oh, yes.

But the reason for this API is that they decided to base everything on XML proxies.

I am going to assume that without that it would have been better.

I'm hearing that SharePoint managed to do as worse, but I have no personal experience/

Comment preview

Comments have been closed on this topic.


No future posts left, oh my!


  1. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
  2. Production postmortem (4):
    23 Jul 2015 - The case of the native memory leak
  3. API Design (7):
    20 Jul 2015 - We’ll let the users sort it out
  4. What is new in RavenDB 3.5 (3):
    15 Jul 2015 - Exploring data in the dark
  5. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
View all series



Main feed Feed Stats
Comments feed   Comments Feed Stats