We are trying to make up our minds where to start with a new project of upgrading our website. As we have upgraded our old back-end system in .NET we really want to keep working in C# for many reasons like (but not limited to) TFS integration, the development environment, and testing, Azure integration, integrated security, proper documentation, etc.
What we also know we want to accomplish is to start with a web based API and consume our own services, first on a regular website, later also on mobile devices. We have been playing around with WCF (OData enabled) Data services and the new Web API which comes with MVC4.
My personal preference is working with the Data Services, as more of the OData standard is implemented, like the $select option, which makes the API we would create very simple and extremely useful, and we can ensure we only request the data we use from the client, in JSON, XML, and probably other formats we will not immediately use.
Now as our first project will be to implement a website that consumes either the Data service, or the Web API, which frameworks should we look at to consume the services from the client side. Ideally we would like to serve the website from another machine and have the client to connect to the API using Ajax (or JSONP) to read from the service (in a later stage also the CUD actions).
For creating the new website we want to buy a set of tools, and we have evaluated Telerik, DevExpress and Ext.NET, but none of these seem as compatible with either of these services as they claim on their site (but perhaps I am missing something). We want to try to stay away of creating our own javascript.
I guess my questions are the following:
- Which of the techniques for the API is better and why? DataService seems to be quite old - will it still be supported in the future? Is there a third option I should evaluate?
- Did someone choose to take on a similar project and can you share your experiences?
- Which of the frameworks of Telerik, DevExpress, Ext.NET or any other is more useful to consume any of these APIs from the client side?
- Should we use WebForms or MVC and why?