Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic 经典ASP的推荐参考资料_Asp Classic_Refactoring - Fatal编程技术网

Asp classic 经典ASP的推荐参考资料

Asp classic 经典ASP的推荐参考资料,asp-classic,refactoring,Asp Classic,Refactoring,我必须深入研究一大块遗留ASP代码。为了掌握该平台的最佳实践(面向对象、i18n的配置等),您建议阅读哪些资源?我经常参考Wrox的出版物。本质上,您的ASP页面只是VBScript 如果你的网页上充斥着COM+代码,上帝保佑你。堆栈溢出不是当时发明的,但我建议您在这里花一点时间。经典asp有一点中断,这是真的,但仍然有许多大型网站使用它并取得了成功,我还在一些特定项目中使用它 以下是您感兴趣的一些资源: ,ASP3+原型+脚本包装器 我还在玩它,希望这将有助于首先,理解“经典ASP”

我必须深入研究一大块遗留ASP代码。为了掌握该平台的最佳实践(面向对象、i18n的配置等),您建议阅读哪些资源?

我经常参考Wrox的出版物。本质上,您的ASP页面只是VBScript


如果你的网页上充斥着COM+代码,上帝保佑你。堆栈溢出不是当时发明的,但我建议您在这里花一点时间。

经典asp有一点中断,这是真的,但仍然有许多大型网站使用它并取得了成功,我还在一些特定项目中使用它

以下是您感兴趣的一些资源:

  • ,ASP3+原型+脚本包装器
  • 我还在玩它,希望这将有助于首先,理解“经典ASP”实际上可以指一整套技术:

    • ASP运行时和内部HTTP对象(请求、响应、服务器、会话、应用程序)
    • 脚本引擎(通常是VBScript,但有些站点使用JScript或Perlscript)
    • 允许您使用COM对象的COM主机
    大多数经典的ASP站点将使用VBScript作为脚本语言,使用ADO(连接、命令和记录集)访问数据库。您还可能会遇到用于发送邮件、处理XML等的各种COM对象—在您的旧代码库中甚至可能有一些定制/自定义COM对象(可能是用VB6或C++编写的)

    Scott Mitchell的可能是经典ASP平台上“最佳实践”的最佳总体参考。还有大量有用的资料

    然后,您需要确保您已获得所使用环境中每个元素的最新文档:

    • ADO文档包含在
    • 此外,我们还强烈建议您使用
    <> P>如果你在这段时间里,你也会想一想你可以随着时间的推移改进/清理代码。在这方面,将单个页面从.asp移植到.NET是一种有效的策略;如果您将身份验证和安全性隔离到Cookie中,而不是使用内置会话对象,那么您将能够使用经典ASP和ASP.NET中的Request.Cookie,然后开始将部分业务逻辑移出页面本身并移入一组核心模块,甚至类似于域模型的内容


    别害怕。经典的ASP并没有那么糟糕。我随时都会在ASP.NET网络表单上使用它。:)

    我会第一个承认VBScript/ASP远不是一个理想的平台,但它远没有一些评论所暗示的那么糟糕。它不是世界上最现代的语言,也有它的缺点,但是用VBScript编写好的、可靠的代码是完全可能的。这不一定是一种折磨;尽管该平台缺少许多使其他语言编程变得简单的工具(列表、继承、导入、合理的赋值语法、适当的构造函数),但大多数工具都可以替换、模拟或变通。VBScript为您提供了一个相当多的工作空间:

    • 动态性
    • 默认属性
    • 带有
    • 可预测垃圾收集
    • 高效响应缓冲器
    我经常听说VBScript的许多特性(特别是默认属性)被贬损为令人困惑的特性,但如果您熟悉该语言,它们可能是强大的资产。将内置功能和特性作为构建的基础。有了这些工具,你可以修补大部分的疣子。例如:

    问题:该死的强制集合语法。 例如:

    后面疼吗

    解决方案:VBScript支持按引用传递

    function assign (byref var, val)
        if isObject(val) then
            set var = val
        else
            var = val
        end if
    end function
    
    例如:

    assign bar, foo
    
    很明显,这是一种有纪律的技巧,但如果使用得当,则非常清晰

    如果愿意使用VBScript,可以使用VBScript执行更多操作的示例:

    myList.map getRef(lcase)
    
    set myDict = DB.get_record "select * from Foo where id=?", Array(42)
    
    import "MyLib"
    
    printf "%s, %!s" Array("Hello", "<World>")
    ' => Hello, &lt;World&gt;'
    
    
    with Form.define("User")
        with .field("name")
            .validate_nonempty
            .validate getRef("userNameNotTaken"), "That user name is taken"
        end with
        
        with .field("email")
            .validate_format emailRegex
        end with
        
        with .field("password")
            .validate_length 6, null
            .validate getRef("passwordIsComplex"), "Your password must contain…"
        end with
    end with
    
    myList.map getRef(lcase)
    设置myDict=DB.get_记录“从Foo中选择*,其中id=?”,数组(42)
    导入“MyLib”
    printf“%s,%!s”数组(“Hello”,“”)
    “=>你好,世界”
    使用Form.define(“用户”)
    带.字段(“名称”)
    .validate_非空
    .validate getRef(“UsernameNotTake”),“该用户名已被采用”
    以
    带.field(“电子邮件”)
    .validate_格式emailRegex
    以
    带.field(“密码”)
    .validate_长度6,null
    .validate getRef(“passwordIsComplex”),“您的密码必须包含…”
    以
    以
    
    有句老话说你可以用任何语言写COBOL。这或多或少意味着,在生成好代码方面,语言的特性不如程序员重要。现在,您不能用VBScript编写ruby或python,但是您可以比您想象的更接近ruby或python


    编辑:差点忘了。是VBScript的设计师之一,他的博客对于语言中的一些棘手部分来说是一个非常宝贵的资源。

    是的,你会想问很多问题,希望与摩西一起生活的人会有一些答案。ASP Classic没有那么老。我正在维护很多迁移没有商业意义的老站点。+1代表“经典ASP没那么糟糕”。我很少使用它,但它被恶意攻击得很厉害,事实上远没有人们想象的那么糟糕
    myList.map getRef(lcase)
    
    set myDict = DB.get_record "select * from Foo where id=?", Array(42)
    
    import "MyLib"
    
    printf "%s, %!s" Array("Hello", "<World>")
    ' => Hello, &lt;World&gt;'
    
    
    with Form.define("User")
        with .field("name")
            .validate_nonempty
            .validate getRef("userNameNotTaken"), "That user name is taken"
        end with
        
        with .field("email")
            .validate_format emailRegex
        end with
        
        with .field("password")
            .validate_length 6, null
            .validate getRef("passwordIsComplex"), "Your password must contain…"
        end with
    end with