ASP.NET 2.0 Web Folders

Trying to figure out how to place objects into your web folder hierarchy in ASP.NET 2.0?  Here is an article on how to appropriately use all of the App_* folders:


Exceprt below:

Web Site Layout

As in earlier versions of Visual Studio, you keep your Web pages in the root of the Web site and in subfolders, as required by your application. However, your Visual Web Developer Web site can contain the following subfolders that have specific characteristics:

  • App_Browsers folder   Contains browser definition files that ASP.NET uses to identify individual browsers and determine their capabilities.

  • App_Data folder   Contains Microsoft Access databases (.mdb files), XML files, and other data stored in local files. The user account that is used to run the application (for example, the local ASPNET account) has permissions to read, write, and create files in this folder. Various ASP.NET application features, such as the providers for membership and roles, as well as the Web Site Administration Tool, are configured to work with the App_Data folder specifically.

  • Bin folder   Contains compiled code, as in earlier versions of Visual Studio. Any classes represented by code in the Bin folder are automatically referenced in your Web site. For more information, see Shared Code Folders in ASP.NET Web Sites.

  • App_LocalResources folder   Contains .resx files that are bound to a specific page. You can define multiple .resx files for each page, each .resx file representing a different language or language/culture combination. For more information, see Localizing ASP.NET Web Pages Using Resources and How to: Create Resource Files for ASP.NET Web Sites (Visual Studio).

  • App_GlobalResource folder   Like the App_LocalResources folders, but contains .resx files that are not bound to a specific page. Resource values in .resx files in the App_GlobalResource folders can be accessed programmatically from application code.

  • App_Code folder   Contains source code files. The code is compiled as part of your application and is referenced automatically. The App_Code folder works much like the Bin folder, except that you can put source code in it instead of compiled code. While you are working in Visual Web Developer, the source code in the App_Code folder is compiled dynamically so that IntelliSense can reference any classes defined in the files. For more information, see Shared Code Folders in ASP.NET Web Sites.

  • App_Themes folder   Contains a collection of files that define the appearance of ASP.NET Web pages and controls. For more information, see ASP.NET Themes and Skins Overview.

  • App_Browsers folder   Contains .browser files that define browser capabilities.

  • App_WebReferences folder   Contains files used to create a reference to a Web service (in the same project or external to the project), including .disco and .wsdl files. For more information, see How to: Add a Reference to a Visual Studio Project in a Web Site.

Visual Web Developer does not create these folders by default, except the App_Data folder. In some cases, the folders are created by utilities. For example, running the Generate Local Resource command creates the App_LocalResources folder. In other cases, you can create the folders manually.