热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将ASP代码移植为VBCOM组件(1)

你刚刚把最新的庞大的ASP应用程序释放到网上。文件正确地上载到服务器上,与应用程序的链接也工作良好。在庆祝胜利之前,你想在应用程序的性能上运行一些stats 以便发现它到底
你刚刚把最新的庞大的ASP应用程序释放到网上。文件正确地上载到服务器上,与应用程序的链接也



工作良好。在庆祝胜利之前,你想在应用程序的性能上运行一些stats 以便发现它到底有多好。结果



却发现,本来在开发环境下工作得很好的应用程序实际上运行速度很慢。







     对于那些使用Microsoft 软件包时间不长的人,DNA代表分布式InterNet 结构,是另一种非常热门的



n层应用程序结构的首字母缩写形式。Microsoft 致力于在Internet上展开的分布式应用程序的开发。



基于这种思路,未来将流行小型的、无状态的、组件化的应用程序就不足为奇了。







     







     上面是ASP用于n层环境的典型图示。web类(IIS应用程序)不是必需的,因为ASP可以直接与表述层



或商业规则层组件对话。因为大多数应用程序都是用ASP单独写成的,所以一个情理中的问题就是:







     为什么要将代码转入COM组件?







     以我之见,ASP只是用于表述层代码的,所以我选择将商业规则逻辑或任何形式的数据存取



都装入COM组件中。一般情况下,我从一开始就将应用程序的代码分成各个组件,但是通常你并不能选



择所要处理的结构,所以代码移植就是个实际问题。在一个n层应用程序中,你必须尽力把非表述代码



从ASP中尽快移走。







     也许目前你并没有在进行n层编程,那么移植代码的适当时机就是运行性能开始削弱时。通常,这是指



你的老板说“程序今天运行有点慢”到“你被解雇了”之间这段时间。一旦用户开始抱怨就晚了。







     第二个使用移植代码的方针是当你有足够的相似代码(例如所有的数据存取)可以放在一个包含文件



(.inc) 中以保证一个COM组件时。多少个程序就足够?这个问题提得好!编写小型的MTS 组件时,我



发现有一个程序就足够创建一个COM组件了。但是只有一个程序的COM组件是很罕见的,所以对于这个



问题就需要进行判断。如果你写的代码足够长,就开始进行模式开发了。当你遭遇到ASP的“阴暗面”



之后(aka COM组件)你就会感觉到其力量。


 
当你编写可以节省时间的ASP代码时,如果要移植代码的话,有许多事情需要做。跟随以下步骤,你会



发现移植代码没有什么麻烦的。







     声明变量类型







     Visual Basic 和Vbscript 的最大缺点是它允许开发人员未经声明就使用变量。如果你觉得这是个好处,



那么当你要整个晚上来寻找由一个小小的打字错误而造成的逻辑错误时,就不再这样想了。如果你使用



了"Option Explicit"(明确选项)而强制明确声明了的话,IDE 就会对此进行警告。







     < %&#64; Language&#61;Vbscript % >



     < % Option Explicit % >







     当你使用Option Explicit时&#xff0c;要记住它刚好在&#64; declarations下面。不注意这一点会导致一个小小的



错误信息。







     Microsoft Vbscript compilation error &#39;800a0400&#39; 







     Expected statement 







     /test.asp, line 4







     Option Explicit







     ^







     现在挑战来了。Vbscript 允许将变量是任何数据类型&#xff0c;只要它是variant。这就是说你只能把变量



声明为variants。在许多方面这是十分浪费的&#xff0c;但是在ASP可以接受。但是在Visual Basic中&#xff0c;当



可能创建更有效的代码时&#xff0c;变量就要被定义类型。这个程序很简单&#xff0c;只需在声明之后加上"as 



[data_type]" &#xff0c;这时它就不再是一个简单的variant了。







     比如说&#xff0c;现在有一个变量是一个字符串。打开一个ASP页然后键入"Dim strSession as String"。然后



预览这个页面&#xff0c;就会得到一个小小的惊喜。







     Microsoft Vbscript compilation error &#39;800a0401&#39;







     Expected end of statement 







     /icu/temp.asp, line 3







     Dim strSession as String







     ---------------^







     所以&#xff0c;如何作到不对ASP代码造成威胁而准备Visual Basic 的变量&#xff1f;我不能确定对此如何评价。有



一种方式是在变量声明之后使用注释标记。要注意这不仅在将代码移植到VB时有帮助&#xff0c;当有别



的公司提供高薪挖你走的时候&#xff0c;这还有助于别人理解你的代码。以下是在ASP版本2中用注释标记



声明变量的三种途径&#xff1a;







     Private strString &#39;as String



     Dim intInteger &#39;as Integer



     Public bolBoolean &#39;as Boolean







     这种数据类型的定义技巧还适用于你在ASP应用程序中使用的任何函数。&#xff08;请看下面部分子程序和函数&#xff09;。







     Private Function(strString, intInteger) &#39;as Boolean







     当我敲入我的ASP代码时&#xff0c;也在其中贯穿了这些注释。这也许不适合你&#xff0c;也许你在处理一些旧代码&#xff0c;



在移植代码之后&#xff0c;你可以使用Visual Basic 的搜索和替换功能来增加数据类型。这样更有意义&#xff0c;因为



在函数和子程序中不能注释变量。代码越是程序话&#xff0c;变量数据类型注释就越少。

 

推荐阅读
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 本文以 www.域名.com 为例,详细介绍如何为每个注册用户提供独立的二级域名,如 abc.域名.com。实现这一功能的核心步骤包括:首先,确保域名支持泛解析,即将 A 记录设置为 *.域名.com,以便将所有二级域名请求指向同一服务器。接着,在服务器端使用 ASP.NET 2.0 进行配置,通过解析 HTTP 请求中的主机头信息,动态识别并处理不同的二级域名,从而实现个性化内容展示。此外,还需在数据库中维护用户与二级域名的对应关系,确保每个用户的二级域名都能正确映射到其专属内容。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 为了向用户提供虚拟应用程序,通常会在基础架构中部署StoreFront或Web Interface。为了确保安全的远程访问,通常需要在DMZ中配置Secure Gateway或Access Gateway。本文详细对比了这两种界面工具的功能特性,包括用户管理、安全性、性能优化等方面,为企业选择合适的解决方案提供了全面的参考。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 在多线程环境中,IpcChannel的性能表现并未如预期般优于Tcp和Http通道。实际测试结果显示,在IIS6中通过Remoting创建的Ipc通道,其速度比Tcp通道慢了约20倍。本文详细分析了这一现象的原因,并提出了针对性的优化建议,以提升IpcChannel在高并发场景下的性能表现。 ... [详细]
author-avatar
Blackage
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有