1.
Bin文件夹
Bin文件夹包含应用
程序所需的,用于控件,组件或者需要引用的任何其他代码的可部署程序集.该目录中存在的任何.dll文件将自动地链接到应用程序.如果在该文件夹中留有不用的或过期的文件,则可能出现"二义性引用(ambiguousreference)"异常的风险.换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.
NET运行库不能决定应该使用哪一个程序集,从而抛出一个异常.在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误.为了避免这种错误,一定不要在该文件夹中保留任何不必要的程序集,或者至少要从配置文件的
节中删除如下代码行:在上表所列所有文件夹中,只有Bin可以被ASP.NET1.x应用程序识别.该文件夹是强制性的.
-------------------------------------------------------------------------------2.App_Browser文件夹该可选的文件夹包含.browser文件..browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特征和功能.ASP.NET在安装路径下的Config\Browser文件夹中安装了大量.browser文件,这些文件供所有应用程序共享.我们只是把当前应用程序特有的浏览器文件放在App_Browser文件夹下..browser文件的内容即时动态地进行编译,以便向ASP.NET运行库提供最新的浏览器信息.让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景.设想应用程序使用了一个在某个浏览器下不能有效呈现的控件.在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫使ASP.NET使用一个不同的适配器来生成该控件.假设browserID与ASP.NET识别的标准浏览器之一相匹配,则上文所示的.browser文件指示在指定的浏览器下使用CustomControlAdapter呈现CustomControl.
--------------------------------------------------------------------------------
3.App_Code文件夹App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件.这些类文件自动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性.App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件——自定义控件,辅助类,build提供程序,业务类,自定义提供程序,HTTP处理程序等.注意在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译.对于大型项目,这可能不受欢迎,而且很耗时.为此,鼓励大家将代码进行模块化处理到不同的类库中,按逻辑上相关的类集合进行组织.应用程序专用的辅助类大多应当放置在App_Code文件夹中.App_Code文件夹中存放的所有类文件应当使用相同的语言.如果类文件使用两种或多种语言编写,则必须创建特定语言的子目录,以包含用每种语言编写的类.一旦根据语言组织这些类文件,就要在web.config文件中为每个子目录添加一个设置:VBFOLDER" />重要的是,特定语言的子目录应在web.config文件中注册,否则,不管它们属于哪个文件夹,App_Code文件夹下的所有文件将被编译成一个单独的程序集.上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个VisualBasic.NET类文件移入VBFolder目录中.如果节中提到的目录不存在,则会收到一个编译错误提示.App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集,其中xxx是随机生成的字符序列.一个给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创建的程序集,其中xxx指示子目录的名称,而yyy是一个随机字符序列.只有在应用程序根目录中的web.config文件中进行了设置,节才有效.在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件,可以创建一个强命名的程序集.显然,如果该文件夹包含VisualBasic.NET文件,那么将使用assemblyinfo.vb文件.程序集配置文件可以引用一个.snk文件来保存强名称的密钥.注意给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对.通过使用强名称(StrongName)工具(sn.exe),可以获得这样一个密钥对.强名称工具是我们可以在.NETFramework的安装路径中发现的SDKbinary之一.密钥对文件通常有一个.snk扩展名.可以将该文件保存到一个应用程序文件夹中,并在assemblyinfo.cs文件中引用它,如下所示:[assembly:AssemblyKeyFileAttribute(@"yourKeyPair.snk")]