常见的ASP.NET2.0转换问题和解决方案(1)-.NET教程,Asp.Net研发
来源:作者: 发布时间:2007-12-26 02:30:45


简介
将 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 本白皮书将向您全面介绍 asp.net 2.0 的新增功能。假如您正在考虑怎样在使用 asp.net 1.x 建立的站点上利用 asp.net 2.0 内容,则应该通读此白皮书,以找到对您有用的信息。 |
|
personalization asp.net 2.0 的个性化功能(称为 web 部件)使您能够设计出能对用户作出个性化响应的网站。例如,您能够让每个用户选取站点布局或配色方案,并且这些配置信息对后续的访问均保持有效。web 部件使您能够通过最少量的新代码来使用个性化功能。 |
|
data access 不但针对 .net framework 2.0 更新了 ado.net,asp.net 2.0 现在还包含一组新增数据源控件和功能用于进行数据访问。 |
|
master pages 在传统的 asp.net 中,大多数研发人员都会为怎样设计出将代码重用和灵活性相结合的 web 应用程式框架而苦恼。母版页通过引入真正的继承技术而最大限度地将这两种好处相结合。您能够配置包含页眉、页脚和导航栏的母版页,然后创建子页,这些子页将用于填充内容,同时自动继承母版页的外观、行为和功能。 |
|
asp.net development server 现在,visual studio 2005 中捆绑了一个仅用于研发的单独 web 服务器。此服务器的代码名称为“cassini”,他使得用户无需在他们的研发系统中安装 iis,就能够研发和测试他们的 web 应用程式。此服务器只能用于研发。当您针对生产部署应用程式时,需要使用通过 asp.net 2.0 配置的 iis 服务器。您能够阅读 web servers in visual web developer 以了解有关 cassini 的更多信息。 |
一般来讲,在尝试执行任何新增功能之前,您都需要将 asp.net 1.x 应用程式转换到 asp.net 2.0。每个转换过程都包括两个步骤。第一步,达到功能上的等效,第二步,使用新增功能。将 asp.net 应用程式从 1.x 转换到 2.0 也是这样。首先,您需要使应用程式能够在 2.0 环境下运行。然后,您需要对应用程式进行评估,以找出需要使用 asp.net 2.0 的新增功能和控件的位置。
转换应用程式
将应用程式从 asp.net 1.x 转换到 asp.net 2.0 不但仅涉及到更改对 framework 版本的引用。事实上,主要有三个方面的更改会影响应用程式的构建方式:
|
1. |
asp.net 2.0 web 应用程式不使用项目文档(.vbproj 或 .csproj)。项目文档内容已被消除或转变为 web.config 文档。 |
|
2. |
编译模式发生了多方面的变化。不但代码分离文档和 aspx 页面之间的关系发生了变化,而且应用程式不再编译到单个程式集中。 |
|
3. |
创建了新的目录结构以便能够使用新的编译模式和部署选项。任何资源文档、引用、代码分离文档和其他代码产物都必须移到各自的新目录下。 |
所幸的是,许多由于 asp.net 框架的更改而必须实施的应用程式更改已在转换向导中自动实施。
事先的计划
在转换应用程式之前,您应该通读本白皮书中的常见转换问题部分,然后检查您的应用程式。您可能会发现需要更改 1.1 代码以帮助改进转换过程的区域。您还可能希望着眼于转换应用程式所需的时间和培训,连同计划怎样对服务器进行更新以支持 asp.net 2.0。
前提条件
转换应用程式之前,需要确保满足以下条件:
|
1. |
任何研发人员都能够使用 visual studio 2005。 |
|
2. |
目标服务器上已安装了 .net framework 2.0。(请注意,由于已使用 asp.net 2.0 对捆绑的 asp.net development server 进行了配置,因此您能够立即研发和运行 web 应用程式。) |
|
3. |
已验证现有的任何 asp.net 1.x 应用程式都运行正常。 |
您能够阅读本白皮书结尾的“更新服务器”部分来了解有关配置生产服务器的信息。
转换向导
visual studio 2005 具备一个内置的转换向导,此向导有助于转换 asp.net 1.x 应用程式。此向导将自动执行许多必需的基本步骤,能使应用程式满足 asp.net 2.0 中内置的新增结构需要和编码需要。
运行转换向导
当您在 visual studio 2005 中打开 asp.net 1.x web 应用程式时,将会自动调用转换向导。该向导将检测应用程式目录下是否存在项目文档(例如 *.vbproj 或 *.csproj),并自动启动转换过程。
图 1:转换向导
|
还没有关于此文章的相关评论!