我必须深入研究一大堆遗留的ASP代码。为了掌握这个平台的最佳实践,你会建议阅读什么资源(面向对象,i18n的配置,......)
答案 0 :(得分:6)
非常经典的asp中断,这是真的,但仍有许多大型网站与它一起运行并且成功使用它,我仍然在某些特定项目中使用它。
以下是您感兴趣的一些资源:
我还在asp.web.id跟他一起玩,希望能有所帮助
答案 1 :(得分:5)
首先,要了解“经典ASP”实际上可以指整个技术组合:
大多数经典ASP站点将使用VBScript作为其脚本语言,并使用ADO(连接,命令和记录集)进行数据库访问。您可能还会遇到用于发送邮件,处理XML等的各种COM对象 - 在您的旧代码库中甚至可能存在一些定制/自定义COM对象(可能用VB6或C ++编写)。
Scott Mitchell的Designing Active Server Pages可能是经典ASP平台上“最佳实践”的最佳整体参考。 4guysfromrolla.com
上还有大量有用的资料然后,您需要确保获得有关您正在使用的环境的每个元素的最新文档:
如果您长期参与其中,您还需要考虑如何随着时间的推移改进/清理代码。在这方面,将.asp中的各个页面移植到.NET可能是一种有效的策略;如果您将身份验证和安全性隔离到cookie而不是使用内置的Session对象,那么您将能够使用来自经典ASP和ASP.NET的Request.Cookies,然后开始从页面中移出一些业务逻辑他们自己,并进入一组核心模块,甚至像领域模型。
不要惊慌失措。经典ASP并不差。我会在任何一天使用ASP.NET WebForms。 :)
答案 2 :(得分:4)
我是第一个承认VBScript / ASP远非理想平台的人,但它远没有一些评论所暗示的那么糟糕。它不是世界上最现代的语言,它有一些瑕疵,但在VBScript中编写好的,可靠的代码是完全可能的。它不一定是痛苦的;尽管该平台缺少许多使其他语言编程变得容易的工具(列表,继承,导入,合理的赋值语法,正确的构造函数),但大多数工具都可以被替换,模拟或解决。 VBScript为您提供了一些合作:
with
阻止我经常听到许多VBScript的功能(特别是默认属性)被贬低为混乱,但如果你熟悉这种语言,它们就可以成为强大的资产。将内置函数和功能视为构建的基础。使用这些工具,您可以修补大多数疣。例如:
问题:friggin'强制设置语法。 例如:
if isObject(foo) then
set bar = foo
else
bar = foo
end if
后方疼痛,是吗?
解决方案:VBScript支持pass-by-reference!
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, <World>'
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的设计师之一,他的博客是该语言中一些棘手部分的宝贵资源。答案 3 :(得分:0)
我经常提到Wrox的VBScript: A Programmer's Reference出版物。基本上,你的ASP页面无论如何都只是VBScript。
如果您的页面在COM +代码上很重,上帝会帮助您。 Stack Overflow当时没有发明,但我建议你在这里花一点时间。