知识大全 ASP开发准则
Posted 知
篇首语:愿你纵踩淤泥,也要心向光明。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP开发准则相关的知识,希望对你有一定的参考价值。
ASP开发准则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
应用程序服务器被 或最终将被 Web 服务器所使用 它通常是运行 ASP 页面的 IIS 计算机 ASP 是您的对象的唯一客户机 它带来了专门的线程和安全考虑
虽然许多使用 ASP 的 Web 站点根本就不用组件 但在这篇文章中假定 ASP 是 Internet 客户机和组件之间的桥梁 下面的 asp/server asp\\ >ASP 组件准则(英文)提供
ASP 和组件之间的划分服务
ASP 最常用于在服务器上创建供客户机使用的 HTML 或 XML 文件 因此我们主要讨论这种使用方案 这就引出了一个常见的问题 如果 ASP 页面在服务器上 那么它们是否属于业务层的一部分呢?在组件世界中 答案通常是否 虽然 ASP 确实在服务器上运行 而且可能与应用程序服务器在同一个空间 但是这不能使它成为业务逻辑的一部分
随着用户界面工具的发展或者随着启用更多的业务对业务方案 拥有这种明确的区别将获得巨大的回报
话说到此 让我们来看一些最重要的业务层和表示层划分准则
令 UI 代码与业务逻辑分离 这包括编写与 UI 耦合的代码 例如使用 ASP 内部组件的 MTS 对象 让它与业务逻辑代码分离 如同在不同的 DLL 中
将事务与 ASP 页面分离 事务 ASP 在某些情况下非常好 但是组件和多层应用程序会改变这种情况 组件不应该依赖由客户机层来管理它们的事务和业务逻辑语义
将表示组件(使用请求和响应的组件)与 Web 服务器放在相同的机器和/或进程中 如果将使用 ASP 内部组件对象的对象放在远程机器上 那么对内部组件的所有调用将以回调形式发生 调用 IIS 客户机的是 + 服务器 它显著降低了性能并使安全配置复杂化 可以将这些调整对象放在标记为 库激活 的 + 应用程序中
ASP 存在于服务器上 因此 ASP 页面必须符合资源共享规则 并且记住可伸缩性 请看下面的详细内容
在 会话 中 管理应尽量避免用户特定的状态
保持 ASP 无状态 并在可能的情况下允许资源池
操作方式
在评价某个代码段是否属于业务逻辑或者表示层时 请问一下自己 如果我必须用按键式电话应用程序代替我的 ASP 页面 那么该代码是否还有用? 如果答案为 是 那么可以尝试将它划分为业务逻辑代码或者用户界面帮助器代码
如果改变了客户机后该代码不能用 或者如果它是构造用户界面的帮助器 则该代码属于表示服务层 它在 ASP 页面中 或在使用 ASP 内部组件的组件中 它不属于业务对象组件
理解桌面与 ASP 客户机的区别
ASP 是组件的特殊客户机 不同于桌面上的传统单线程 Win 应用程序 主要区别概括如下
线程管理 ASP 是多线程客户机 这意味着可以有许多并发活动一起运行 也许在同一时刻处理不同的 ASP 页面 这说明不能使对象伪称它是唯一的使用者来独占系统 这样做可能有意外的反应 例如 养成一个坏习惯 将对象存储在 ASP 会话或者应用程序变量中 [Page]
安全环境 ASP 是由 Web 站点中的 Internet Information Services 执行的 有低 中 高三种隔离度 甚至这些 Web 站点可以有不同的安全设置 允许或拒绝匿名访问 验证客户等等 所有这些设置产生了大量的方案 即不同的用户帐户最终用的是您的对象
轻松增长 这不是技术问题 而是 Web 应用程序所提供设施的副效应 传统上 为桌面应用程序增加用户基 要求仔细计划好向已知数量客户机的转出 ASP 已经改变了该过程 在启动和运行后 ASP Visual Basic 应用程序可以方便地打开 供当地的或世界范围的所有职员 所有业务伙伴和所有客户使用 可以用这种方式描述 — 拥有超链接的单个电子邮件可以使用户基成十倍地增长 您的应用程序为此作好准备了吗?唯一了解的方式是对 Web 站点进行强度测试 以获得实际性能的预期值 关于强度测试的详细信息 请参阅 应用程序生命周期 一节
在 ASP 内应该如何使用 Visual Basic 对象?在页面范围内创建和取消您的对象 也就是说 尽可能使 ASP 页面无状态 只在暂时状态下依赖会话或应用程序变量 不要将对象存储在会话或应用程序变量中 这将 ASP 线程锁定到您的会话 取消所有可伸缩性的预期值 也就是说 Web 服务器处理的用户数不会超过几十个 如果需要在会话或应用程序中存储内容 请使之成为数据而不是对象
还有可以遵守的许多其他准则 我们建议您阅读 MSDN Voices 上 J D Meier 撰写的专栏 Servin it Up 该专栏包括了大量的技术 实践和技巧 有助于开发可扩展的 可靠的 ASP 和组件应用程序
参考
asp#server\\ >MSDN Voices Servin it Up Column(英文)
SeminarOnline 在 ASP 下使用自定义 组件(英文)
asp\\ >MSDN 杂志(英文)不要将引用存储在会话或应用程序中的 VB 对象中
所有 Visual Basic 组件都是 单元线程 的 就是说它们都运行在 STA 单元中 这意味着如果在线程中创建对象 那么对该对象的所有调用都必须用同一线程服务 许多线程(来自并发 Web 站点用户)使用 STA 对象的同一实例 会引起一连串的活动 有可能成为应用程序中的瓶颈
此外 在会话范围内存储用 Server CreateObject 创建的 STA 对象 可以有效地将执行线程联系到当前用户 从而将应用程序的最大并发用户数限制到默认的 xN(N = 处理器数量)
操作方式
如果您按照我们的建议使对象无状态 则不需要存储引用以供客户机复用 并在应用程序范围内存储它们 客户机将能够独立创建 使用和取消它们自己的对象 这就减少了保持会话特有对象的需要 原因是它们不保留会话特有的状态 [Page]
推荐的方式是使对象无状态 它在需要时访问数据库或其他存储区(例如 cookies 和 LDAP)
如果需要使用会话或应用程序范围的数据 请将数据 而不是处理数据的对象 存储在此 您可以创建一个类 来封装对所需值的处理
参考
asp\\ >信息 不要在会话或应用程序中存储 STA 对象 (Q )(英文)
PRB 将 STA 组件存储在会话中 会将会话锁定在单线程中 (Q )(英文)
信息 ASP 下的组件线程模型概要 (Q )(英文)
学习 IIS 中的新内容
Internet Information Server 增加了许多新功能 这些改进均已写入 J D Meier 的 MSDN 文章中 asp/server asp\\ >沿用 IIS 中的 ASP(英文) 下面是该文中最重要改进的概述
改进的 出色的性能
Server Transfer 和 Server Execute 方法
集中式错误处理
改进的浏览器功能
改进的脚本引擎
正则表达式分析器
与 ADO 记录集 XML 功能的集成
cha138/Article/program/net/201311/11406相关参考
Asp.net控件开发----控件开发基础 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 服务器
开发经典:ASP开发10条经验总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 不要再做ASP
ASP.NET开发要抛弃ASP旧习和破烂[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使
ASP.NET开发要抛弃ASP旧习和破烂[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对
ASP.NET开发宝典 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章Web基础知识 什么
人文的ASP开发基础入门之简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 什么是ASP?AS
Asp.NET大文件上传开发总结(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以前开发过
Asp.NET大文件上传开发总结集合 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以前开发过一
Asp.net控件开发—数据回传 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 准备技术 常规
ASP.NET项目开发指南 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前言 ASPNET项