65.9K
CodeProject 正在变化。 阅读更多。
Home

RAD (快速应用程序部署).ASP 架构:简介

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.77/5 (12投票s)

2003年6月1日

5分钟阅读

viewsIcon

44368

一系列文章的第一篇,将为非 .NET 实现的 XML 和 XSLT 使用 SSI(服务器端包含)奠定框架。

引言

说实话,你真正构建过多少个网站?  然后,问问自己,你实际维护过多少个?  我所说的维护,是指创建新的内容页面并将其链接起来——而不仅仅是更新网站上的文本(我认为这是行政工作)。  本文将解释设计网站架构的许多方面,您将能够重用该架构,并几乎毫不费力地将内容管理(通常成本效益最高的地方)交给网站管理员。

注意:本文是进行中的工作,将不定期更新。

背景

我属于那种自己动手做的类型。  我来自那个需要四处搜寻公告板来获取我们所做编程秘诀的年代。  虽然书籍会有帮助,但很多时候它们不够准确,或者只是通用示例。  互联网出现时,它为我们程序员提供了一个巨大的学习媒介,本文旨在回馈那些一直以来免费向大家提供自己想法的人。

我大约在 1984 年很早就开始编程了。我用过很多不同的编程语言,当网络出现时,我想——这是一种多么简单的编程方式啊。  我跳进了 HTML,然后开始一个接一个地构建页面。  太棒了,我想!  然后我不得不开始更新内容。

在我看来,程序员有两种类型——一种擅长原型制作、设计,另一种擅长维护。  每种都有其非常独特和不可否认的目的。  有时你会发现有人能兼顾两个领域。  我是创意型的人,如果你想把一个原型程序员变成一滩植物烂泥,那就让他负责更新网站的文本。

然后……这个叫做 Active Server Pages (ASP) 的伟大事物出现了。  “终于”,我说。  我可以将数据库连接到所有这些内容,并让我的客户更经济高效地维护它。  嗯,我当然是这么告诉他们的——这大约占了我动机的 20%,另外 80% 是为了我的理智。

为了实现这一点,我发现,而不是一直更新一百个“内容”页面,我现在必须为管理员构建 100 个数据录入页面,以便他们能够“更新”这些内容。

现在,我有一个庞大的网站内容和管理页面架构,如果我想在任何程度上为另一个客户重用它,我就必须完全重新设计它们的布局(这样它们就不会看起来一样)。  做过这件事的人都知道,这可能是一个多么艰巨的步骤。

为了解决这个跨客户问题,一种名为 XML 的新技术看起来很有吸引力(尽管从数据流的角度来看有点臃肿),我想,“嘿,如果我把整个页面都放在 XML 里呢?”使用服务器端包含和 XSLT 来转换页面布局。  这样我仍然可以拥有 100 多个页面,但只需最少地更新每个页面上为数不多的几个变化项,将每个页面放入一个 XML 标签中。  然后,当新的客户出现时,我只需要更改 XSLT 模板,将该 XML“页面布局数据”转换为客户特定的新布局。

现在我能快速制作网站了,而且每次构建新网站时,不必从头到脚地重新设计整个网站。

这也能更好地划分参与人员的角色。  我可以请一位架构师最初负责确定布局/业务流程,然后由一位工程师“负责”该项目,当需要新项目时,以及一位管理员负责日常的内容管理。  这种方法对我来说似乎效果很好,而且从人员角度来看,它具有成本效益且在智力上令人满意(这在发布时可能是一个很大的因素)。

注意:此架构实际上是在 .NET 出现之前完成的,所以对于那些还没有迈出这一步的人来说,其中一些可能很有用。  话虽如此,它的应用可以在任何 Web/服务器脚本语言中完成,并且不限于仅使用 ASP。  然而,我相信完全或至少部分迁移到 .NET 可以提供一些新的优化。

系列文章

我将要发布的一系列文章如下:

  • 100 - 简介
  • 101 - 业务流程
  • 102 - 网站布局
  • 103 - 数据库
  • 104 - 服务器端包含 (SSI)
  • 105 - XML 数据岛
  • 106 - XSLT - 布局实现和 CSS(层叠样式表)
  • 107 - XML 布局模板

100 - 简介

本文是本系列的第一篇文章,概述并描述了本系列的其他所有文章及其内容。

101 - 业务流程

本文将讨论实现业务流程时需要理解的一些考虑因素以及它们的重要性。

102 - 网站布局

本文将讨论一些布局和设计方面的考虑因素以及设计布局时需要思考的内容。

103 - 数据库

本文将讨论我们架构的一些数据库考虑因素。  虽然我最有可能使用 SQL Server,但任何数据库都可以,尽管我非常偏爱支持 GUID 的数据库。

104 - 服务器端包含 (SSI)

本文将讨论服务器端包含 (SSI) 的概念、如何使用它们以及使用它们时的一些“陷阱”。

105 - XML 数据岛

现在我们有了业务流程、数据和布局的定义——我们可以开始构建 XML 了。  这些数据我们将稍后在构建每个页面时使用。

106 - XSLT

本文将讨论如何使用一种称为 XSLT 的技术将我们的 XML 数据转换为 HTML。

107 - XML 布局模板

我们不会硬编码每个页面,而是会研究如何使用 XML 和 XSLT 来实际构建我们页面的布局部分,然后将页面中的项指向各种 XML 数据岛。

关注点

我必须感谢 Kundan Narendra 撰写的关于 服务器端包含 的文章,它激励我开始撰写这篇文章。  我一直想写很久了。

历史

  • 2003年5月7日 - 初稿完成
© . All rights reserved.