欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 网站制作教程 >

ASP开发准绳

发表于2019-04-24 17:07| 次阅读| 来源网络整理| 作者session

摘要:ASP开发准绳

  运用程序服务器被,或最终将被 Web 服务器所利用,它通常是运转 ASP 页面的 IIS 计算机。ASP 是您的对象的惟一客户机。它带来了专门的线程和平安思考。
  
  只管许多利用 ASP 的 Web 站点基本就不用组件,但在这篇文章中假如 ASP 是 Internet 客户机和组件之间的桥梁。下面的 asp/server01242000.asp">ASP 组件准绳(英文)提供
  
  ASP 和组件之间的划分服务
  
  ASP 最常用于在服务器上创建供客户机利用的 HTML 或 XML 文件,因此咱们次要探讨这种利用计划。这就引出了一个常见的成绩,假设 ASP 页面在服务器上,那么它们能否属于业务层的一局部呢?在组件世界中,答案通常能否。只管 ASP 确真实服务器上运转,而且能够与运用程序服务器在同一个空间,然而这不能使它成为业务逻辑的一局部。
  
  随着用户界面工具的发展或许随着启用更多的业务对业务计划,领有这种明白的区别将获得渺小的报答。
  
  话说到此,让咱们来看一些最重要的业务层和示意层划分准绳:
  
  令 UI 代码与业务逻辑分离。这包括编写与 UI 耦合的代码,例如利用 ASP 内部组件的 MTS 对象,让它与业务逻辑代码分离,好像在不同的 DLL 中。
  
  将事务与 ASP 页面分离。事务 ASP 在某些情况下十分好,然而组件和多层运用程序会扭转这种情况。组件不应该依赖由客户机层来治理它们的事务和业务逻辑语义。
  
  将示意组件(利用申请和呼应的组件)与 Web 服务器放在相反的机器和/或进程中。假设将利用 ASP 内部组件对象的对象放在远程机器上,那么对内部组件的一切调用将以回调方式发生。调用 IIS 客户机的是 COM+ 服务器,它分明升高了功能并使平安配置简单化。可能将这些调整对象放在标记为“库激活”的 COM+ 运用程序中。
  
  ASP 存在于服务器上,因此 ASP 页面必须符合资源共享规则,并且记住可伸缩性。请看下面的具体内容:
  
  在“会话”中,治理当尽量避免用户特定的形状。
  
  保持 ASP 无形状,并在能够的情况下容许资源池。
  
  操作模式
  
  在评估某个代码段能否属于业务逻辑或许示意层时,请问一下本人,“假设我必须用按键式电话运用程序代替我的 ASP 页面,那么该代码能否还有用?”假设答案为“是”,那么可能尝试将它划分为业务逻辑代码或许用户界面协助器代码。
  
  假设扭转了客户机后该代码不能用,或许假设它是结构用户界面的协助器,则该代码属于示意服务层。它在 ASP 页面中,或在利用 ASP 内部组件的组件中。它不属于业务对象组件。
  
  理解桌面与 ASP 客户机的区别
  
  ASP 是组件的特殊客户机,不同于桌面上的传统单线程 Win32 运用程序。次要区别概括如下。
  
  线程治理:ASP 是多线程客户机。这象征着可能有许多并发流动一同运转,兴许在同一时辰解决不同的 ASP 页面。这阐明不能使对象伪称它是惟一的利用者来独占系统。这样做能够有不测的反应,例如,养成一个坏习气:将对象存储在 ASP 会话或许运用程序变量中。
  
  平安环境:ASP 是由 Web 站点中的 Internet Information Services 5.0 执行的,有低、中、高三种隔离度。甚至这些 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 下利用自定义 COM 组件(英文)
  
  asp">MSDN 杂志(英文)不要将引用存储在会话或运用程序中的 VB 对象中
  
  一切 Visual Basic 6.0 组件都是“单元线程”的,就是说它们都运转在 STA 单元中。这象征着假设在线程中创建对象,那么对该对象的一切调用都必须用同一线程服务。许多线程(来自并发 Web 站点用户)利用 STA 对象的同一实例,会惹起一连串的流动,有能够成为运用程序中的瓶颈。
  
  此外,在会话范围内存储用 Server.CreateObject 创建的 STA 对象,可能有效地将执行线程联络到以后用户,从而将运用程序的最大并发用户数限度到默许的 20xN(N = 解决器数量)。
  
  操作模式
  
  假设您依照咱们的建议使对象无形状,则不需求存储引用以供客户机复用,并在运用程序范围内存储它们。客户机将可以独立创建、利用和取消它们本人的对象。这就缩小了保持会话特有对象的需求,缘由是它们不保留会话特有的形状。
  
  引荐的模式是使对象无形状,它在需求时访问数据库或其余存储区(例如 cookies 和 LDAP)。
  
  假设需求利用会话或运用程序范围的数据,请将数据,而不是解决数据的对象,存储在此。您可能创建一个类,来封装对所需值的解决。
  
  参考
  
  asp">信息:不要在会话或运用程序中存储 STA 对象 (Q243543)(英文)
  
  PRB:将 STA COM 组件存储在会话中,会将会话锁定在单线程中 (Q243815)(英文)
  
  信息:ASP 下的组件线程模型概要 (Q243544)(英文)