Code Implementation
MathLibService.asmx
<%@ WebService Language="VB" Class="MathLibService" %>
MathLibService.vb
Imports System.Web.Services
<WebService(Namespace:="http://tempuri.org/")>
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Public Class MathLibService
Inherits System.Web.Services.WebService
<WebMethod()>
Public Function Add(a As Integer, b As Integer) As Integer
Return a + b
End Function
<WebMethod()>
Public Function Subtract(a As Integer, b As Integer) As Integer
Return a - b
End Function
<WebMethod()>
Public Function Multiply(a As Integer, b As Integer) As Integer
Return a * b
End Function
<WebMethod()>
Public Function Divide(a As Integer, b As Integer) As Double
If b = 0 Then
Throw New Exception("Cannot divide by zero")
End If
Return a / b
End Function
End Class
ServiceClient.aspx
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="ServiceClient.aspx.vb" Inherits="ServiceClient" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Math Client</title>
</head>
<body>
<form id="form1" runat="server">
<h2>Math Client</h2>
Number 1: <asp:TextBox ID="txtNum1" runat="server" /><br /><br />
Number 2: <asp:TextBox ID="txtNum2" runat="server" /><br /><br />
<asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" />
<asp:Button ID="btnSubtract" runat="server" Text="Subtract" OnClick="btnSubtract_Click" />
<asp:Button ID="btnMultiply" runat="server" Text="Multiply" OnClick="btnMultiply_Click" />
<asp:Button ID="btnDivide" runat="server" Text="Divide" OnClick="btnDivide_Click" />
<br /><br />
Result: <asp:Label ID="lblResult" runat="server" Text="" />
</form>
</body>
</html>
ServiceClient.aspx.vb
Partial Class ServiceClient
Inherits System.Web.UI.Page
' Use the proxy class (generated using Add Web Reference)
Dim proxy As New localhost.MathLibService()
Protected Sub btnAdd_Click(sender As Object, e As EventArgs)
lblResult.Text = "Result: " & proxy.Add(Convert.ToInt32(txtNum1.Text), Convert.ToInt32(txtNum2.Text))
End Sub
Protected Sub btnSubtract_Click(sender As Object, e As EventArgs)
lblResult.Text = "Result: " & proxy.Subtract(Convert.ToInt32(txtNum1.Text), Convert.ToInt32(txtNum2.Text))
End Sub
Protected Sub btnMultiply_Click(sender As Object, e As EventArgs)
lblResult.Text = "Result: " & proxy.Multiply(Convert.ToInt32(txtNum1.Text), Convert.ToInt32(txtNum2.Text))
End Sub
Protected Sub btnDivide_Click(sender As Object, e As EventArgs)
Try
lblResult.Text = "Result: " & proxy.Divide(Convert.ToInt32(txtNum1.Text), Convert.ToInt32(txtNum2.Text))
Catch ex As Exception
lblResult.Text = "Error: " & ex.Message
End Try
End Sub
End Class
Code Implementation
Default.aspx
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="ServiceClient._Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Math Service Client</title>
</head>
<body>
<form id="form1" runat="server">
<h2>Math Operations</h2>
<div>
<label>First Number:</label>
<asp:TextBox ID="txtNumber1" runat="server" />
</div>
<div>
<label>Second Number:</label>
<asp:TextBox ID="txtNumber2" runat="server" />
</div>
<div>
<label>Operation:</label>
<asp:DropDownList ID="ddlOperation" runat="server">
<asp:ListItem Text="Add" Value="Add" />
<asp:ListItem Text="Subtract" Value="Subtract" />
<asp:ListItem Text="Multiply" Value="Multiply" />
<asp:ListItem Text="Divide" Value="Divide" />
</asp:DropDownList>
</div>
<br />
<div>
<asp:Button ID="btnCalculate" runat="server" Text="Calculate" OnClick="btnCalculate_Click" />
</div>
<br />
<div>
<asp:Label ID="lblResult" runat="server" Font-Bold="True" />
</div>
</form>
</body>
</html>
Default.aspx.vb
Imports MathLibClient.MathLibService
Public Class _Default
Inherits System.Web.UI.Page
Protected Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
Try
Dim service As New MathLibServiceSoapClient()
Dim num1 As Integer = Convert.ToInt32(txtNumber1.Text)
Dim num2 As Integer = Convert.ToInt32(txtNumber2.Text)
Dim operation As String = ddlOperation.SelectedValue
Dim result As String = ""
Select Case operation
Case "Add"
result = service.Add(num1, num2).ToString()
Case "Subtract"
result = service.Subtract(num1, num2).ToString()
Case "Multiply"
result = service.Multiply(num1, num2).ToString()
Case "Divide"
result = service.Divide(num1, num2).ToString()
End Select
lblResult.Text = "Result: " & result
Catch ex As Exception
lblResult.Text = "Error: " & ex.Message
End Try
End Sub
End Class