我已经使用Classic ASP创建了几百个简单的Web表单,目前已经有约2年的工作经验。我看不出切换到.net的好处; 然而,我对.net并不是很熟悉,所以我肯定会错过一些东西。
在我的工作中,我经常听到一些观点,可以在此处找到:http://www.packtpub.com/article/Classic-ASP(尽管我不认同所有这些想法,但这是一个很好的出发点)
我非常想听听其他人对这个问题的看法。
我已经使用Classic ASP创建了几百个简单的Web表单,目前已经有约2年的工作经验。我看不出切换到.net的好处; 然而,我对.net并不是很熟悉,所以我肯定会错过一些东西。
在我的工作中,我经常听到一些观点,可以在此处找到:http://www.packtpub.com/article/Classic-ASP(尽管我不认同所有这些想法,但这是一个很好的出发点)
我非常想听听其他人对这个问题的看法。
你缺失的不止几个东西!ASP.NET比老式ASP更高效、强大和易于维护。服务器端控件、第三方控件、主控页、表单身份验证、表单验证、鼓励适当的应用程序划分的面向对象模型、易于部署、内置调试和跟踪、状态管理。
你甚至可以选择WebForms或MVC。如果你不彻底调查一下你所缺失的内容,那么毫不夸张地说,你是疯了。
如果你喜欢ASP,想转向ASP.NET,那就跳过Webforms,学习MVC。
针对具体问题(“经典ASP与.NET的优劣比较”),我只能想到两件经典ASP能做但.NET不能做的事情:
1)包含文件。它们在ASP.NET中的表现与你期望的不同。当然,ASP.NET提供了更好的方式来实现同样的功能,但仍有些损失,并且可能会使将旧站点迁移到.NET变得困难。
2)ASP.NET无法访问应用程序以上的根文件夹。我们这里拥有一个相当复杂的内部网,主要还是使用经典ASP,只在更新或添加新内容时才使用一些.NET应用程序。如果能够保持一个公共代码副本位于文件夹层次结构的相对较高位置,同时每个独立应用程序又能隔离到各自的虚拟目录下,那将是很好的。但这就是源代码控制所用的,所以并不是什么大问题。
对我而言,从经典ASP和ASP.NET转移最大的优势是IDE。右键单击函数调用,选择“转到定义”,比起必须查找实际实现该函数的文件要方便得多。极大地节省了时间。支持智能提示和调用函数时的类型安全性也是一个福音。
对我而言,我必须说Classic ASP开发快速、易于使用/上手,不过度复杂而且非常有能力完成大多数要求。
使用JScript/Javascript作为主要语言的ASP真的非常好玩。VBScript浪费了大量的脑力,我认为这正是导致Classic ASP名声不佳的原因之一。加上它被认为很慢,但所有关于速度和用户数量的文章都基于10年以上的服务器。我们在两台服务器上每天处理6万个用户的网站,CPU几乎没有闪烁。现代服务器给你更多的可玩性。
随着最近几年Javascript使用、设计和最佳实践的巨大进步,ASP JScript编码者可以获得很多好处,使生活更加轻松。我已经将Mootools移植到服务器端,因此我们获得了许多美妙的助手、类模型、优秀的事件模型等等。ASP非常好玩。更新:现在Mootools已经有一个可以下载的服务器端版本(http://mootools.net/download)。
ASP.net非常强大,但要学好需要较长的学习曲线,当它出现问题时会导致整个网站崩溃,对我来说,最糟糕的是似乎需要绕很多弯才能完成最简单的事情。
目前我同时在使用两者,并使用最适合缺口的那个。我有一个很棒的CMS缓存器和Thumbnailer构建在.net中,我的ASP脚本使用它。这既有Classic ASP的便利,又有ASP.net的强大。
char
和 string
之间的区别?(插入宗教争论)对于简单的网站,我更喜欢使用ASP而不是ASP.NET,尤其是如果您很熟悉HTML。然而,在ASP中,将业务逻辑与视图分离很难;您编写的代码可能很难阅读和维护。
PHP比ASP更好 - 在基本水平上有些相似。如果您对自包含的Web开发栈感兴趣,还可以使用Rails或Django(但学习曲线要长得多)。
我有一个词“调试” - 你永远不想使用它,但你总是不得不用。在 .Net 中,如果你使用 Visual Studio,与尝试在 ASP 上调试代码相比,你拥有一个非常棒的调试器。