views:

51

answers:

2

I am about to start my first web service in ASP.NET. when searching in google it shows

RestFul Service

SOAP services

WCF

Which one is stable?.What is the key differece among them?

+4  A: 

Define "stable" ;-p

If you mean "time in the field", then for .NET the order would be SOAP (asmx), WCF, REST

Note that there is a big shift between the data-centric REST services (typical of ADO.NET Data Services) and WCF / asmx, which are operation-centric.

REST is perhaps more flexible for the caller; WCF / asmx has more rigid control (in terms of exposing discreet operations). Both have their places, but I tend to still make my default the operation-centric approach (via WCF) in most cases (a defined number of things to test, etc).

WCF is a bit more evolved than the original web-services offered in .NET, and has better WSE support (although asmx can be extended via WSE3). If you are starting today, WCF would be a better choice than asmx in most cases.

Marc Gravell
I mean which is quite worth to use.
Peter
It depends on what you want. WCF would be my default, with ADO.NET Data Services **if** you understand the data security aspects.
Marc Gravell
oh! No ,I do nott want to go for ADO.NET Data Service with Entity Framework ,as a starter it will beat my head.Just i watched some MSDN Video on Entity Framework . So My Plan is to use WCF Data Services along with LINQ to SQL.Just I am searching some articles to see wheter it is possible or not.Thank you Marc for your reply.
Peter
+4  A: 

Definitely go with WCF - it's the current and future technology for cross-machine communication.

The question of SOAP vs. REST is a bit like manual vs. automatic transmission - it depends on your needs and preferences.

SOAP is in general a bit more sturdy - it has things like WSDL and XSD - schema and metadata to clearly and definitely describe a service and all its methods and all its data being passed around. Highly useful in enterprise environments.

REST on the other hand is the much more approachable, easy to understand, just-point-your-code-at-a-URL-and-get-XML-back approach. Works well, it's almost human-readable, less overhead, but also less "security" - since there's really hardly any metadata describing the service - either you know it yourself since you're the author of the service, or the service provider has a good documentation somewhere.

So there's no clear winner in my opinion - pick the one closer to your needs and your preferences.

marc_s