As a web developer I've discovered the joys of working with KnockoutJS lately but when it comes to working with the server I'm pretty much left on my own. I've considered BreezeJS and JayData for their CRUD capabilities and batch operations but I'm still not sure on which one suits me best.
I'm focused on ASP.NET MVC development with EF right now but I might switch to other platforms later and so I'd prefer not to be restricted to one particular framework. In this respect JayData offers a number of providers over BreezeJS like OData, webSQL, IndexedDB, localStore, Facebook and YQL which is almost overwhelming. BreezeJS does support OData however but only for consumption.
But how about ease of use, documentation and other crucial features which I might not have thought of?
Thanks for your help in helping me choose between them.
I'm member of JayData dev team, but I've tried Breeze, too. Comparing them by the easy of use would be subjective, it depends on your taste. The intention of these libraries are the same: protect the developer from implementing protocol and concentrate on data management. But JayData isn't just a ORM library, but a unified data management paradigm and tool, which can be used on the server-side to build your own PaaS/BaaS. As JayData was published in May 2012 with the provider-model, we had more time to implement more data providers (you missed the MongoDB on server-side and WebAPI, which will be released in few days) and support many developer platforms. I would mention the TypeScript support and the online-offline capability thanks to the unified API, which is important if you want to use the library now.
Breeze has also nice features on the roadmap and I'm sure you it will be a useful library in general, not just for consuming WebAPI services in a comfortable way.
The documentations is more or less the same, both team offer enterprise and community support.
Both dev teams are helpful and listening to the tags, so you can ask how could these libraries solve the business problem or meet the technical requirements of your project.