Creating Our First ASP
In the last two hours, we've spent quite a bit of time talking in very high-level terms about ASP.NET Web pages and the ASP.NET programming model. We've looked at how to configure our computer to serve ASP.NET Web pages, and we've looked at the role of the Web server. We've examined the HTML and source code portions of an ASP.NET Web page and looked at HTML controls and Web controls. We've created some very simple ASP.NET Web pages and have seen how to use the Web Matrix Project to create these pages.
In this hour we turn from these high-level discussions to actually building a useful ASP.NET Web page that illustrates the concepts discussed in the last two hours. Specifically, we'll be creating an ASP.NET Web page that serves as a financial calculator. This hour will focus on building the ASP.NET Web page, with only a light discussion of the source code and Web controls used. In the next hour, however, we will look at the ASP.NET Web page created in this hour in much more depth.
Fire up the Web Matrix Project and get ready to start creating your first practical ASP.NET Web page!
In this hour we will cover
Creating the design requirements for the financial calculator
Creating the user interface
Adding the needed Web controls to the ASP.NET Web page
Writing the code for the ASP.NET Web page's source code portion
Testing the ASP.NET Web page
Specifying the Design Requirements
Throughout this book we will be creating a number of ASP.NET Web pages, which involves creating both the ASP.NET Web page's HTML and its source code. When writing any piece of software, whether a Windows desktop application or a dynamic Web page, there are a number of development stages. First and foremost we need to decide what the purpose of the software is, along with what features and functionality the software should provide. After this we must sit down and actually write the software. Finally, we need to test the software and fix any bugs or errors that arise.
These three stepsdesign, development, and testingshould always be performed when creating an ASP.NET Web page, but too frequently, developers jump straight to the coding task without spending enough time in the planning stage. This initial planning stage, sometimes called the design requirements stage, is vital for the following reasons:
It lays down a road map for the software project. Having a road map allows us to determine how much progress we've made at a given point, as well as how much we have left to accomplish.
The design requirements spell out precisely what the software will provide.
To get into the habit, we will spend a bit of time discussing what features will be present and what user interface will be employed in the ASP.NET Web page we will be creating in this hour.
Without spending adequate time in the design requirements stage, you would be unable to accurately answer your boss when he asks, "How much longer will this take," or "How much progress have you made?" Additionally, agreeing on a list of feature requirementsa task typically performed during the design requirements stageavoids any confusion at the conclusion of the project; otherwise, your boss and client might wonder why a feature they thought was going to be present was not.
Formulating the Features for Our Financial Calculator
An important step in the design requirements process is to list the features you plan on providing in your application. So far I have just mentioned that we will be creating a financial calculator, but let's take the time to specifically define the features we want to provide.
For our financial calculator let's build a loan calculator designed to determine the monthly payments for a fixed home mortgage. To determine the monthly payments required for a fixed mortgage, three inputs are needed:
The amount of money being borrowed (the principal)
The loan's annual interest rate
The duration of the loantypically 15 or 30 years (the loan's term)
The output of our financial calculator, along with these three inputs, gives us the features of our financial calculator. In a sentence: Our financial calculator will compute the monthly payment of a fixed mortgage when provided the amount, duration, and interest rate of the mortgage.
Deciding on the User Interface
After describing the features that the application will have, the next stage in the design requirements phase is to create a user interface. The user interface, or UI for short, is the means by which the user interacts with the application. How will the user enter these inputs? How will the results be displayed?
With large applications the user interface portion of the design requirements phase can take quite a while and be very involved. For our financial calculator, however, the user interface is fairly straightforward and will exist on a single Web page.
Essentially, our users need to be able to do two things: enter the three inputs discussed earlier and see the result of the calculation. These inputs can be entered via TextBox Web controls. The output of the financial calculator should show the mortgage's monthly cost.
Figure 3.1 contains a screenshot of the ASP.NET Web page financial calculator when first visited by the user. Note the three textboxes for the three inputs. Additionally, there is a button labeled Compute Monthly Cost that the user is instructed to click once having entered the required inputs.
Figure 3.1 The user is asked to enter the three inputs.
Figure 3.2 contains a screenshot of the financial calculator after the user has entered the requested inputs and has clicked the Compute Monthly Cost button. Note that the output shows how much money the mortgage will cost per month.
Figure 3.2 The monthly cost of the mortgage is shown.
In order to display the output of our calculation, we need to add a Label Web control to our ASP.NET page. This Label Web control will display the result of the calculation. Therefore, we should place this Label Web control in the ASP.NET Web page precisely where we want the final output to appear. As you can see from Figure 3.2, I have created the financial calculator so that the output appears below the input TextBoxes.