In the past 10 months, we were discussing about ASP.NET MVC, Entity Framework, jQuery, LINQ and a lot more stuff. Today, we are going to start with ASP.NET Web Services.
What are Web Services and Why Should We Use Them?
Web services are a standardized way for developing interoperable applications. That is, enabling an application to invoke a method of another application. These applications can be on the same computer or on different computers. Web services use open standards and protocols like HTTP, XML and SOAP. Since these are open and well known protocols, applications which are built on any platform can interoperate with web services. For example, a JAVA application can interoperate with a web service which is built using .NET. Similarly, a web service which is built using JAVA can be consumed by a .NET application.
Hyper Text Transfer Protocol (HTTP) is the protocol which is widely used by web services to send and receive messages. The messaging protocol is SOAP. SOAP stands for Simple Object Access Protocol. SOAP messages are in XML format.
Let’s try to understand these with an example. To create a sample ASP.NET web service, follow the below steps.
Step 1
Create an ASP.NET Empty Web Application and name it as WebServicesDemo
.
Step 2
Right click on WebServicesDemo
project in solution explorer and add New Item. From the Add New Item dialog box, select Web Service. Change the name from WebService1.asmx to CalculatorWebServices.asmx.
Notice that WebService
is a class that is decorated with [WebService]
attribute and inherits from System.Web.Services.WebService
base class. The [WebService]
attribute tells that this class contains the code for a Web Service. WebService Namespace is used to uniquely identify your web service on the internet from other services that are already there on the web. WebService Namespace can be any string
, but it is common to give a company’s internet domain name as they are usually unique. For example, [WebService(Namespace = "http:// BestTEchnologyblog.com/webservices")]
To allow a web service to be called from JavaScript using ASP.NET AJAX, decorate the WebService
class with [System.Web.Script.Services.ScriptService]
attribute.
Step 3
Copy and paste the following code in CalculatorWebServices.asmx.
using System.Web.Services;
namespace WebServicesDemo
{
[WebService(Namespace = "http://BestTEchnologyblog.com/webservices")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class CalculatorWebServices : System.Web.Services.WebService
{
[WebMethod]
public int Add(int firstNumber, int secondNumber)
{
return firstNumber + secondNumber;
}
}
}
Notice that the CalculatorWebServices
class contains a single method called Add()
. This method adds 2 numbers and returns the sum. This method is decorated with [WebMethod]
attribute. If you want this method to be exposed as part of the web service, the method must be public
and should be decorated with [WebMethod]
attribute. This attribute has got several properties which can be used to configure the behavior of the XML web service method. We will discuss these properties in the later articles.
At this point, we have successfully created a Web Service. Build the solution and run the application. We should get a page like below:
We can see a link called Service Description on the upper right hand side of the page. If we click on the link, it takes us to WSDL page. WSDL stands for Web Service Description Language.
On the other hand, when we click on the Add
method, it will take us to a page where we can test our web service method. Let’s pass firstNumber
as 10
and secondNumber
as 20
and click on the Invoke button.
We will get a result of 30.
So points here to ponder are the following:
WebService
is a class that is decorated with [WebService]
attribute and inherits from System.Web.Services.WebService
base class. The [WebService]
attribute tells that this class contains the code for a web service. - WebService Namespace is used to uniquely identify your web service on the internet from other services that are already there on the web. WebService Namespace is common to be given a company’s internet domain name as they are usually unique.
- To allow a web service to be called from JavaScript using ASP.NET AJAX, decorate the
WebService
class with [System.Web.Script.Services.ScriptService]
attribute. - If you want a method to be exposed as part of the web service, the method must be
public
and should be decorated with [WebMethod]
attribute.
What’s Next?
In the next article, we will discuss about Consuming a web Service from a client application.
Reference: Arun Ramachandran (http://BestTEchnologyBlog.Com)