转: ASP 指南

ASP 指南

简介
“Active Server Page (ASP)”应用程序的成功常常取决于对体系结构和设计这两方面的取舍。考虑到 ASP 技术的范围之广和当前应用程序固有的复杂性,这种取舍是非常困难的。本文中,我将为您提供一些特定的指导方针,以助您成功开发基于 ASP 的应用程序。

--------------------------------------------------------------------------------
从过去成功的开发模式经验中,我们总结出以下原则。
--------------------------------------------------------------------------------

我已将指导方针整理成一组开发原则。在评估解决方案和技术时,可以应用以下原则帮助您做出决策。以下原则是我长期以来从成功的开发模式所得的经验积累。

原则 1:采用标准方法
建立命名约定并使目录结构标准化,可以帮助您大大提高 ASP 应用程序的可读性和可维护性。虽然目前尚无 ASP 应用程序的正式标准,许多开发人员还是建立了一些通用方式。在此,我将与您共享一些更为通用的方式。

因为 ASP 技术依靠脚本引擎进行工作,而且脚本具有类型不严密的天性,命名约定也很模糊。在类型非常严密的语言中,变量将按照它的实际类型进行声明。在使用 ASP 技术时,通常按照处理变量的方式(而不是其实际数据类型)在 ASP 代码中声明变量。例如,在使用“Visual Basic(R) Scripting Edition (VBScript)”时,尽管所有的 VBScript 变量都是 Variant,你还是会将成功标志声明为 bSuccess(b 代表布尔型),而不是 vSuccess(v 代表 Variant)。

下表是一些通行的命名约定。

变量前缀:

前缀       使用的变量     变量示例
b or bln   Boolean        bSuccess
c or cur   Currency       cAmount
d or dbl   Double         dblQuantity
dt or dat  Date and Time  dtDate
f or flt   Float          fRatio
l or lng   Long           lMilliseconds
i or int   Integer        iCounter
s or str   String         sName
a or arr   Array          aUsers()
o or obj   COM Object     oPipeline

数据库对象的变量前缀:

前缀  使用的变量  变量示例
cnn   Connection  cnnPubs
rst   Recordset   rstAuthors
cmd   Command     cmdEmployee
fld   Field       fldLastName

范围及前缀的用法:

前缀           说明
g_           创建于 Global.asa。
m_           对于 ASP 页或在 Include 文件中是局部的。
(没有前缀) 非静态变量,对于过程来说前缀是局部的

Knowledge Base (KB) 中的一篇文章“Q110264 INFO: Microsoft Consulting Services Naming Conventions for Visual Basic”(英文)对命名约定提供了真知灼见。

尽可能采用目录结构为您的各个应用程序部件提供始终如一的位置。您应用程序的实际目录结构当然由您自己决定,但通常是将图像、文档、include 文件和组件分别放置在单独的目录中。以下是简单 ASP 应用程序目录结构示例。

目录结构示例:

\SimpleAspApp
\Docs
\Images
\Includes
一个好的目录结构允许您有选择地应用 NTFS 权限。您还可以从 ASP 应用程序内部使用相对路径。例如,可以使用以下代码,从位于 SimpleAspApp 目录的 default.asp 页,引用 Includes 目录中的 include 文件 top.asp:

./includes/top.asp
注意我的 include 文件的扩展名是 .asp,而不是 .inc。这样做是出于安全方面的考虑,而且使用 .asp 扩展名(而不是 .inc),还能够在 Visual InterDev(R) 中使用彩色编码。

有关结构化 ASP 应用程序的其他一些提示和技巧,请参阅文章“ASP Conventions”(英文)。

原则 2:设计为在服务下运行
ASP 将在服务下运行。设计 ASP 应用程序时,您马上会面临在桌面应用程序中不会遇到的安全环境和线程问题。在桌面环境中,通常只处理作为交互式用户运行的单线程执行,而且有权访问当前的桌面系统。在“Internet 信息服务 (IIS)”中,模拟不同用户环境的多个客户机线程调用您的应用程序,而且您的应用程序被限于“系统”桌面。

这对您来说意味着什么?请学习 IIS 的安全模式。还要提醒您:仅因为某些东西能在 Visual Basic IDE 下能够正常运行,并不意味着它就能在 ASP 技术中安全运行。Visual Basic IDE 并没有准确地模拟运行时环境。常见的设计错误包括:在 ASP 技术中使用需要用户界面的 .OCX 控件,使用对线程来说不安全的组件,和使用要求特殊的用户上下文的组件。要避免的一个最简单的问题,就是从应用程序中试图访问 HKEY_CURRENT_USER (HKCU) 注册表项(例如,不要调用 Visual Basic 的 GetSetting 和 SaveSetting 函数,它们都依赖于 HKCU)。同样,不要出现需要用户进行人机交互的消息框或其他对话框。

以下文章是有关 ASP 技术中的安全和验证问题的相当不错的入门读物:

“Authentication and Security for Internet Developers”(英文)
“Q172925 INFO: Security Issues with Objects in ASP and ISAPI Extensions”(英文)
原则 3:封装业务逻辑
ASP 技术通过生成 HTML 输出提供了表示服务。简而言之,它会生成用户界面。您需要将商务逻辑从 ASP 表示脚本中分隔开来。即使您不使用 COM 组件将业务逻辑从 ASP 代码中分隔开来,至少也要将业务逻辑分隔到函数和 include 文件中,以提高可维护性、可读性和可重用性。在需要排除故障和隔离问题时,您还能体会模块化设计方法的好处。

调用脚本内部调用函数和方法,可避免代码乱作一团,并能在 ASP 应用程序中添加结构。下面举例说明从 ASP 代码中,将逻辑分离到方法调用中:

  lt;% Main()
    MyBizMethod()
    ...

    Sub Main()
        GetData()
        DisplayData()
    End Sub
%>
在使用包含 ASP 功能的技术时,可以应用这一原则。下面举一个使用 Visual Basic WebClass 时的例子,说明如何使用这一原则:

因为 Web

时间: 2024-11-01 02:37:13

转: ASP 指南的相关文章

ASP 指南(转贴自Microsoft)

ASP 指南 作者:J.D. Meier发表日期:1999 年 12 月 27 日简介"Active Server Page (ASP)"应用程序的成功常常取决于对体系结构和设计这两方面的取舍.考虑到 ASP 技术的范围之广和当前应用程序固有的复杂性,这种取舍是非常困难的.本文中,我将为您提供一些特定的指导方针,以助您成功开发基于 ASP 的应用程序. 从过去成功的开发模式经验中,我们总结出以下原则. 我已将指导方针整理成一组开发原则.在评估解决方案和技术时,可以应用以下原则帮助您做出

ASP 指南_应用技巧

简介 "Active Server Page (ASP)"应用程序的成功常常取决于对体系结构和设计这两方面的取舍.考虑到 ASP 技术的范围之广和当前应用程序固有的复杂性,这种取舍是非常困难的.本文中,我将为您提供一些特定的指导方针,以助您成功开发基于 ASP 的应用程序. 从过去成功的开发模式经验中,我们总结出以下原则. 我已将指导方针整理成一组开发原则.在评估解决方案和技术时,可以应用以下原则帮助您做出决策.以下原则是我长期以来从成功的开发模式所得的经验积累. 原则 1:采用标准方

ASP 指南

简介 "Active Server Page (ASP)"应用程序的成功常常取决于对体系结构和设计这两方面的取舍.考虑到 ASP 技术的范围之广和当前应用程序固有的复杂性,这种取舍是非常困难的.本文中,我将为您提供一些特定的指导方针,以助您成功开发基于 ASP 的应用程序. 从过去成功的开发模式经验中,我们总结出以下原则. 我已将指导方针整理成一组开发原则.在评估解决方案和技术时,可以应用以下原则帮助您做出决策.以下原则是我长期以来从成功的开发模式所得的经验积累. 原则 1:采用标准方

asp基础教程

·ASP教程:第一篇 Are you ready ·ASP教程:第二篇 ASP技术简介 ·ASP教程:第三篇 ASP基础 ·ASP教程:第四篇 ASP脚本基础 ·ASP教程:第五篇 脚本变量.函数.过程和条件语句 ·ASP教程:第六篇 ASP脚本循环语句 ·ASP教程:第七篇 ASP内建对象Request ·ASP教程:第八篇 ASP内建对象 ·ASP教程:第九篇 ASP内建对象Application和Session ·ASP教程:第十篇 Global.asa文件的使用及Chat程序 ·ASP教

Microsoft的 ASP 组件指南

microsoft 作者:J.D. MeierMicrosoft Corporation2000 年 1 月 24 日 简介 组件.有人喜欢它们,有人则害怕.害怕组件的人通常都能给您讲一个骇人的经历.让我们面对它:当开始在 ASP 下使用组件时,并不知道什么能伤害您.如果您摔倒了,那么站起来,自己拍干净,然后接着来.在这篇文章中,我将提供从实践中获得的一般指南,帮助您建立更好的基于组件的 ASP 解决方案. 为什么使用组件? 在我开始讨论组件指南之前,值得考虑将组件添加到 ASP 应用程序的价值

ASP中Cookie使用指南(转)

cookie 甘冀平翻译的<ASP中Cookie使用指南> 实际上,在web开发中,cookie仅仅是一个文本文件,当用户访问站点时,它就被存储在用户使用的计算机上,其中,保存了一些信息,当用户日后再次访问这个站点时,web可以将这些信息提取出来. 尽管现在听起来cookie没有什么激动人心的,但实际上利用它,你能实现许多有意义的功能!比如说:你可以在站点上放置一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面.并且,你还可以保存访问者的登录密码,这样,当访问者再次

ASP.NET Aries 开源开发框架:开发指南(一)

前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架原理. 开源的文章或源码获取地址见上一篇文章:开源:ASP.NET Aries 开发框架   关于框架: 首先,这是一套开发框架,它类同于WebForm.MVC..NET Core. 相比webform,mvc,.NET Core 它简化了后端很多东西,它也加强了前端一些功能,默认集成的功能和界面,

ASP.NET MVC 5 入门指南汇总

原文:ASP.NET MVC 5 入门指南汇总 经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章言简意赅,篇幅适中,从一个web网站示例开始讲解,全文最终完成了一个管理影片的小系统,非常适合新手入门ASP.NET MVC 5 (新增.删除.查询.更新) ,并由此开始开发工作. 现将12篇文章汇总如下: 1. ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5

ASP.NET微信开发(接口指南)_实用技巧

公众平台用户提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上四个参数: 开发者通过检验signature对请求进行校验(下面有校验方式).若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败. signature结合了开发者填写的token参数和请求中的timestamp参数.nonce参数. 加密/校验流程: 1. 将token.timestamp.nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密