Home   Cover Cover Cover Cover

Web interface using ASP.NET

First we have to define the layout of the web page in an aspx file, for example:

<%@ Page language="C#" Inherits="BookStorePage" src="BookStore.aspx.cs" %>
    <form Runat="server">
      <asp:TextBox ID="isbn" Runat="server"/>
      <asp:Button ID ="search" Text="Search" OnClick="Search" Runat="server"/>
      <table border="0">
          <td><asp:Label id="author" Runat="server"/>
          <td><asp:Label id="title" Runat="server"/>
          <td><asp:Label id="price" Runat="server"/>

The program logic is implemented in a code-behind file, for example:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

public class BookStorePage: Page {
  protected TextBox isbn;
  protected Button search;
  protected Label author;
  protected Label title;
  protected Label price;
  public void Search(object sender, EventArgs e) {
    BookStoreService store = new BookStoreService();
    if (store.Available(isbn.Text)) {
      author.Text = store.Author(isbn.Text);
      title.Text = store.Title(isbn.Text);
      price.Text = store.Price(isbn.Text).ToString() + " Euro";
    } else {
      author.Text = title.Text = price.Text = "";

Because the code-behind accesses the web service BookStoreService from exercise 2 we must generate a proxy class (using wsdl.exe as described there).

  wsdl /out:BookStoreService.cs http://dotnet.jku.at/csbook/solutions/19/BookStoreService.asmx?WSDL

This class must be compiled into a DLL that we have to store in the subdirectory bin of our virtual directory:

  csc /target:library /out:bin\BookStoreService.dll BookStoreService.cs

Now we can point a web browser to our aspx file, for example:      http://dotnet.jku.at/csbook/solutions/19/BookStore.aspx
and see the web page that we created.