常见的 ASP.NET 2.0 转换问题和解决方案
michael Bundschuh
Microsoft 程序经理
robert McGovern
Infusion Development
适用于:
ASP.NET 1.x
ASP.NET 2.0
Visual Studio 2005
.NET Framework 2.0
摘要:着眼于将 ASP.NET 1.x 升级到 2.0 时开发人员可能面临的某些常见转换问题,并说明如何避免和/或解决这些问题。
本页内容
| 简介 | |
| 操作方面的更改 | |
| 转换应用程序 | |
| 运行转换向导 | |
| 转换报告 | |
| 通知类型 | |
| 进行了哪些更改 | |
| 源代码控制中的 Web 项目 | |
| 常见转换问题 | |
| 更新服务器 | |
| 总结 |
简介
将 ASP.NET 1.x 应用程序转换到新的 ASP.NET 2.0 框架时,您可能会遇到由于 2.0 框架的更改而引起的问题。在本文中,我们将着眼于转换过程本身以及您在转换过程中可能遇到的某些常见问题。
什么是 ASP.NET 2.0?
asp.net 2.0 在 ASP.NET 1.x 框架基础上进行了重要更新。ASP.NET 2.0 不仅引入了许多新增功能,还从根本上改变了 ASP.NET 应用程序的设计、编译和部署方式。尽管 ASP.NET 1.1 应用程序不必进行重新编译就可以在 ASP.NET 2.0 上运行,但是您会发现升级后使用 ASP.NET 2.0 的新增功能既可以简化开发过程,又为您提供了更多种编译和部署代码的方法。如果您不熟悉 ASP.NET 2.0 或不了解升级的好处,请阅读从 ASP.NET 1.x 迁移到 ASP.NET 2.0。
就升级应用程序的过程而言,您需要了解将会影响应用程序的编译和部署方式的操作问题。另外,还需要了解新增编码功能对转换过程的影响,以及如何使用新增功能改进应用程序。
操作方面的更改
操作方面的更改会影响您开发、配置和部署 ASP.NET 应用程序的方式。无论您是开发人员还是网站管理员,都需要了解这些更改,以便正确地创建、部署和维护 ASP.NET 2.0 应用程序。
|
没有项目文件。ASP.NET 1.x 应用程序与 2.0 应用程序之间最明显的差别就是后者没有项目文件(例如 *.vbproj 或 *.csproj)。在 1.x 应用程序中,项目文件包含生成设置、对外部程序集的引用以及项目中的文件列表。而在 2.0 应用程序中,不再需要版本设置和文件列表,因为 Web 项目目录下的所有文件都被视为 Web 项目的一部分。 | |
|
特殊目录。ASP.NET 1.x 应用程序具有一个必需的目录 (\bin),用于包含程序集。ASP.NET 2.0 应用程序中则定义了一种更大的目录结构。新目录均以前缀“App_”开头,用于存储资源、程序集、源代码和其他组件。使用这种新的目录结构将不再需要项目文件,并且还可以选用某些新的部署方法。 | |
|
代码分离模式。在 ASP.NET 1.x 中,代码分离模式使内容(例如 foo.aspx)与代码(例如 foo.aspx.vb)分离。内容页面从代码分离页面继承而来,代码分离页面包含用户和设计器生成的代码。ASP.NET 2.0 通过使用局部类来增强代码分离模式,它允许一个类跨越多个文件。在新的代码分离模式中,内容页面从编译的类继承而来,它由相应的代码分离页面以及自动生成的存根文件组成,存根文件用于为内容页面中使用的控件定义字段声明。此项更改使自动生成的代码与用户的代码分离,并且使代码分离页面显著变小且更加简洁。局部类结构还降低了由于编辑设计器生成的代码而不小心破坏页面的风险。 | |
|
编译模式(一个程序集对多个程序集)。在 ASP.NET 1.x 中,所有的内容页面、代码分离页面和支持代码都预先编译到具有固定名称的单个程序集中。在 ASP.NET 2.0 中,则即时(默认)创建文件名各不相同的多个程序集。例如,每个 ASPX 页面(由内容页面、代码分离页面和隐藏的设计器页面组成)将被编译到各自的程序集中。App_Code 目录会自动把公共源代码编译到它自己的程序集中。这种新的编译模式使 ASP.NET 应用程序的结构发生了一些变化,但大大丰富了部署方式,以及在 Web 服务器上提供 Web 应用程序的方式。 | |
|
部署方式(预编译、完整编译、可更新站点等)。在 ASP.NET 1.x 中,Web 应用程序是作为一个大型程序集而预编译和部署的。内容页面(例如 *.aspx)不在服务器上编译,但可以在服务器上编辑。借助新的页面编译模式和目录结构,您就可以使用多种不同的配置来部署 ASP.NET 2.0 应用程序。在一种极端的情况下,您可以预编译所有的 ASPX 页面并部署由完全编译好的程序集组成的 Web 应用程序。在这种模式下,您不能在服务器上轻松地更改该应用程序。在另一种极端情况下,您可以在不预编译任何代码的情况下部署应用程序。在这种配置下,您可以直接在服务器上更改该应用程序中的 .aspx 页面、代码分离文件或其他任何代码。当用户请求服务器上的页面时,页面将被动态编译。 |
以上每项更改都可能需要您在转换 Web 应用程序之前或之后修改应用程序的体系结构和部署过程。
新增功能
将 Web 应用程序转换到 ASP.NET 2.0 会使该应用程序更加强大、灵活和易于维护。尽管本文着重于转换应用程序的技术细节,但是您可以通过下列链接了解有关 ASP.NET 2.0 新增功能的更多信息:
|
Feature Overview | |
|
Personalization | |
|
Data Access | |
|
Master Pages | |
|
ASP.NET Development Server |
一般来讲,在尝试执行任何新增功能之前,您都需要将 ASP.NET 1.x 应用程序转换到 ASP.NET 2.0。每个转换过程都包括两个步骤。第一步,达到功能上的等效,第二步,使用新增功能。将 ASP.NET 应用程序从 1.x 转换到 2.0 也是这样。首先,您需要使应用程序能够在 2.0 环境下运行。然后,您需要对应用程序进行评估,以找出需要使用 ASP.NET 2.0 的新增功能和控件的位置。
相关专题
- 数字化校园网解决方案 (5658篇文章)
- 大型实用解决方案专题 (5174篇文章)
- 应用解决方案 (5174篇文章)
- 中小型应用解决方案 (5174篇文章)
- 多媒体应用解决方案 (5946篇文章)
- 行业解决方案 (5174篇文章)
- 行业解决方案 (5174篇文章)
- 中小企业防病毒解决方案 (6029篇文章)
- .NET移动与嵌入式技术 (5969篇文章)
- .NET开发手册 (5670篇文章)
- ASP.net服务器控件的优化选择 (0次浏览)
- Asp.Net中动态页面转静态页面 (0次浏览)
- 正则表达式中的实用命名组替换 (0次浏览)
- Domain Model的三种类型及其级别 (0次浏览)
- 应用WEB标准会使ScrollTop属性失效! (0次浏览)
- Cache用法之缓存页面和缓存数据 (0次浏览)
- 支持正则表达式的UrlMapping (0次浏览)
- 关于ASP.NET 2.0的目录结构变化 (0次浏览)
- WPF中Closing窗体时调用Hide()方法异常 (0次浏览)
- 对象数组根据某属性列的灵活排序 (0次浏览)



