博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

规划 ASP.NET 网站

Posted on 2008-08-12 16:33  赢在自己  阅读(136)  评论(0编辑  收藏  举报

     创建网站之前,最好始终先规划网站,然后再开始创建页面和编写代码。事先规划网站有利于创建网站和网站导航的整体外观。网站的大小通常决定了规划时必须处理的工作量制定计划将有助于节省网站开发和维护的时间。

与网站整体有关的规划,包括以下几个方面:

.确定网站项目类型

     在 Visual Studio 2008 中可以创建两种项目。默认的网站项目模型使用文件目录结构定义项目的内容。在此模型中不存在项目文件,目录中的所有文件都是项目的组成部分。

     与此相反,在 Web 应用程序项目中,只有在解决方案的项目文件中显式引用的文件才是项目的组成部分。这些文件显示在“解决方案资源管理器”中,它们是生成过程中唯一进行编译的文件。

.访问数据存储区中的数据

     利用 ASP.NET 数据绑定,既可以将组件绑定到源,也可以将组件绑定到简单的属性、集合、表达式和方法。这在要使用数据库或其他源中的数据时,可提供更大的灵活性。

     如果网站要访问数据存储区,则应考虑使用数据源控件,因为它们是通用数据模式的一部分。此数据模式可分离构成网站表示层的网页中的数据访问代码和业务逻辑代码。数据访问层由用于访问数据存储区的方法组成。业务逻辑层用于向数据访问层添加规则,例如对可以查看或更改数据的人员进行访问限制。表示层由用户有权查看和修改数据的页面组成。

     通过使用 ASP.NET 中的数据源模型将表示层与数据层和业务逻辑层分开,可以实现此通用数据模式。借助 LinqDataSource、ObjectDataSource 和 SqlDataSource 等控件,可以创建与表示层分离的数据访问层和业务逻辑层。

     此外,还应考虑网站是否必须使用内存中(缓存)的数据。如果大部分应用程序数据并不会频繁更改,且能够在会话或用户之间通用,则可以将数据保留在 Web 服务器上的内存中。这样可减少向数据库发出的请求数,从而提高用户交互的速度。内存中的数据库用 DataSet 类创建。DataSet 对象还有另一个用处,它允许应用程序将数据的子集从一个或多个数据源移至应用程序空间中。这样,应用程序既能处理内存中的数据,又能保留其关系形状。

.网站中导航

     ASP.NET 网站导航包含一系列服务器控件和类,可用于为用户提供一致的网站导航方式。您可以将所有页面的链接都存储在一个中心位置(通常是一个 XML 文件)。通过添加 SiteMapDataSource 控件来读取网站信息,可以在每个页面的列表或导航菜单中呈现这些链接。随后,可以使用导航服务器控件(例如 TreeView 或 Menu 控件)来显示网站信息。

.创建一致的外观和布局

     ASP.NET 的一些功能有助于为网站创建并维护一致的外观和设计,例如 ASP.NET 主题和 ASP.NET 母版页。在网站开发过程的早期,可以使用这些功能为网站提供一致的外观。

     ASP.NET 主题定义了网站中页面和控件的外观。ASP.NET 主题可以包含定义 ASP.NET Web 服务器控件的属性设置的外观文件,也可以包含级联样式表文件(.css 文件)和图形。通过应用主题,可以为网站中的页面提供一致的外观。当在开发过程的早期为网站创建了一个或一组主题后,便可以将这些主题应用于每个新创建的页面。

     使用 ASP.NET 母版页,可以创建能应用于网站中选定页面(内容页)的页面布局(母版页)。创建具有一致外观的网站时,使用母版页可大大地简化任务。您也可以嵌套母版页。例如,通过嵌套的母版页可以创建两个母板布局,一个用于网站整体,另一个用于网站的各个部分。此外,还可以将母版页与主题配合使用。

.添加AJAX 功能

     使用 ASP.NET 中的 AJAX 功能,可快速创建包含响应迅速的常见用户界面 (UI) 元素的网页,以提供丰富的用户体验。此外,它不需要回发即可刷新网页。AJAX 功能包括客户端脚本库,这些库将跨浏览器的 ECMAScript (JavaScript) 和动态的 HTML (DHTML) 技术结合在一起,并与基于 ASP.NET 服务器的开发平台集成。通过使用 AJAX 功能,可以改进用户体验并提高 Web 应用程序的效率。

.使用状态管理功能

     HTTP 是一种无状态协议。每个请求在到达后即被处理;当请求得到处理后,将丢弃所有数据。即使是来自同一客户端的请求,也不保留它们的状态。但是,对于大多数 Web 应用程序而言,保留请求间的状态十分有用。

     ASP.NET 提供了内部状态管理功能,它使您能够存储页请求期间的信息,例如客户信息或购物车的内容。您可以保存和管理应用程序特定、会话特定、页特定、用户特定和开发人员定义的信息。ASP.NET 具有多种状态管理形式可供选择,包括使用 Cookie、视图状态、会话状态、应用程序状态和配置文件属性。此信息可以独立于页上的任何控件。

.缓存数据以提高性能

     一般而言,通过将访问频繁的数据以及创建过程需要大量处理时间的数据存储在内存中,可以提高网站的性能。ASP.NET 缓存是一个通用的网站缓存工具。它提供了一个用于缓存的简单接口,以及一个用于公开过期和更改依赖项服务的高级接口。为帮助提高应用程序在这些情况下的性能,ASP.NET 提供了两种缓存机制。第一种机制是应用程序缓存,它允许缓存所生成的数据,例如 DataSet 或自定义报表业务对象。第二种机制是页输出缓存,它保存页处理输出,并在用户再次请求该页时,重用所保存的输出,而不是再次处理该页。如果在网站设计中考虑到缓存特定的页,则可以创建出更为高效的网站。

.安全基础结构

     除了 .NET Framework 的安全功能外,ASP.NET 还提供了一个安全基础结构,可用于对用户访问进行身份验证和授权,并执行其他与安全相关的功能。通过 IIS 提供的 Windows 身份验证,可以验证用户的身份。您也可以使用 ASP.NET Forms 身份验证和 ASP.NET 成员资格来管理身份验证。此外,通过 Windows 组或使用自定义角色数据库和 ASP.NET 角色,还可以管理对 Web 应用程序资源的访问授权。您可以根据应用程序的需要方便地移除、添加或替换这些方案。