I guess Steve thinks otherwise ;)
To answer your question(s): It depends. What do you want to achieve? Who is your audience?...
.Net has the advantage that the development tools are much more sophisticated, the rate of errors is much lower and productivity is higher, BUT only after you have enough proficiency in it. So if you have enough resources I would go for .Net as the backend,
otherwise I would look into something like Ruby or even Python (despite it's shortcomings).
For backend dataservices check out odata.org. That's the way to go. And it can be set up in a matter of days using the Microsoft Stack.
Regarding this library, well there is the REST API and there is Open Graph....
And to answer the cloud question: IMHO it is the way to go, We are very satisfied with Rackspace (although they don't support .Net 4 yet on there Cloud Sites Product, which means that we have to have virtual servers there as well) and Azure (They of course
have the pricing issue for low usage roles). If you need to process huge amounts of data then you have to do serious calculations before deciding which route to take, as SQL Server access is expensive and you might want to look into NoSQL solutions (maybe
you can model most of your data requirements using MapReduce?)