asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET中App


发布日期:2023年08月17日
 
ASP.NET中App
Bin文件夹

Bin文件夹包含应用程序所需的用于控件组件或者需要引用的任何其他代码的可部署程

序集该目录中存在的任何dll文 件将自动地链接到应用程序

App_Browser文件夹

该可选的文件夹包含browser文件browser文件描述浏览器(不管是移动设备浏览器

是台式机浏览器)的特 征和功能

App_Code文件夹

App_Code文件夹正好在Web应用程序根目录下其存储所有应当作为应用程序的一部分动态

编译的类文件这些类文件自 动链接到应用程序而不需要在页面中添加任何显式指令或

声明来创建依赖性App_Code文件夹中放置的类文件可以包含任何可识别的ASPNET组件

——自定义控件辅助类build提供程序业务类自定义提供程序HTTP处理程序等

注意 在开发时对App_Code文件夹的更改会导致整个应用程序重新编译对于大型

项目这可能不受欢迎而且很耗时为此鼓励大家将代码进行模块化处理 到不同的类

库中按逻辑上相关的类集合进行组织应用程序专用的辅助类大多应当放置在App_Code文

件夹中

App_Code文件夹中存放的所有类文件应当使用相同的语言如果类文件使用两种或多种语言

编写则必须创建特定语言的子目录以包含用每种语言编写的类一旦根据语言组织这些

类文件就要在nfig文件中为每个子目录添加一个设置

<compilation>

<codeSubDirectories>

<add directoryName=VBFolder />

</codeSubDirectories>

</compilation>

重要的是特定语言的子目录应在nfig文件中注册否则不管它们属于哪个文件夹

App_Code文件夹下 的所有文件将被编译成一个单独的程序集上述配置脚本描述了这么

一种情况即所有的C#文件都放在App_Code文件夹的根目录下而把几个 Visual Basic

NET类文件移入VBFolder目录中如果<codeSubDirectories>节中提到的目录不存在

会收到一个编译错误提 示

App_Code根文件夹中的文件被编译成App_Code_xxxdll程序集其中xxx是随机生成的字符

序列一个 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyydll的动态创

建的程序集其中xxx指示子目录的名称而yyy是一个 随机字符序列只有在应用程序根

目录中的nfig文件中进行了设置<codeSubDirectories>节才有效

在App_Code目录或任何其他子目录中放置一个assemblyinfocs文件可以创建一个强命名

的程序集显然如果该文件夹包含Visual Basic NET文件那么将使用

assemblyinfovb文件程序集配置文件可以引用一个snk文件来保存强名称的密钥

注意 给一个程序集设置一个强名称首先必须获得一个公开/私有密钥对通过

使用强名称(Strong Name)工具(snexe)可以获得这样一个密钥对强名称工具是我们可

以在NET Framework的安装路径中发现的SDK binary之一密钥对文件通常有一个snk扩

展名可以将该文件保存到一个应用程序文件夹中并在assemblyinfocs文件中引用它

如下所示

[assembly: AssemblyKeyFileAttribute(@yourKeyPairsnk)]

注意Visual Basic NET是在包含Visual Studio Solution的目录中寻找密钥文件

而C#编译器则在包含该binary的目录中寻找密钥文件据此可知用此属性调整我们使用的

路径或者把密钥文件放在合适的文件夹中

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

就删除老的程序集

App_Code文件夹并非只能包含类文件特别是它可以包含并能自动地处理代表数据架构的

XSD文件把一个XSD文件 添加到该文件夹中时编译器将把它解析成一个有类型的

DataSet类并将它添加到应用程序作用域中在ASPNET x中这一工作由Visual

Studio NET向导使用一个命令行实用程序(xsdexe)完成的

注意 使用nfig文件注册一个组件(例如一个自定义的服务器控件或一

个自定义的HTTP处理程序)时通常要求指定包含该代码的程序集名称如 果该组件定义

在App_Code文件夹中则应该用什么名称来指示程序集?在这种情况下只是忽略程序集信

并规定完整的类名即可如果没有规定任何程 序集则ASPNET运行库将试图从任何

已装载的程序集中装入该类包括为App_Code文件夹动态创建的程序集

App_Data文件夹

App_Data文件夹应该包含应用程序的本地数据存储它通常以文件(诸如Microsoft

Access或Microsoft SQL Server Express数据库XML文件文本文件以及应用程序支持

的任何其他文件)形式包含数据存储该文件夹内容不由ASPNET处理该文件夹是ASPNET

提供程序存储自身数据的默认位置

注意 默认ASPNET帐户被授予对文件夹的完全访问权限如果碰巧要改变

ASPNET帐户一定要确保新帐户被授予对该文件夹的读/写访问权

App_GlobalResources文件夹

App_LocalResources文件夹

App_Themes文件夹

App_Themes文件夹为ASPNET控件定义主题主题包含在App_Themes文件夹下的一个文件夹

根据定义一个主题是一组带有样式信息的文件主题文件夹中的文件内容被编译以生

成一个类而该类被页面调用以编程的方式设置主题化控件的样式

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

局主题

%WINDOWS%\MicrosoftNET\Framework\[version]\ASPNETClientFiles\Themes

从编译的角度看全局主题和局部主题没有区别如果一个给定名称的主题既存在应用程

序的本地主题又存在服务器机器的全局主题则本地主题优先适用

App_WebReferences文件夹

在Visual Studio NET 一个需要访问Web服务的ASPNET应用程序将通过

加Web引用对话框获得相应的wsdl文件Web服务的WSDL(Web Service Description

Language)文档对于从页面使用Web服务是不够的ASPNET页面最终是一个托管类并且

需要与另一个托管类通信因此Web服务被一个 代理类所包装该代理类是由Visual

Studio使用命令行工具wsdlexe的服务创建的该代理类尽量包含与Web服务商的Web方法一

样多的方法并且它结合了Web服务的公共接口 定义的任何自定义的数据类型

这个操作不需要开发人员付出很大的代价然而开发人员显然要依赖于Visual Studio来

生成代理类如果能够直接把wsdl文件放在应用程序的目录树的某个地方并让ASPNET处

理其余的任务这样不是更容易更简单 吗?这正好是App_WebReferences文件夹要做的

事情

它识别那些用来描述所绑定的Web服务的wsdl文件并生成运行时代理类以便ASPNET页

面能够以类型安全的方式 放置对Web服务的调用App_WebReferences文件夹可以包含子文

件夹子文件夹的名称驱动最后所得到的代理类的命名空间而WSDL文件 定义类名例如

sampleswsdl文件和ProsAspNet子文件夹将创建一个称为ProAspNetSamples的代理

该动 态创建的程序集称为App_WebReferencesxxxdll其中xxx是一个随机的字符序

文件夹名称

文件类型

注 释

Bin

dll

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

App_Browsers

browser

包含应用程序特有的浏览器定义文件ASPNET用它来识别各浏览器及确定它们的功能

App_Code

csvbxsd自定义的文件类型

包含作为应用程序的一部分编译的类的源文件当页面被请求时ASPNET编译该文件夹

中的代码该文件夹中的代码在应用程序中自动地被引用

App_Data

mdbmdfxml

包含Microsoft Office Access和SQL Express文件以及XML文件或其他数据存储

App_GlobalResources

resx

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

App_LocalResources

resx

包含页面范围的资源文件

App_Themes

skinCSSxsl附属文件

包含一组定义ASPNET页面和控件外观的文件

App_WebReferences

wsdl

               

上一篇:ASP.NET 2.0运行时简要分析

下一篇:asp.net 学习笔记