Advertisment

Web Services in ASP.NET

author-image
PCQ Bureau
New Update

Web services are a new feature of ASP.NET that allow you to perform remote data operations and recovery by using a standardized data exchange format–XML. So, what is the use of this? Well, there are many technologies currently available on the Internet, such as COM/COM+/DCOM, CORBA and RMI/IIOP, and getting them to talk to each other can be difficult. 

Advertisment

Web services allow you to interact with other information providers without worrying about what they are running either at the backend or even their frontend. Take for example a company stock ticker that you may wish to have, say on your website or Intranet. The data could possibly be coming from a major news site like MSN or NASDAQ. The way you would currently achieve this is either by buying access into their database or by ‘scraping’ their home page HTML for the relevant data and converting into your format. Suppose they go ahead and change their Web design–all the scraping code you would have written would be rendered useless. 

Running the

ASP.NET Web Service show you the method created

Even if you buy access into their system, they may be running a technology that is incompatible or too hard to work with your own. So what do you do?



This is where Web Services help out. By allowing data interchange in the standard XML format, anybody can pick up the data and use it. Let us see how to create and use Web services quickly in ASP.NET. We’ll be using the free Asp.NET Web Matrix tool available from www.asp.net for creating quick templates. 

Advertisment

Let’s create a simple Web Service first. Open Web Matrix and select Simple Web Service as the template. Name the file ASTRO.ASMX, class as astro and namespace as PCQ. You will be presented with a template of a Web service that looks like this.

Enter a data in

the automatically provided text box to get your sun sing 

<%@ WebService language=”VB” class=”astro” %>

Advertisment

Imports System



Imports System.Web.Services


Imports System.Xml.Serialization

Public Class astro

Public Function Add(a As Integer, b As Integer) As Integer 



Return a + b


End Function

Advertisment

End Class

Add the line ‘Imports Microsoft.VisualBasic’ just below the last ‘Imports’ line. Then paste the following Web service Method

into the class below the ‘end function’ line.

Public Function getStar(ByVal dDate As Date) As String



Dim iMonth, iDay As Integer

Advertisment

iMonth = Month(dDate)



iDay = Day(dDate)

If (iMonth = 3 And iDay >= 20) Or (iMonth = 4 And iDay <= 20) Then

getStar = “Aries”

End If



If (iMonth = 4 And iDay >= 21) Or (iMonth = 5 And iDay <= 21) Then getStar = “Taurus”

Advertisment

The WSDL script

for the web service

End If



If (iMonth = 5 And iDay >= 22) Or (iMonth = 6 And iDay <= 21) Then getStar = “Gemini”

End If



If (iMonth = 6 And iDay >= 22) Or (iMonth = 7 And iDay <= 21) Then getStar = “Cancer”

Advertisment

End If



If (iMonth = 7 And iDay >= 22) Or (iMonth = 8 And iDay <= 22) Then getStar = “Leo”

End If



If (iMonth = 8 And iDay >= 23) Or (iMonth = 9 And iDay <= 23) Then getStar = “Virgo”

End If



If (iMonth = 9 And iDay >= 24) Or (iMonth = 10 And iDay <= 23) Then getStar = “Libra”

End If



If (iMonth = 10 And iDay >= 24) Or (iMonth = 11 And iDay <= 22) Then getStar = “Scorpio”

End If



Type ID Text 
TextBox txtDate  
Button btnStar Get

Star Sign 
Label lblStar  



If (iMonth = 11 And iDay >= 23) Or (iMonth = 12 And iDay <= 21) Then getStar = “Saggitarius”

End If



If (iMonth = 12 And iDay >= 22) Or (iMonth = 1 And iDay <= 20) Then getStar = “Capricon”

End If





If (iMonth = 1 And iDay >= 21) Or (iMonth = 2 And iDay <= 18) Then getStar = “Aquarius”

End If



If (iMonth = 2 And iDay >= 19) Or (iMonth = 3 And iDay <= 19) Then getStar = “Pisces”

End If



End Function

A sample

application using the web service 

This simple Web service will return the star sign for a given date. Save the file in Web Matrix as astro.asmx. Now run the Web Service by browsing to http://localhost/pcq/astro.asmx. You can test the Web service out by clicking the method you see and entering a date in the resulting textbox. You will see the output in XML for the same.

Another interesting link on the initial page is ‘Service Description’. Clicking on this will show you an extremely complicated looking XML output. This is the Web Services Description Language or WSDL for the object you just created. This is used as reference documentation (much like a TypeLib) for registering a Web Service for use with other applications.



Now to use this create a normal ASP.NET file in Web Matrix. Go to the Tools>Web Service Proxy Generator and enter the following information:

WSDL URL: http://localhost/pcq/newfile.asmx?WSDL

NameSpace: PCQ



Output Directory: C:\Inetpub\wwwroot\PCQ


Source File: AstroProxy.vb


Assembly: AstroProxy.dll

Click Generate to create the local proxy object for the Web Service. Also create the following controls on the page. (see table)

Double-click the button element. This will take you to the btnStar_Click event handler. Enter code to make the subroutine look like the one in Listing 6.

Private Sub btnStar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnStar.Click



Dim wsAstro As New localhost.Astro()


lblStar.Text = wsAstro.getStar(txtDate.Text)


End Sub

The code is simple enough to understand. All that happens here is that a new variable, wsAstro, is declared to be of the type

localhost.Astro. This datatype is actually the full namespace of the Astro class that you created in the WebService.



The next line simple sets the text of the lblStar label to the value that the Web Service’s method–getStar, returns. The method takes it’s parameter from the date that is entered in the textbox.

Run the form by going to localhost/ pcq/test.aspx (assuming you saved it as such) and enter your birth date and press the button. You will immediately see the message telling you your star sign appear. 

This Webservice can now be used by anyone–whether using Java, CORBA, Linux, PHP or any other Web Technology you can name. This is the power of this technology and you will be providing a valuable Web service, by using this technology for your data-rich site.

Vinod Unny is a Technology Consultant  at Enterprise InfoTech

Advertisment