Structure of an ASP.NET Application

A logical way to begin a chapter on ASP.NET applications is to define the term 鈥淎SP.NET application.鈥?An ASP.NET application consists of all the files in a virtual directory and its subdirectories. If your Web server has a subdirectory named MyApp and MyApp is a virtual directory, all the files in MyApp and any subdirectories that stem from it make up an ASP.NET application. Typically, an application includes one or more of the following file types:

An application can contain an unlimited number of ASPX and ASCX files, each representing a different Web page or portion of a page. Only one Global.asax file is permitted. The number of Web.config files isn鈥檛 restricted, but each must reside in a different directory. ASP.NET places no limit on the number of DLLs an application uses. DLLs are normally found in the application root鈥檚 bin directory.

Figure 9-1 diagrams the physical structure of a very simple ASP.NET application that consists of a lone Web form in an ASPX file. The directory containing the ASPX file has been transformed into a virtual directory with the IIS configuration manager and is therefore URL-addressable on the server.

Figure 9-1
A simple ASP.NET application.

Figure 9-2 depicts an ASP.NET application that鈥檚 more representative of those found in the real world. The virtual directory at the top of the directory hierarchy (the 鈥渁pplication root鈥? houses several ASPX files, each representing a single page in the application, as well as ASCX files containing user controls. It also holds a Global.asax file containing event handlers and other elements that are global to the application. Underneath the virtual root is a pair of subdirectories containing ASPX files of their own. Each directory contains a Web.config file containing configuration information for the file or files in that directory. Inside the virtual root鈥檚 bin subdirectory are DLLs containing code-behind classes, custom controls, and other custom types used by the application.

Figure 9-2
A more complex ASP.NET application.