embedded server code. Here is the source code, which consists of HTML along with some VB.NET script code. There are also some special tags for "server controls," recognized by ASP.NET.
<!-- Hello.aspx --> <%@ Page Language="VB" %> <HTML> <SCRIPT RUNAT="SERVER"> Sub cmdEcho_Click(Source As Object, e As EventArgs) lblGreeting.Text="Hello, " & txtName.Text End Sub </SCRIPT> </HEAD> <BODY> <FORM RUNAT="SERVER">Your name: <asp:textbox id=txtName Runat="server"></asp:textbox> <p><asp:button id=cmdEcho onclick=cmdEcho_Click Text="Echo" runat="server" tooltip="Click to echo your name"> </asp:button></p> <asp:label id=lblGreeting runat="server"></asp:label> <P></P> </FORM> </BODY> </HTML>
You can run the program using the URL http://localhost/Chap14/ Hello.aspx or by clicking on the link Hello.aspx in the home page of the examples programs. The page shows a text box where you can type in your name, and there is an "Echo" button. Clicking the button will echo your name back, with a "Hello" greeting. The simple form is again displayed, so you could try out other names. If you slide the browser's mouse cursor over the button, you will see the tool tip "Click to echo your name" displayed in a yellow box. Figure 145 illustrates a run of this example.
Figure 14-5 Running the Hello.asp echo program.
This little program would not be completely trivial to implement with other Web application tools, including ASP. The key user-interface feature of such an application is its thoroughly forms-based nature. The user is presented with a form and interacts with the form. The server does some processing, and the user continues to see the same form. This UI model is second nature in desktop applications but is not so common in Web applications. Typically the Web server will send back a different page.
This kind of application could certainly be implemented using a technology like ASP, but the code would be a little ugly. The server would need to synthesize a new page that looked like the old page, creating the HTML tags for the original page, plus extra information sent back (such as the greeting shown at the bottom in our echo example). A mechanism is needed to remember the current data that is displayed in the controls in the form.
Another feature of this Web application is that it does some client-side processing toothe "tooltip" displayed in the yellow box is performed by the browser. Such rich client-side processing can be performed by some browsers, such as Internet Explorer, but not others.
As can be seen by the example code, with ASP.NET it is very easy to implement this kind of Web application. We will study the code in detail later. For now, just observe how easy it is!
ASP.NET provides a programming model and infrastructure that facilitates developing new classes of Web applications. Part of this infrastructure is the .NET runtime and framework. Server-side code is written in .NET compiled languages. Two main programming models are supported by ASP.NET.
Web Forms helps you build form-based Web pages. A WYSIWYG development environment enables you to drag controls onto Web pages. Special "server-side" controls present the programmer with an event model similar to what is provided by controls in ordinary Windows programming. This chapter discusses Web Forms in detail.
Web services make it possible for a Web site to expose functionality via an API that can be called remotely by other applications. Data is exchanged using standard Web protocols and formats such as HTTP and XML, which will cross firewalls. We will discuss Web services in the next chapter.
Both Web Forms and Web services can take advantage of the facilities provided by .NET, such as the compiled code and .NET runtime. In addition, ASP.NET itself provides a number of infrastructure services, including state management, security, configuration, caching, and tracing.
Web Forms (and Web services) can be written in any .NET language that runs on top of the CLR, including C#, VB.NET, and C++ with Managed Extensions. This code is compiled, and thus offers better performance than ASP