经典ASP仍然是新项目的替代其他不利语言吗?
许多网站仍在使用经典ASP而不是ASP.NET,但这不是"永远不要更改正在运行的项目"的问题。
问题是,它仍然是新的Web项目的基础还是第一选择,还是值得切换到ASP.NET?我们会推荐经典的ASP程序员切换另一种语言吗?自经典ASP首次发布以来,没有任何更新,但是许多公司仍在将其用于新项目。当之无愧?
解决方案
在我看来,与ASP.NET Webforms或者ASP.NET MVC相比,绝对没有理由使用经典ASP。
除非我们需要与现有的经典ASP应用程序集成,否则某些事情(尤其是会话)在应用程序边界之间不兼容,从而导致创造性的解决方法(在本地主机上运行WebServices ... yuck)。
我认为现在是时候切换到Asp.net了。更好的面向对象的方法asp.net肯定会减少代码管理的麻烦。
好吧,老实说,我不会。。。有了ASP .NET,我们可以利用.NET框架和面向对象的程序设计……这就是我使用ASP.NET而不是经典ASP的充分理由。
对于任何剩余的ASP保留,我实际上建议我们跳到PHP。它比ASP.NET更像是ASP,并且其中不乏新工作。
话虽这么说,我本人还是非常喜欢ASP.NET(包括MVC和WebForms),但是大约7年前我离开了ASP开发。 ;)
尽管我个人从不愿意选择在ASP.NET项目上创建另一个ASP项目,但这样做的唯一最大原因是"技能集"。我绝对会推荐ASP开发人员使用ASP.NET,但是如果"现在"需要一个项目,请按照我们所知道的去做。然后,在拥有另一个项目之前,请学习ASP.NET。 :)
ASP.NET在ASP方面进行了许多改进,但是我们(以前的经典ASP开发人员社区的总和)使用经典ASP创建了许多优秀的应用程序。
我很难为一个新项目推荐使用"经典" ASP,但是,与任何新项目一样,它应该始终是选择最适合该工作的工具,而不是使用" Tool X",因为它的:
- 较新的
- 更好的
- "最新的事情"
例如,如果" X公司"(一个有20名员工的小公司)的Intranet需要一个新的Web应用程序来记录假期/休假请求,并且Intranet服务器是一个老化的NT4机顶盒,那么经典ASP将是解决此问题的方法去。我会建议他们升级到可以处理受支持的服务器操作系统的新机器,例如Win2k3,但是很可能他们根本没有预算/需求。
来自经典的ASP背景,我有同样的问题。 3-4年前,我采取了走向ASP.NET/VB的方法。我可以告诉我们,从ASP / VBScript到ASP.NET/VB的交叉几乎没有。在头几个月(更像是第一年!),实际上我对整个.NET平台感到非常沮丧,并且一直回滚到经典的ASP。
从长远来看,我从头开始并选择了ASP.NET/C#。奇怪的是,即使我的背景是VBScript,我也觉得C的语法更自然!
对于常规的Web开发,ASP.NET就像使用大锤一样,只需简单的ping锤即可。但是,.NET平台背后的强大功能使其在企业环境中(其网络经常与其他应用程序一起被模糊化)是无价的。
鉴于我现在所知道的,我很可能已经转向了PHP。不仅编程风格相似,而且PHP确实专用于Web。 .NET平台提供的大量信息非常容易丢失。最近,新的.NET技术的出现速度可能并且已经变得势不可挡。
要直接回答问题:如果我们停留在Web开发领域,那么我建议我们认真研究一下新项目的PHP。
在我看来,对于现有项目,除非我们必须进行一些根本性的更改/添加,否则无法切换到另一种语言。重新编程非常耗时,客户通常不会为此付费。
在我看来,PHP是一种不错的网络语言。但是我不会在大型项目中使用它,因为它没有预先编译,因此提高了速度(我的经验)。但是几年前我离开了PHP-Development,现在也许对此有了一些不错的改进。另外,我不会在IIS上运行PHP,也不会在Windows Server上运行Apache。因此,当我们整个服务器设备都基于Windows时,我们将不得不为公司使用linux / apache / php来安装新服务器,而客户则无需为此付费。
我同意大多数答案,没有充分的理由永久保留用于新项目的经典asp,并且应该制定计划以转换为另一种语言。目前,我们仍然使用经典ASP来编程大多数新项目,因为我们有很多自制库可与CMS等配合使用,并且必须用.NET / C#重写它们。此外,还必须建立一些新的编码约定(例如,如何进行导航,文件夹结构等),因此我们正在一起进行.NET中的示例项目,完成后,我们将仅做少量更改到现有项目,直到我们有机会至少部分地与另一位客户分配赎回重写。
这是一个缓慢的过程,但我相信它迟早要完成。 (我也是.NET-Framework的忠实粉丝!:-))
就像提到的其他海报一样,员工的技能水平将是决定性因素。
如果这是一家经典的ASP商店,并且必须尽快完成某些工作(什么不对,对吗?),那么可能很难说服管理人员对.NET的需求,特别是如果它影响了时间表。在这里,为一次性项目添加一些.NET页面很方便,因为它使开发团队可以熟悉该语言并决定何时从Classic ASP切换到.NET。
展望未来,重要的是要记住,尽管Classic ASP仍然可以正常运行并且运行良好,但它并没有走到任何地方,我们不能指望对语言/工具进行任何更新/更改。
就是说,根据我的经验,我发现jQuery / Ajax / DOM脚本使Classic ASP页面焕然一新,并添加了一些客户希望在其网站上看到的"奇特/酷"的东西。
我们可能要考虑一下ASP经典版和ASP.NET之间的一些区别。过去必须同时维护两者,我可以告诉我们,在.NET与ASP Classic中进行开发有很多乐趣。如果只需要意识到ASP Classic所缺乏的地方,那么过渡到任何Web流行的语言(PHP,ASP.NET,Ruby,Python)将是值得的。
我们的团队两次被要求大幅"升级"经典的ASP网站,在这两种情况下,这都是一场噩梦,我们在ASP.Net中对其进行了转换/重新编写。我知道"不要重写正在运行的内容"的口头禅,但是知道我们或者其他人将不得不继续维护代码库,并且看到ASP代码要维护得多么可怕之后,我们决定彻底中断。
仅出于这个原因,我看不出推荐使用经典ASP编写其他任何东西的建议。如果没有ASP.Net,我会选择PHP或者Ruby。
我不会用经典的ASP编写新的应用程序/网站。为什么?原因数量:
1)MS不再修复经典的ASP错误,最终它的支持将不再存在。
2).net是更快的性能明智之举
3).net有很多有用的扩展(例如AJAX)
4)技能组合在考虑技术时,必须确保将来可以找到可以轻松维护它的人
.net已经存在了一段时间,并且已经过测试,因此可以肯定(建议)为新项目进行切换。