Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF vs ASPX webmethods vs ASMX webmethods

The intent is to create a set of web services that people can reuse. These services mostly interact with a backend DB creating, retreiving and processing data.

We want to expose services so that people can use to create data mashups and other applications.

End users are webpages that can be within our domain or outside our domain. For pages outside the domain we plan to release widgets that would be configured to retreive and display the data.

One requirement - application should be extremely scalable in terms of the number of users it can handle.

Our code base is .net and we are looking at ASPX webmethods (or ASHX), ASMX webmethods and WCF (starting to read up on WCF).

In terms of security/access I found that maintaining sessionid, memberships is doable in all three. WCF seems a bit complicated to setup. I could not immediately see the value of asmx when we can get all done just using a webmethod in aspx (with a little tweaking).

Also, assuming that with the ASP.NET MVC2 I might be able to get clean urls as well for these webmethods.

Questions

Which one will be the most effective in terms of performance and scalability? Any reason why I should choose WCF or ASMX?

Thank you for taking the time to read through this post and apologies for the naive questions since I am new to .net.

EDIT I kind of understand that WCF is the way to go. Just to understand the evolution of the technologies it would be good if someone can throw light on why a aspx webmethod is different from an asmx when similar things (apart from discovery) can be accomplished by both. The aspx webmethods can be made to return data in other formats (plaintext, json). Also, it seems that we can build restful services using ashx. Apologies again for the naive questions.

like image 906
user529265 Avatar asked Dec 03 '10 10:12

user529265


2 Answers

You should use WCF for developing webservices in .Net. WCF is highly configurable with many options for security, transport protocols, serialization, extensions etc. Raw performance is also significantly higher. Also WCF is being actively developed and many new features being added in version 3.5 and 4. There are also variations like WCF data services and WCF RIA services. WCF 4.0 also has better REST and JSON support which you can directly use in ASP.Net / JQuery.

like image 136
softveda Avatar answered Sep 30 '22 14:09

softveda


ASMX is considered deprecated technology and replaced by WCF. So if you are going to start new development which requires exposing reusable services, WCF is the way to go.

like image 21
Darin Dimitrov Avatar answered Sep 30 '22 13:09

Darin Dimitrov