ASP.NET中App_Code,App_Data等文件夹的作用

1. Bin文件夹
Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程
序集。该目录中存在的任何.dll文 件将自动地链接到应用程序。

2. App_Browser文件夹

该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还
是台式机浏览器)的特 征和功能。

3. App_Code文件夹

App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态
编译的类文件。这些类文件自 动链接到应用程序,而不需要在页面中添加任何显式指令或
声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件
——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。

注意 在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型
项目,这可能不受欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理 到不同的类
库中,按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文
件夹中。

App_Code文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言
编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些
类文件,就要在web.config文件中为每个子目录添加一个设置:

<compilation>

<codeSubDirectories>

<add directoryName="VBFolder" />

</codeSubDirectories>

</compilation>

重要的是,特定语言的子目录应在web.config文件中注册,否则,不管它们属于哪个文件夹
,App_Code文件夹下 的所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么
一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个 Visual Basic
.NET类文件移入VBFolder目录中。如果<codeSubDirectories>节中提到的目录不存在,则
会收到一个编译错误提 示。

App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集,其中xxx是随机生成的字符
序列。一个 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创
建的程序集,其中xxx指示子目录的名称,而yyy是一个 随机字符序列。只有在应用程序根
目录中的web.config文件中进行了设置,<codeSubDirectories>节才有效。

在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件,可以创建一个强命名
的程序集。显然,如果该文件夹包含Visual Basic .NET文件,那么将使用
assemblyinfo.vb文件。程序集配置文件可以引用一个.snk文件来保存强名称的密钥。

注意 给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对。通过
使用强名称(Strong Name)工具(sn.exe),可以获得这样一个密钥对。强名称工具是我们可
以在.NET Framework的安装路径中发现的SDK binary之一。密钥对文件通常有一个.snk扩
展名。可以将该文件保存到一个应用程序文件夹中,并在assemblyinfo.cs文件中引用它,
如下所示:

[assembly: AssemblyKeyFileAttribute(@"yourKeyPair.snk")]

注意,Visual Basic .NET是在包含Visual Studio Solution的目录中寻找密钥文件,
而C#编译器则在包含该binary的目录中寻找密钥文件。据此可知,用此属性调整我们使用的
路径,或者把密钥文件放在合适的文件夹中。

在随后发生的任何重新生成中,程序集的名称将发生变化。同时,老的AppDomain请求一结
束,就删除老的程序集。

App_Code文件夹并非只能包含类文件。特别是,它可以包含并能自动地处理代表数据架构的
XSD文件。把一个XSD文件 添加到该文件夹中时,编译器将把它解析成一个有类型的
DataSet类,并将它添加到应用程序作用域中。在ASP.NET 1.x中,这一工作由Visual
Studio .NET向导,使用一个命令行实用程序(xsd.exe)完成的。

注意 使用web.config文件注册一个组件(例如,一个自定义的服务器控件或一
个自定义的HTTP处理程序)时,通常要求指定包含该代码的程序集名称。如 果该组件定义
在App_Code文件夹中,则应该用什么名称来指示程序集?在这种情况下,只是忽略程序集信
息,并规定完整的类名即可。如果没有规定任何程 序集,则ASP.NET运行库将试图从任何
已装载的程序集中装入该类,包括为App_Code文件夹动态创建的程序集。

 

4. App_Data文件夹

App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如Microsoft
Access或Microsoft SQL Server Express数据库、XML文件、文本文件以及应用程序支持
的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET
提供程序存储自身数据的默认位置。

注意 默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变
ASP.NET帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。

5. App_GlobalResources文件夹

 

6. App_LocalResources文件夹

7. App_Themes文件夹

App_Themes文件夹为ASP.NET控件定义主题。主题包含在App_Themes文件夹下的一个文件夹
。根据定义,一个主题是一组带有样式信息的文件。主题文件夹中的文件内容被编译,以生
成一个类,而该类被页面调用以编程的方式设置主题化控件的样式。

App_Themes文件夹列出应用程序的本地主题。 应用程序还可以继承如下文件夹中定义的全
局主题:

%WINDOWS%"Microsoft.NET"Framework"[version]"ASP.NETClientFiles"Themes

从编译的角度看,全局主题和局部主题没有区别。如果一个给定名称的主题,既存在应用程
序的本地主题,又存在服务器机器的全局主题,则本地主题优先适用。

8. App_WebReferences文件夹

在Visual Studio .NET 2003中,一个需要访问Web服务的ASP.NET应用程序,将通过“添
加Web引用”对话框获得相应的.wsdl文件。Web服务的WSDL(Web Service Description
Language)文档,对于从页面使用Web服务是不够的。ASP.NET页面最终是一个托管类,并且
需要与另一个托管类通信。因此,Web服务被一个 代理类所包装。该代理类是由Visual
Studio使用命令行工具wsdl.exe的服务创建的。该代理类尽量包含与Web服务商的Web方法一
样多的方法,并且它结合了Web服务的公共接口 定义的任何自定义的数据类型。

这个操作不需要开发人员付出很大的代价。然而,开发人员显然要依赖于Visual Studio来
生成代理类。如果能够直接把.wsdl文件放在应用程序的目录树的某个地方,并让ASP.NET处
理其余的任务,这样不是更容易、更简单 吗?这正好是App_WebReferences文件夹要做的
事情。

它识别那些用来描述所绑定的Web服务的.wsdl文件,并生成运行时代理类,以便ASP.NET页
面能够以类型安全的方式 放置对Web服务的调用。App_WebReferences文件夹可以包含子文
件夹。子文件夹的名称驱动最后所得到的代理类的命名空间,而WSDL文件 定义类名。例如
,samples.wsdl文件和ProsAspNet20子文件夹将创建一个称为ProAspNet20.Samples的代理
类。该动 态创建的程序集称为App_WebReferences.xxx.dll,其中xxx是一个随机的字符序
列。

文件夹名称
文件类型
注 释

Bin
.dll
包含应用程序所需的任何预生成的程序集

App_Browsers
.browser
包含应用程序特有的浏览器定义文件,ASP.NET用它来识别各浏览器及确定它们的功能

App_Code
.cs、.vb、.xsd、自定义的文件类型
包含作为应用程序的一部分编译的类的源文件。当页面被请求时,ASP.NET编译该文件夹
中的代码。该文件夹中的代码在应用程序中自动地被引用

App_Data
.mdb、.mdf、.xml
包含Microsoft Office Access和SQL Express文件以及XML文件或其他数据存储

App_GlobalResources
.resx
包含在本地化应用程序中以编程方式使用的资源文件

App_LocalResources
.resx
包含页面范围的资源文件

App_Themes
.skin、.CSS、.xsl、附属文件
包含一组定义ASP.NET页面和控件外观的文件

App_WebReferences
.wsdl

时间: 2024-10-28 12:50:49

ASP.NET中App_Code,App_Data等文件夹的作用的相关文章

Android开发中libs和jinLibs文件夹的作用详解

前言 相信各位Android开发中们在Android 开发中经常和这两个文件夹打交道,以前一直迷迷糊糊的使用,没去想过.最近遇到了一些问题,仔细研究了一下,特此记录分享.下面话不多说了,来一起看看详细的介绍吧. libs: librarys 用来存放三方库的地方,比如 *.jar 和 *.aar. 在 Project 视图下能看到, Android 视图下看不到. jniLibs: java native interface librarys Android Studio 新添加的,默认用来存放

Win8.1系统去掉“我的电脑”中的6个文件夹的方法

Win8.1系统去掉"我的电脑"中的6个文件夹的方法 1.下图是系统自带样式,相信大家都见过了的 2.下面开始介绍具体步骤 3.打开"运行"对话框,在win8.1中,笔者比较喜欢使用win+R的组合键打开,然后输入regedit 4.打开注册表后,按照"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace"这个路径依次展开,如下图 5

Excel中添加自己常用文件夹动画教程

<Excel2003入门动画教程35.Excel中添加自己常用文件夹>. 演示动画 操作步骤 在Excel的"打开"和"另存为"对话框中的右侧区域中有一些文件夹的快捷方式,能不能将一些常用文件夹添加到这个地方呢? 在"打开"或"另存为"对话框中,定位到需要添加的文件夹中,然后按工具栏上的"工具"按钮,在随后弹出的下拉列表中,选择"添加到我的位置"选项. 以后我们打开Excel

在Excel 2003中怎么添加常用文件夹?

  我们我应用Excel保存文件时,经常会选择一些指定的文件夹,我们有在 "另存为"对话框中看到右侧区域有一些文件家的快捷方式,我们也可以将常见文件夹添加到这个位置,具体方法如下: 方法/步骤 1.首先打开一个Excel 文档选择 "另存为"; 2.弹出 "另存为"工具栏; 3.下一步选择你要存放的位置,选择如下 4.看到"另存为"工具栏右上角,点击"工具"的下拉箭头,选择"添加到我的位置&quo

Win7系统怎么在库中添加和删除文件夹

  一.将文件夹添加到库中的方法 1.首先你要先创建库,之后选中电脑桌面上的任意一个文件夹,比如"我的任务"文件,然后鼠标右击它选择"包含到库中--文档"选项; 2.在弹出来的文档窗口中,在文档库的区域下,拖动右侧滚动条,然后找到刚刚选中的文件夹,然后也可以很清楚的看到文件夹中所包含的文件. 二.将库中文件夹删除移除的方法 1.在文档窗口中,属于右击左侧的"文档"选项选择"属性"项; 2.在弹出来的文档属性对话框中,选中刚刚添

java-在 sdcard 中创建一系列的文件夹

问题描述 在 sdcard 中创建一系列的文件夹 我想要的文件在 sdcard 中的路径如下: Android/data/mypakagename/android/myfile/abc/myfile.txt 我要从一个 url 中下载 myFile.txt 然后再把它放在这个位置中.现在我在 sdCard 中创建了 Android/data/mypakagename/ 目录. File file = new File("Android/data/mypakagename/android/myfi

客户端-安卓手机客户登陆端开发时Eclipse中应该怎么建文件夹

问题描述 安卓手机客户登陆端开发时Eclipse中应该怎么建文件夹 在手机开发安卓应用客户登陆端(MYSQL作为数据库)应该怎么建立工程,看到有些人写的代码,是几个文件分开的,首先我要写一个登陆的界面,注册界面并且能够与服务器进行通信,采用的是mysQL数据库,servlet.java是放在什么地方,部署信息是放在什么地方,这些文件时如何放置的或者需要哪些文件

android源码中的values-sw580的文件夹

问题描述 android源码中的values-sw580的文件夹 在看android联系人的源码时发现有values-sw580这样的文件夹,不知道这样的文件夹是干嘛的?还有这个文件夹的名字是如何来定义的? 解决方案 res/下文件夹的命名是这样的,名称分为两部分{作用}[-{适用条件}*]如:values/values-land/values-sw600dp/values-sw600dp-land/等, LZ看到的values-sw580dp这个文件夹,首先它里面放的是value,其实,它只有

脚本-如何把图片移到文件夹中并自动创建文件夹?

问题描述 如何把图片移到文件夹中并自动创建文件夹? 一张图片用一个文件夹装,比如说有100张图片,就自动创建100个文件夹,每个文件夹装一张图片,这功能要怎么实现? 解决方案 java代码可以吗,就这么个逻辑 shell或python应该更简单 public static void main(String[] args) { File file = new java.io.File("/home/jerome/Pictures"); file.getAbsoluteFile(); St