常见的 ASP.NET 2.0 转换问题和解决方案

     摘要:着眼于将 ASP.NET 1.x 升级到 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 应用程序之前或之后修改应用程序的体系结构和部署过程。


 


原文地址:https://www.cnblogs.com/liuzhengliang/p/928831.html