代码之家  ›  专栏  ›  技术社区  ›  Jerome WAGNER

经典ASP的推荐参考

  •  4
  • Jerome WAGNER  · 技术社区  · 15 年前

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

    4 回复  |  直到 15 年前
        1
  •  6
  •   Komang    15 年前

    好吧,经典的ASP A LIL位中断是真的,但仍然有许多大的网站用它运行并成功了,我仍然在一些特定的项目中使用它。

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

    1. MSDN Library docs
    2. W3Schools
    3. Webdevbros
    4. CHM Format Language Documentation
    5. Advanced topics at zend.lojcomm.com.br
    6. Ajaxed Library ,asp3+原型+scriptaculous包装

    我还在玩这个游戏。 asp.web.id 希望能有所帮助

        2
  •  4
  •   Dylan Beattie    15 年前

    首先,要理解“经典ASP”实际上指的是一整套技术的组合:

    • ASP运行时和内部HTTP对象(请求、响应、服务器、会话、应用程序)
    • 脚本引擎(通常是vbscript,但有些站点使用jscript或perlscript)
    • 允许您使用COM对象的COM主机

    大多数经典的ASP站点将使用vbscript作为脚本语言,ADO(连接、命令和记录集)用于数据库访问。您还可能遇到用于发送邮件、处理XML等的各种COM对象-甚至可能有一些定制/自定义COM对象(可能是用VB6或C++编写)在您的传统代码库中。

    斯科特·米切尔的 Designing Active Server Pages 可能是经典ASP平台上“最佳实践”的最佳总体参考。还有很多有用的资料 4guysfromrolla.com

    然后,您需要确保为您所使用的环境的每个元素都提供了最新的文档:

    如果您长期从事这项工作,您还需要考虑如何随着时间的推移改进/清理代码。在这方面,将单个页面从.asp移植到.net可能是一种有效的策略;如果您将身份验证和安全性隔离到cookie中而不是使用内置会话对象,则可以使用来自经典asp和asp.net的request.cookie,然后开始将业务逻辑的位移出页面本身并into一组核心模块,甚至类似于域模型。

    别害怕。经典的ASP也不错。我随时都会在ASP.NET Web窗体上使用它。:)

        3
  •  3
  •   Thom Smith    15 年前

    我会第一个承认vbscript/asp远不是一个理想的平台,但它远没有一些评论所暗示的那么糟糕。它不是世界上最现代的语言,也有它的缺点,但是用vbscript编写好的、可靠的代码是完全可能的。而且,这并不一定是一个严峻的考验;尽管平台缺少许多使其他语言编程变得容易的工具(列表、继承、导入、合理的赋值语法、适当的构造函数),但大多数工具都可以替换、模拟或使用。vbscript为您提供了一个公平的工作环境:

    • 动态性
    • 默认属性
    • with 阻碍
    • 可预测的垃圾收集
    • 高效响应缓冲

    我经常听到vbscript的许多功能(特别是默认属性)被贬低为令人困惑的,但是如果您熟悉该语言,它们可能是强大的资产。将内置的功能和特性作为基础进行构建。用这些工具,你可以修补大部分的疣。例如:

    问题:friggin的强制集语法。 例子:

    if isObject(foo) then
        set bar = foo
    else
        bar = foo
    end if
    

    后面疼,哈?

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

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

    例子:

    assign bar, foo
    

    显然,这是一种与纪律结合使用的技巧,但如果使用得当,就完全清楚了。

    如果您愿意,可以在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
    

    有句老话说你可以用任何语言写COBOL。它或多或少地意味着,语言的特性在生成好代码方面不如程序员重要。现在,您不能用vbscript编写ruby或python,但您可以比想象的更接近。

    编辑:差点忘了。 Eric Lippert 他是vbscript的设计师之一,他的博客对于语言中一些更复杂的部分来说是非常宝贵的资源。

        4
  •  0
  •   Phil.Wheeler    15 年前

    我经常提到WROX出版的 VBScript: A Programmer's Reference . 基本上,您的ASP页面只是vbscript。

    如果你的网页上有太多的COM+代码,上帝会帮助你的。栈溢出不是那时发明的,但我建议你在这里花些时间。