By: Vinod Unny
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.
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.
|
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.
Let's create a simple Web Service first. Open Web Matri x
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.
|
<%@ WebService language=”VB” class=”astro”
%>
Imports System
Imports System.Web.Services
Imports System.Xml.Serialization
Public Class astro
As Integer) As Integer
Return a + b
End Function
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.
As Date) As String
Dim iMonth, iDay As Integer
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”
|
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”
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
|
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
|
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.
Source: PCQuest