I started evaluating BreezeJS to use it with an ASP.NET WebAPI project. First I was happy to find a project that will expose my MVC data in a queryable way to OData and AJAX clients but then I run into a number of annoying things I don’t know where to put, in terms of BreezeJS library architecture – strategic decision
- BreezeJS does not provide a service document (with the top level collections)
- Nor does it provide a standards based $metadata url
- It has an OData like metadata service that is only compatible with the BreezeJS client (good point its JSON formatted)
- The request/response JSON payload is not at all OData compliant
So all in all, the only client I could use to consume my MVC project was BreezeJS.js not even datajs.js, on a way that is similar to OData but is not OData (standards compliant clients will not recognize it – imho why do something that resembles a standards but it not complies it).
Now there is a Microsoft backed project called the Microsoft ASP.NET Web API OData package that does support all of the above mentioned scenarios but this is in alpha stage, albeit with a promising size of community buzz around it. I have tried it extensively and it worked like charm despite is early stage.
So the question is obvious: should I decide in the favor of BreezeJS (they claim to be in rc) and lose standard compliancy, or take the risk of the Microsoft project early stage and stay on track with OData?
My aim is to publish my MVC API to websites and mobile devices over AJAX.
UPDATE: I found that MS has updated its WebAPI OData project recently
Yeah, we had a similar experience, we wanted to access our data from Excel and IOS but with Breezejs it did not work so we changed to Microsoft package and it works just great.