ASP.NET应用程序的文件类型及文件夹列表

文件类型:

1. *.aspx文件:这类文件是ASP.NET Web页面,它包括用户接口和隐藏代码。

2. *.ascx文件:这类文件是用户控件。用户控件同Web页面非常相似,但用户不能直接访问用户控件,用户必须内置在Web页面中。用户控件用来实现能够被像标准     Web控件一样使用的用户接口。

3. *.asmx文件:这类文件是ASP.NET Web服务。Web服务提供一个能够通过互联网访问的方法集合。

4. Web.config文件:Web配置文件web.config是Web 应用程序的数据设定文件,它是一份 XML 文件,内含 Web 应用程序相关设定的 XML 标记,可以用来简化    ASP.NET 应用程序的相关设定。

5. Global.asax文件:Global.asax 文件(也叫做 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或 HTTP 模块引发的应用程序级别事件     的代码。Global.asax 文件驻留在基于 ASP.NET 的应用程序的根目录中。在运行时,分析 Global.asax 文件并将其编译到一个动态生成的 .NET 框架类,该类是     从 HttpApplication 基类派生的。配置 Global.asax 文件自身,以便自动拒绝对该文件的任何直接 URL 请求;外部用户不能下载或查看在其中编写的代码。         ASP.NET Global.asax 文件可以和 ASP Global.asa 文件共存。您可以在 WYSIWYG(所见即所得)设计器中或“记事本”中创建 Global.asax 文件,或者作为       编译的类创建(将该类作为程序集部署在应用程序的 /bin 目录中)。但是,在后面的一种情况中,您仍需要一个引用该程序集的 Global.asax 文件。

     Global.asax 文件是可选的。如果不定义该文件,ASP.NET 页框架假设您未定义任何应用程序或会话事件处理程序。

      当您将更改保存到活动 Global.asax 文件时,ASP.NET 页框架检测到该文件已被更改。它完成应用程序的所有当前请求,将 Application_OnEnd 事件发送到      任何侦听器,并重新启动应用程序域。实际上,这会重新启动应用程序,关闭所有浏览器会话并刷新所有状态信息。当来自浏览器的下一个传入请求到达时,        ASP.NET 页框架将重新分析并重新编译 Global.asax 文件并引发 Application_OnStart 事件。

6. *.cs文件:这些文件是c#编写的代码隐藏文件,用来实现Web页面的逻辑。

 

文件夹类型

1.Bin文件夹:

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

  Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文  件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguous  reference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一  个程序集,从而抛出一个异常。在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误。为了避免这种错误,一定不要在该文件夹中保留任何 不必要的程序集,或者至少要从配置文件的<assemblies>节中删除如下代码行:<add  assembly="*"  />

2.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文件夹动态创建的程序集。

3.App_GlobalResources文件夹:存储全局资源,这些资源能够被Web应用程序中所有的页面访问。

4.App_LocalResources文件夹:存储被特定页面访问的资源。

5.App_WebReference文件夹:存储被Web应用程序使用的Web服务的引用。

6.App_Data文件夹:

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

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

7.App_Themes文件夹:

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

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

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

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

PS:有的内容复制于网友,在此感谢。

posted @ 2015-09-15 21:29  JiangXiaoKun  阅读(1637)  评论(0编辑  收藏  举报