
VBScript/ASP Classic关于VBScript和ASP Classic,我有几个问题: 在VBScript / ASP中访问MS SQL Server数据库的首选方法是什么? 关于从控制器分离视图和模型的最佳实践是什么? 关于VBScript或ASP我应该知道的其他事情吗? 如果您没有注意到,我是VBScript编码的新手。 我意识到数字2和3都是一个过于笼统的"黑洞"问题,所以不要以为我期望从这里学习到关于这两个问题的所有知识。 ADO是在VBScript /经典ASP中访问数据库的绝佳方法。
此处提供更多信息:http://www.technowledgebase.com/2007/06/12/vbscript-how-to-create-an-ado-connection-and-run-a-query/
一个警告是,如果您要在记录集中返回一个MEMO字段,请确保一次只选择一个MEMO字段,并确保它是查询中的LAST列。否则,您将遇到问题。 当我看到第一个答案时,我不得不离开电脑,但我仍然为它被很多人所认可而感到沮丧。这是最糟糕的一种ASP代码的令人震惊的例子,这种代码可以确保您的网站可以通过SQL注入,并且,如果您继续在整个网站中使用此代码,则可以在一秒钟内被黑客入侵。 这不是您应该给ASP编码新手提供的那种代码,因为他们会认为这是使用该语言进行编码的专业方式! 永远不要在代码中显示连接字符串,因为它包含数据库的用户名和密码。请改用UDL文件,或者至少使用可以在其他地方声明并在站点中使用的常量。 在网络环境中,对任何操作使用内联SQL不再有任何好的借口。使用存储过程-无法充分强调安全性。如果您确实无法做到这一点,那么将内联参数视为第二好的选择。内联SQL将使您的站点对SQL注入,恶意软件注入以及其他方面保持开放。 变量的后期声明可能导致草率的编码。使用"显式选项",并在函数顶部声明变量。这是最佳做法,而不是真正的WTF,但是最好继续进行下去。 没有数据库暗示这是什么类型的连接-是只读的,还是用户将更新记录?如果有效告知期望的内容,则可以优化连接,并且数据库可以非常有效地处理锁定。 使用后数据库连接不会关闭,并且记录集对象没有完全销毁。 尽管许多人建议改用.NET,但ASP仍然是一门强大的语言-通过良好的编码实践,可以编写易于维护,可伸缩和快速的ASP网站,但是您必须确保使用所有可用的方法来进行编程。您的代码效率高,您必须保持良好的编码习惯,并有所预见。一个好的编辑器也会有所帮助,我更喜??欢PrimalScript,它比任何以.NET为中心的最新MS产品都对ASP编码器更有用。 另外," MEMO"字段从哪里来?这是Access术语,还是MySQL?我问这样的字段在MS-SQL中被称为TEXT或NTEXT字段已有十年了。 记住要用语言编程,而不要用语言编程。仅仅因为您使用的工具集有限,并不意味着您必须像1999年那样编程。 我同意JasonS的课程。的确,您不能做继承之类的事情,但您可以轻松地伪造它
在我的项目中,ASP页将具有以下内容: Modules / ModuleName / page.vb.asp-类似于页面背后的代码。包括页面特定的BO,BLL和DAL类,并设置页面所需的数据/接收提交的表单数据等 Modules / ModuleName / Display / INC-DIS-Page.asp-显示在page.vb.asp中设置的数据。 AX-Asp Xtreme Evolution是适用于ASP经典的MVC框架
有一些尝试为asp创建测试框架:
我看到了几个月前如何制作自己的样品。 回应一些想法,并添加一些我自己的想法: 1)最好的访问数据库的方法是将其抽象为从VBScript访问的某种COM组件。 2)如果您确实需要,可以用VBScript编写控制器,然后在页面中访问它。它类似于页面控制器模式,而不是ASP.NET MVC或MonoRail中看到的前端控制器 3)您为什么要对自己这样做?进行这种工作所需的大多数工具都不再可用。 我同意@Cirieno的观点,出于他提到的所有原因,选择的答案在生产代码中使用是不明智的。就是说,如果您只有一点经验,那么这个答案是基础知识的一个很好的起点。 以我的ASP经验,我更喜欢使用VB编写数据库访问层,编译为DLL,然后通过VBScript引用DLL。很难直接通过ASP进行调试,但这是一种将所有数据访问代码封装为远离ASP代码的好方法。 关于2号,我认为您有一些选择... 1)您可以使用VB6等开发的COM组件将某些业务逻辑与UI分开。 2)您可以在VBScript中创建类。没有继承的概念,实现中缺少其他更高级的功能,但是您可以将逻辑封装在有助于减少应用程序可扩展性的类中。看看这个:http://www.4guysfromrolla.com/webtech/092399-1.shtml 同样对于数据库访问,我有一组功能-GetSingleRecord,GetRecordset和UpdateDatabase,它们具有与Michael上面提到的功能相似的功能 我一直被困在ASP之上,我感到您很痛苦。 1)对SQL Server进行查询的最佳方法是使用参数化查询;这将有助于防止SQL注入攻击。
教程(不是我的博客): 2)我还没有看到有关专门针对ASP的MVC的任何信息,但是我确实很感兴趣,因为这对我来说很难。我通常尝试至少在单独的函数中包含类似于视图的事物和类似于控制器的事物。我想您可能可以在单独的文件中编写代码,然后使用服务器端包含将它们重新结合在一起。 3)您可能来自一种内置有更多功能的语言。起初,似乎有些东西丢失了,但是通常只需要编写比以往更多的代码行即可。
早在VBScript / ASP还可以的时候 @michealpryor正确了 |