1.3 Hello WorldIt is a long-standing tradition among programmers to begin the study of a new language by writing a program that prints "Hello World" to the screen. In deference to tradition, our first web page will do just that. The tool you are most likely to use when developing ASP.NET applications is an integrated development environment (IDE), such as Visual Studio .NET. However, you may use any editor you like even the venerable text editor Notepad. There are a number of advantages to using an IDE such as Visual Studio .NET. The Visual Studio .NET editor provides indentation and color coding of your source code, the IntelliSense feature helps you choose the right commands and attributes, and the integrated debugger helps you find and fix errors in your code. The disadvantage of using an IDE, however, is that it may do so much work for you that you don't get a good feel for what is going on in your application. It is like bringing your car in to the mechanic. He does all the work for you, but you never really learn how your engine works. As a beginner, you may be better off doing more of the work yourself, giving up the support of the IDE in exchange for the opportunity to see how things really work. In this chapter, you will use a simple text editor to create the source code for the first several iterations. At the end of the chapter, you will use Visual Studio .NET to create the same web page. (For the remainder of the book, you will find both examples that are created using a text editor and examples that are developed in Visual Studio .NET.) Back in the old days, before ASP and ASP.NET, web pages were created with simple HTML. To better appreciate the features of ASP.NET, you will first create the Hello World web page in HTML, then convert it to ASP, and finally convert it to ASP.NET. 1.3.1 The HTML VersionStraight HTML provides a means of creating and presenting static web pages. This book is not a tutorial on how to write HTML, and we assume you know enough HTML to follow the simple examples provided. For background reading, see HTML: The Definitive Guide, by Chuck Musciano and Bill Kennedy (O'Reilly). To get started, create a very simple Hello World HTML file, as shown in Example 1-1, and call it HelloWorld1.htm. The output is shown in Figure 1-2. Example 1-1. Code listing for HelloWorld1.htm<html> <body> <h1>Hello World</h1> </body> </html> Figure 1-2. Output from Example 1-1The HTML page displays the static text, using the HTML heading1 format. If you want to include dynamic content, such as the results of a query against a database or even the current time, then a static HTML page is not the thing to use. For that you need some sort of server processing. There are a number of alternatives; we will focus on ASP and then on ASP.NET. 1.3.2 The ASP VersionASP allows the programmer to intersperse scripting code snippets within the HTML code. This scripting code can be written in a scripting language such as JavaScript or VBScript. Adding embedded script to your sample web page allows you to insert dynamic content. Modify the previous code listing, converting it to ASP, by changing the filename extension to .asp and adding VBScript to display the current time, as shown in Example 1-2. The output is shown in Figure 1-3. Example 1-2. Code listing for HelloWorld1.asp<html> <body> <h1>Hello World</h1> <br/> <h2>The date and time is <% =Now%>.</h2> </body> </html> Figure 1-3. Output from Example 1-2It may not look like much, but this represents a vast improvement over static HTML. ASP allows you to create web sites full of rich and dynamic content. The scripting allows for queries, reads and writes against databases, implementation of programming logic, control of the appearance of web pages in response to user actions or returned data, and a host of other features. 1.3.3 Hello World the ASP.NET WayYou will complete this evolutionary journey by changing your Hello World web page from ASP to ASP.NET. A key difference in ASP.NET is that you no longer use interpreted languages, but instead use compiled languages. Typically, ASP.NET applications are built using either C# or VB.NET. In either case, the performance will be a great improvement over script. Example 1-3 shows vbHelloWorld1.aspx in VB.NET, and Example 1-4 shows the same program in C#. Example 1-3. Code listing for vbHelloWorld1.aspx<%@ Page Language="VB" %> <html> <body> <h1>Hello World</h1> <h1>ASP.NET Style</h1> <h2>Using VB .NET</h2> <br/> <h2>The date and time is <% =DateTime.Now( ) %>.</h2> </body> </html> Example 1-4. Code listing for csHelloWorld1.aspx<%@ Page Language="C#" %> <html> <body> <h1>Hello World</h1> <h1>ASP.NET Style</h1> <h2>Using C#</h2> <br/> <h2>The date and time is <% =DateTime.Now.ToString( ) %>.</h2> </body> </html> Note that the changes required to convert the ASP page to ASP.NET are minimal:
The output from these changes is shown in Figure 1-4. Figure 1-4. Output from Example 1-3The ASP.NET version uses compiled code (either C# or VB.NET), which gives it a performance advantage. That advantage is meaningless in this simple example but can be very significant with larger and more complex programs. 1.3.4 Hello World Using Visual Studio .NETVisual Studio .NET is a full-featured IDE that provides all sorts of productivity tools for developing .NET applications, both for the Windows desktop and for the Web. These features include:
All of these features, and more, will be covered in subsequent chapters. For now, you will use the IDE to create a simple Hello World web page. Open Visual Studio .NET. You should see a window similar to Figure 1-5. Figure 1-5. Start page in Visual Studio .NETClick on the New Project button in the middle of the screen. This brings up the New Project dialog box shown in Figure 1-6. Figure 1-6. New Project dialog box in Visual Studio .NETThe left side of this dialog box allows you to choose the type of project. In Figure 1-6, Visual Basic Projects is selected. You could click on Visual C# Projects or Visual C++ Projects if you would rather work in either of those languages. The example will be shown in C# and VB.NET; as you will see, it is virtually identical in both languages. The right side of the dialog box lists the various project templates to choose from. Select ASP.NET Web Application. The Name and Location edit fields will contain default values. Change the Name, by editing the Location field, from WebApplication1 to HelloWorld. As you do so, you will see the label below the Location edit field change to: Project will be created at HTTP://localhost/HelloWorld. By default, localhost corresponds to the physical directory c:\inetpub\wwwroot. This line tells you that it will create this new web application in the physical directory c:\inetpub\wwwroot\HelloWorld. Click OK. Visual Studio .NET will now present a design surface in the middle of the screen. Before proceeding any further, change the pageLayout mode from GridLayout to FlowLayout. This will make the resulting HTML simpler and more in line with our previous examples. To do so, click anywhere on the design surface. The Properties Window, visible in the lower right of the screen, should be visible with the word DOCUMENT showing in the edit field at the top of the Properties Window. If the Properties Window is not visible, choose Properties Window from the View menu, or press F4. In the Properties Window, slide down until the pageLayout property is visible. Click on the displayed value, GridLayout. A drop-down arrow will appear. Click on it and select FlowLayout. Immediately, the design surface changes appearance. The results will look something like Figure 1-7. Figure 1-7. Setting FlowLayout in Visual Studio .NETNow you want to add some labels. Notice that the Toolbox on the left edge of the screen currently displays Web Forms controls. You will use those in a moment. For now, you want to place some HTML controls, so click on the HTML button near the bottom of the Toolbox. Click on the Label control and drag it to the design surface. It will automatically go to the upper-left corner of the design surface and contain the word Label. Click on the control, backspace over the word Label, and type the words Hello World. It will look something like Figure 1-8. Figure 1-8. Placing an HTML label in Visual Studio .NETNotice the drop-down lists in the toolbar just above the design surface, one of which displays the word Normal. These are part of the Formatting menu. If they are not visible, choose Toolbars from the View menu and click on Formatting. The drop-down containing the word Normal displays the available block formats. Click on the down arrow and select Heading 1. Then click and drag on the resizing handles to stretch the control so that the phrase does not wrap. The screen should look something like Figure 1-9. Figure 1-9. Resizing an HTML label in Visual Studio .NET
Now add two more HTML labels. To get to the next line on the design surface, click on the design surface outside the Hello World label and press the Enter key. The cursor will move to the next line. Drag another HTML Label control onto the design surface, change its text to ASP.NET Style, change its block format to Heading 1, and then resize it. Move to the next line and create one more HTML label with the words Using Visual Studio.NET. Set its block format to Heading 2 and resize it. When you are done, the screen should look something like Figure 1-10. Figure 1-10. HTML labels in Visual Studio .NETNow it's time to place a control that will display the date and time. To do this, move to the next line on the design surface by clicking on the design surface at the end of the last control and pressing Enter. Then click on the Web Forms button on the Toolbox.
Drag a Label control onto the design surface. It will contain the text Label. If you look at the Properties Window, the object will have an ID of Label1. Look at the Solution Explorer on the right side of the screen. If the Solution Explorer is not visible, choose Solution Explorer from the View menu, or press Ctrl+Alt+L. Right-click on WebForm1.aspx and select View Code. A code window will appear where the design surface was. The tab at the top of the code window will be labeled WebForm1.aspx.cs*.
Slide down the code window until you see the Page_Load method. In C#, this will look like: private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here } In VB.NET, it will look like this: Private Sub Page_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here End Sub Put your cursor at the end of the comment line (after the word here) and press the Enter key. This will move the cursor to the beginning of the next line, properly indented, ready to type. If you are working in C#, enter the following lines of code: Label1.Text = "The date and time is " + DateTime.Now.ToString( ); If you are working in VB.NET, enter these lines of code: Label1.Text = "The date and time is " & _ DateTime.Now.ToString( ) When you type the period after Label1, you see a drop-down of all the possible methods and properties that are valid in this context. (If you don't see the drop-down list, verify that the label name is spelled properly and, if using C#, that the casing is correct.) This is the IntelliSense technology at work. You can either scroll down and select the proper method or function by pressing Tab or any other key, or start typing the desired method or function to narrow the search. When you get to the desired selection, press Tab or any other key. The Tab key enters that selection into your code without your having to type the entire word; pressing any other key enters the selection into your code followed by the key you pressed. The completed Page_Load method in the code window should look like the following in C#: private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here Label1.Text = "The date and time is " + DateTime.Now.ToString( ); } It will look like this in VB.NET: Private Sub Page_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here Label1.Text = "The date and time is " & _ DateTime.Now.ToString( ) End Sub Press F5 to run the web application. When either the C# or VB.NET version is run it will look like the browser shown in Figure 1-11. Figure 1-11. Hello World in Visual Studio .NET
You have now learned how to write an extremely simple ASP.NET web application. The remaining chapters will show you, in greater detail, how to develop rich, robust web applications using many of the controls and tools available from ASP.NET. |