Web 解决方案和项目文件转换

更新:2007 年 11 月

Visual Studio 2005 在许多方面更改了 Web 项目模型。例如,不再需要项目文件,因为 Web 应用程序文件夹中的所有文件都被视为 Web 项目的一部分。

新的 Web 项目模型影响诸如 ASP.NET Web 窗体页(.aspx 文件)、ASP.NET 用户控件(.asxc 文件)、Global.asax 文件和 Web.config 文件这类文件的转换。在这些文件中进行的具体更改取决于被转换项目的编程语言。

Visual Studio 2005 将代码隐藏模型更改为使用分部类,这样允许一个类跨多个文件。在以前的代码隐藏模型中,.aspx 文件从编译类文件继承,该编译类文件是从相应的代码隐藏文件(.aspx.vb 或 .aspx.cs)创建的。在新的代码隐藏模型中,.aspx 文件也从编译类继承,但该编译类由其相应的 .aspx.vb 或 .aspx.cs 文件,以及从 .aspx 文件生成并定义 .aspx 文件中所用控件的字段声明的存根文件组成。此更改允许将自动生成的代码与用户的代码分离开来。用户控件 (.ascx) 和用户控件的代码隐藏文件的处理方式类似。有关代码隐藏模型的详细信息,请参见 ASP.NET 网页代码模型

Visual Studio 2005 将编译模型由产生一个程序集更改为产生多个程序集。每个 ASP.NET 网页和用户控件都能编译成其自身的程序集。此更改允许更多的部署方案,如将源代码发布到服务器,然后根据需要动态编译 Web 应用程序的各部分。

代码隐藏文件

在转换为新的 ASP.NET 2.0 版代码隐藏模型的过程中,对 ASP.NET 网页和用户控件进行的更改如下:

  • @ Page 指令中的 CodeBehind 属性更改为 CodeFile 属性。

  • @ Page 指令中添加了 Inherits 属性,该属性指向编译使用的关联类文件。

  • 所有代码隐藏类定义将更改为实现 Partial 关键字。

  • 从代码隐藏页中移除了用户控件的成员声明。在编译使用的模型中,用户控件的实例是根据声明性代码自动创建的。

  • 事件是使用声明性语法绑定到控件的。例如,通过在声明性代码中添加一个 OnClick 属性到 asp:button 元素中,可将 Button 控件的 Click 事件绑定到控件。移除了委托和方法中的 Visual Basic Handles 关键字。未在声明性代码中表示的成员的委托(如动态创建的控件的委托)都没有移除。

  • 类文件(但不是页类)中标记为 Friend 或 Internal 的成员声明更改为 Public。

  • 未转换调试器断点,这些断点不会出现在转换后的文件中。

    421whcfb.alert_note(zh-cn,VS.90).gif说明:

    如果网页或用户控件在 @ Page 指令中没有 CodeBehind 属性,则不会被转换。同样,包含 Src 属性的网页或控件也保持不变。

独立代码文件

对独立代码文件进行以下更改:

  • 独立代码文件会移至 App_Code 目录。

  • 标记为 Friend 或 Internal 的成员声明将更改为 Public。此更改是必需的,因为有多个程序集,访问级别必须如此,以便从程序集(不同于包含编译的独立代码文件的程序集)可以看到成员。

  • Type.GetType 方法的调用将更改为使用 BuildManager.GetType 方法。BuildManager.GetType 方法在顶级程序集中查找类型。

  • 未转换调试器断点,这些断点不会出现在转换后的文件中。

设计器设置

页中与设计器有关的设置在转换过程中是以不同的方式处理的:

  • 原地保留 MS_POSITIONING 属性(流布局或网格布局),Visual Studio 保留此属性以及单个控件的绝对定位属性。但是,在默认情况下,Visual Studio 中的新页使用流布局并且不包含 MS_POSITIONING 属性。

  • 默认客户端脚本语言的 <meta> 标记保持不变。

Global.asax 文件

当转换 Global.asax 文件时,其代码隐藏文件将移至 App_Code 目录。转换过程进行以下更改:

  • @ Application — Global.asax 指令中移除 CodeBehind 和 Inherits 属性。

  • 如果尚未指定 Language 属性,则将该属性添加到 @ Page 指令中。

  • 对于 Visual Basic,则添加一个 Namespace 语句到类文件中。命名空间由 Web 项目中的根命名空间定义。

Web.config 文件

Web.config 文件在 Visual Studio 2005 中支持的元素比在 Visual Studio .NET 中支持的元素更为广泛。例如,适用于 Visual Studio 的项目设置通常转换为 Web.config 文件。有关详细信息,请参见 Web 项目设置转换

请参见

概念

Web 应用程序项目概述

自 Visual Studio .NET 的 Web 项目转换

Web 项目设置转换

其他资源

Global.asax 语法

ASP.NET 配置设置

ASP.NET 配置文件

Global.asax 语法