打印本文 打印本文 关闭窗口 关闭窗口
Hello World:解剖 ASP.NET 项目
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2050  更新时间:2009/4/23 10:48:40  文章录入:mintao  责任编辑:mintao

Hello World: An Anatomy of an ASP .NET Project

by Kaushal Sanghavi

Introduction

Ever since Kernighan and Ritchie wrote a program to display "Hello World" in the C language, programming has never been the same. I have learnt and programmed a variety of new languages since then, and my first attempt at each new programming language has been to greet the world with a "Hello World". ASP .NET is not just a new revision of ASP. It is not ASP 4.0. It is a completely new paradigm and a new programming model and language. What better way to be introduced to this language than with a Hello World?

In this article, I will attempt to write a simple "Hello World" and explain all the code that goes behind this. ASP .NET generates a lot of code and files for you to support the notion of a Web Application, and we will dig into the details of an ASP .NET project.

A note about the attached code is due here. Due to the multiple files that VS .NET creates, the references to drives, and folders, it turned out to be very difficult for me to zip up all the code and link it to this document. It would have been next to impossible for someone to download this code and get it working "out of the box". As a result, I am only attaching the HelloWorld.aspx and HelloWorld.vb files and I would recommend you create an empty ASP .NET project and add these files to your project. A zipped version of the source code is available for download from here.

How to Create an ASP .NET Project

Creating an ASP .NET project is fairly simple. You will need to have the Beta 1 version of Microsoft Visual Studio .NET. In reality, you don''''t need this tool, it is possible to open up your favorite editor and start typing, but VS .NET provides a whole lot more than your simple Notepad. I will focus on creating ASP .NET projects using Microsoft VS .NET Beta 1. In order to create an ASP .NET project, follow these simple steps.

  1. Chose "New Project" from VS .NET IDE.
  2. Under the "Project Type", select "Visual Basic Projects" and chose the "Web Application Template".
  3. Enter the name of your ASP .NET project (ASPHelloWorld in this case) and voila! You have just created your first ASP .NET project.
  4. Rename the WebForm1.aspx to a more meaningful name. In this sample, I have renamed it to HelloWorld.aspx and this is how I will refer to it in this article.

Files generated by VS .NET

When you create an ASP .NET project, VS .NET by default creates the following main files for you. You should be able to view and open these files using the Solution Explorer. Let me start with a list of these files and a quick description of this. In the next section, I will deep deeper into each file and try to explain each in more detail.

ASPHelloWorld.disco
Used for dynamic discovery of Web Services
Config.web
Contains the configuration settings for this Web Application
Global.asax
Similar to the Global.asa file. Contains global events for this Web Application
Global.vb
This contains the event handling code corresponding to the Global.asax
HelloWorld.aspx (by default, this file is called WebForm1.aspx)
Blank by default. This is where your ASP\HTML controls go in.
HelloWorld.vb
This contains the event handling code for the corresponding .aspx file
Styles.css
Style sheet that can be used across the application

In addition to these, VS .NET also creates the following files that are used internally by VS .NET. These contain details about the project settings etc. I would recommend you to open these in notepad and view them in order to understand how VS .NET uses these, but be careful not to modify these. Modifying these files could cause VS .NET to not recognize your project and not be able to open the solution.

ASPHelloWorld.sln
ASPHelloWorld.suo
ASPHelloWorld.vbproj
ASPHelloWorld.vbproj.webinfo

Digging into Code

Now that we have covered the basics, its time to dig into the real code.

Please enter your name

This is what the HelloWorld webform looks like. It asks you for your name and then proceeds to greet the world "Hello World" followed by your name in parenthesis.

Hello World (by Kaushal)

Now that we know what the code does, lets dive into the code.

HelloWorld.aspx Details

Lets start with digging into the details of the .aspx file that has been generated. Keep in mind, I have not written a single line of HTML for this. This is a very VB-sque experience. VS .NET provides a standard Toolbox that contains WebForm controls, HTML controls, Server controls etc, and building the UI is as simple as dragging and dropping these controls and setting their properties in the Properties window (again a feature inspired by the VB 6.0 Properties window). I will take certain sections of the generated code and discuss this. If you want to see how these sections fit together, or would like to look at the code in its entirety, I would suggest that you open the code (from the zip file) in VS .NET and follow along.

Page Level Attributes

The first thing you will notice when you open up the HelloWorld.aspx in an editor is this line:


<%@ Page Language="vb" Codebehind="HelloWorld.vb" Inherits="ASPHelloWorld.HelloWorld"%>

This statement describes certain page level attributes for this aspx file. ASP .NET introduces a new syntactical construct <%@ ... %> which is used for specifying attributes. Every aspx file will have a statement similar to this that describes attributes such as the class that contains the event handler code, the name of the file containing the code, the language etc. This is necessary because ASP .NET cleanly distinguishes the presentation from the code. The aspx file only contains the HTML tags and server controls, while all the code needed to process the events that are fired by these controls are contained in a separate file. This allows the separation of effort between graphic designers who could be building beautiful pages and software engineers who could be writing beautiful code. The current ASP model mixes the HTML tags and controls with code, and anyone trying to read, maintain, or debug a 5000 line ASP file can attest to this.

There are too many ASP .NET attributes that can be covered here, so I will concentrate on some of the most important ones.

  • Language: This tells the ASP .NET compiler (yes! ASP .NET is compiled) that the language used is VB. Currently ASP .NET supports VB, JavaScript and C#.
  • CodeBehind: Determines the file that contains the event handling code for this aspx file.
  • Inherits: Determines the class that will contain methods to handle events on this page.
  • AspCompat: Determines whether this page is backward compatible with ASP.
  • Buffer: Determines whether page level buffering is enabled.
  • EnableSessionState: Determines whether SessionState is enabled.
  • ErrorPage: Determines the URL to be redirected to in the event of an unhandled exception.

ASP .NET Controls

These controls form the heart of ASP .NET. These are rich server side controls that can be used to build a powerful UI on the web similar to Windows based user interfaces.

<asp:label id=lblName runat="server">Please enter your name</asp:label>
<asp:label id=lblHello runat="server"></asp:label>
<asp:textbox id=txtName runat="server"></asp:textbox>
<asp:button id=btnSubmit runat="server" Text="Submit"></asp:button>

As you can see in the code above, the HelloWorld example uses four ASP .Net controls. Note the "asp:" prefix for each control. This is what distinguishes ASP .NET controls from standard HTML controls. We use two labels to display static messages, a textbox to allow the user to input the name, and a button that will be used as a submit button. These server side controls fire events very similar to the way windows controls fire events in a VB 6.0 program. These events can be trapped and code can be written to take action depending on w

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口