+ All Categories
Home > Documents > A Beginner's Guide to ASP.NET Application Folders

A Beginner's Guide to ASP.NET Application Folders

Date post: 10-May-2017
Category:
Upload: ardit-mezini
View: 218 times
Download: 0 times
Share this document with a friend
21
A Beginner's Guide to ASP.NET Application Folders Table of Contents Overview ASP.NET Application Folders Advantages of ASP.NET Application Folders Different Types of Application Folder Details of Application Folders App_Code Folder Bin Folder App_Data Folder App_Theme Folder App_Browser Folder App_WebReference Folder Resource Folders
Transcript
Page 1: A Beginner's Guide to ASP.NET Application Folders

A Beginner's Guide to ASP.NET Application Folders

Table of Contents

Overview ASP.NET Application Folders

Advantages of ASP.NET Application Folders

Different Types of Application Folder

Details of Application Folders

App_Code Folder

Bin Folder

App_Data Folder

App_Theme Folder

App_Browser Folder

App_WebReference Folder

Resource Folders

App_LocalResource Folder

App_GlobalResource Folder

Page 2: A Beginner's Guide to ASP.NET Application Folders

Overview - ASP.NET Application Folders

ASP.NET 2.0 uses a file-based approach. That means, all class files, resource files, data files and

folders are maintained in a hierarchical structure. If we are working with ASP.NET 2.0, we can

add files and folders using the Add Itemsoption. If we look at a sample application hierarchy, it

will look like the following figure.

We can add as many as files and folders as we like (according to our requirements) within our

solutions,and it won't be necessary to recompile them each and every time they are added. It is

ASP.NET'stask to dynamically compile them when required. So, what ASP.NET 2.0 does is, it

uses a predefined folder structure containing the files (classes, images, resources, etc.), to

compile them dynamically and we can access those files throughout the application. ASP.NET

also provides special folders to maintain files and resources. Let's see the advantages of using

these folders.

Page 3: A Beginner's Guide to ASP.NET Application Folders

Advantages of ASP.NET Application Folders

Following are the main advantages of use of ASP.NET's Application Folders

We can maintain resources (classes, images, code, databases, themes) in an organized

manner, which allows us to develop and maintain sites easily

All files and folders are accessible through the application

We can add as many files as required

Files are compiled dynamically when required

Different Types of Application FolderASP.NET treats the following folders in a special manner. They are:

App_Code Bin App_Data App_Theme App_Browser App_WebReference App_LocalResource App_GlobalResource

Details of the Application FoldersNow, to look at the use of these folders, I am going to start from App_Code.

App_Code Folder

As its name suggests, the App_Code Folder stores classes, typed data sets, etc. All the items that

are stored inApp_Code are automatically accessible throughout the application. If we store any

class files (like .cs or .vb) it compiles them automatically. It automatically creates type data sets

from .xsd (XML schema) files, and creates XML web service proxy classes from WSDL.Let's

have a look at how we can use the App_Code folder.

Page 4: A Beginner's Guide to ASP.NET Application Folders

We can add an App_Code folder, by Solution File → right click → Add ASP.NET

Folder → App_Code. The App_Codefolder is now added to your application.

Note: Try to add one more App_Code folder by using the same steps.Oops...

the App_Code folder is no longer available there. So, ASP.NET allows you to add

an App_Code folder only once.

Now we can add new items like classes, text and xml files into the App_Code folder and we can

also add existing files there.

Page 5: A Beginner's Guide to ASP.NET Application Folders

Let's have a look at one example that shows how it works. Into the App_Code folder, I have

added a classMyCSharpClass.cs.

In that class I have written a small spice of code for adding two numbers.

Now, Try to access this class, from any where in your application. You will see

that MyCSharpClass is accessiblethroughout the application.

Page 6: A Beginner's Guide to ASP.NET Application Folders

If we want to store different classes like .cs or .vb, then what will happen? If we kept

both .cs and .vb classes in the same folder, it will give following compilation error:

This is because all the classes contained in the App_Code folder are built into a single assembly

and it can't have different languages at root level, or even at child level folders in following

manner:

We have a solution to overcome this problem. We have to create separate folders for C# and for

VB or other classes.

Page 7: A Beginner's Guide to ASP.NET Application Folders

Store class files separately in those folders and an configure the folder hierarchy in

the web.config file.

Now I will move to our next part -the Bin folder.

Bin Folder

The Bin folder is used for keeping assemblies inside it. We can access those as a reference from

anywhere of our web application. Use of Bin folder comes into the picture if we use any class

library within our web application. Suppose we are creating a class library called TestLib. After

building the library, we will get TestLib.dll. Now, right click on solution file → Add

Page 8: A Beginner's Guide to ASP.NET Application Folders

References → Project, select the TestLib Project, click on OK. Check the Bin folder, it will

containTestLib.dll and TestLib.pdb files.

Assemblies in the Bin folder do not need to registered on the system, ASP.NET recognizes the

presence of DLLs inside the Bin Folder. Keeping .pdb files inside Bin folder helps us in

debugging. The main limitation of storing assemblies in the Bin folder is that their scope is

limited to the current application. Therefore, they cannot access any code outside of current web

application. [Source]

Next, let's have a look at App_Data folder.

App_Data Folder

The App_Data folder is used as a data storage for the web application. It can store files such

as .mdf, .mdb, and XML. It manages all of your application's data centrally. It is accessible from

anywhere in your web application.The real advantage of the App_Data folder is that, any file you

place there won't be downloadable.

We can add .mdf files to the App_Data folder directly by selecting Add New Item. From there

we can a create table, procedure or function without opening SQL Server.Now if we want to add

that data to our application, we can easily use it.

Page 9: A Beginner's Guide to ASP.NET Application Folders

Now, look at the connection string that we need to write for accessing the App_Data folder's

databases.

We can connect with MyDB.mdf database using this connection string. Check the example

below, which I have used to read the table data from the MyDB.Mdf file.

Page 10: A Beginner's Guide to ASP.NET Application Folders

App_Theme Folder

If you want to give your web sites a consistent look, then you need to design themes for your

web application. TheApp_Themes folder contains all such themes. An App_Theme folder can

contain two subfolders; one for CSS files and the other for skin files. When we add

an App_Theme folder, a subfolder with name Theme1 will be automatically created. We can

change the name of the theme folder as per our requirements.

I will not cover how to create skin files or CSS file in this article, my main concern here is how

to apply them. You can easily find the details ofskins and CSS via Google.

Now that we have to apply the theme to the page, there are several way to do that. We could set

the theme fromaspx page using a page directive in following way:

While we are going to set themefrom aspx page, the list of themes available to us is as shown in

the figure. We can set the theme from the code behind file also, and we can even change theme

at runtime (using HttpHandler).

Page 11: A Beginner's Guide to ASP.NET Application Folders

App_Browser Folder

The App_Browser folder contains browser information files (.browser files). These files are

XML based files which are used to identify the browser and browser capabilities. You will find

the browser files in the following location:

If you want to change a .browser file, just copy the file to the App_Browser folder and change it.

You can create new browser files by just clicking on Add New Item of the App_Browser folder

As I already mentioned, a browser file is a configuration file, it generally looks like this:

Page 12: A Beginner's Guide to ASP.NET Application Folders

App_WebReference FolderAs the name suggests, the App_WebReference folder contain references to any web services. If

we added any web services with our web application, they go automatically into

the App_WebReference folder, in the same way as in windows applications, if we added any

DLLs, they would go under the Reference folder.

Page 13: A Beginner's Guide to ASP.NET Application Folders

Resources Folders

Before starting on the App_GlobalResource and App_LocalResource folders, I would like to give

a small introduction on ASP.NET resources. If you are, say, creating sites for a multinational

company, or a public web sites that can be accessible from all over the world, you need to

consider the best way to address users in different cultures and different countries in different

languages. ASP.NET provides the infrastructure to create web applications that automatically

adjust formatting and language according to the user's preferences, by using resource files.The

main purpose of resource files is localization of the web application.

ASP.NET uses resource files to make supporting multiple languages simpler. Visual Studio 2005

can automatically generate XML resource files that contain text for your controls in different

languages. When a user visits the sites, they can change the languages of the sites based on their

preference. There are two type of resources:

Local resources

Global resources

The App_LocalResource folder contain local resource files and the App_GlobalResource folder

contains global resource files.

App_LocalResource Folder

Local resources are specific to a single web page, and should be used for providing multilingual

functionalityon a web page.

Local resources must be stored in the App_LocalResource subfolder of the folder containing the

web page. Because you might have local resources for every page in your web application, you

might have App_LocalResource subfolders in every folder.

Resource file names should be like <pageName>[.langauge].resx. Some examples of local

resource files are,Mypage.aspx.ex.resx and Mypage.aspx.de.resx. Default.aspx.resx is the base

resource file to use if no other resource file matches with the user's current culture.

Page 14: A Beginner's Guide to ASP.NET Application Folders

If you want to create local resources for a page, open the design view of the page and then

from Tool Menu selectGenerate Local Resource. You will then see that a resource file is

automatically created in the correspondingApp_LocalResource folder.

Note: Default2.aspx.resx is the resource file for Default2.aspx, and Others.aspx.resx is the

resource file forOthers.aspx. Both resource files are inside the App_LocalResource folder.

The following code shows you the XML code for the resource file. To change the resource file,

we can either change the XMLdirectly or use the Resource Editor.

If we change anything on the page, the resource file will be automatically updated. If you want a

test application for Local_Resource, just create a copy of Default2.aspx.resx and rename it

to default2.aspx.fr.resx (for French resources). Now, as a test, I have changed the button's tool

tipfor the French resource to "French ToolTip". Now change your web browser settings and

set French as the default culture.

Page 15: A Beginner's Guide to ASP.NET Application Folders

(For Internet Explorer, use Tools → Internet options → Languages, add French to the top of

the list and test the application)

Test the button tool tip in this way, and you can test it for other languages also.

Page 16: A Beginner's Guide to ASP.NET Application Folders

App_GlobalResource Folder

The App_GlobalResource folder can be read from any page or code that is anywhere in the web

site. Global resources must be stored in the App_GlobalResource folder at the root of the

application. We should use theApp_GlobalResource folder when we need a single resource for

multiple web pages. We candefine ASP.NET control properties by manually associating them

with resources in global resource files.You can add a global resource file by right clicking on

the App_GlobalResource folder and clicking on Add Items. Add .resx files as resources.

We can access these resources programmatically by using the Resource.Resource object.

E.g.:

Label1.Text = Resource.Resource.MyText

We can use the GetLocalResourceObject() and GetGlobalResourceObject() methods to access

global resources, and then cast them to the correct type.

Label1.Text = GetLocalResourceObject("Label1.Text").ToString();

Page 17: A Beginner's Guide to ASP.NET Application Folders

Recommended