我应该开始学习ASP Classic还是“继续”学习ASP.NET?

5

背景

一年前,我在学校里学习PHP,因为我已经了解ActionScript3,所以并不困难。和我的一个朋友一起,我们是学校里第一批自学PHP面向对象编程的学生。虽然这不是必需的,但我们认为这很重要。

去年,我开始学习C#和ASP.NET,但我在这方面还远远不是专家。我为自己做了一些项目,只是出于教育目的。

几天前,我开始了一份实习工作(应该持续6个月),但公司仍然使用ASP Classic和VBScript。

问题

学习了ASP.NET和C#后,现在值得花6个月时间来学习ASP Classic和VBScript吗?之后可能会继续学习ASP.NET和C#。

我想听听大家的意见,因为我不知道是否应该留下来学习ASP Classic,还是去另找一份实习工作,可以学习ASP.NET。


6
ASP经典版确实有其用处,但你的老板的回复听起来像是一个销售话术,他想让你继续使用ASP经典版(因为对他们来说寻找替代者等并不容易)。你可以查看两者的内部情况。这也听起来像是他被告知或者是他自己编造的理由,以正当化仅使用ASP经典版。 - Rudu
我只是评论赞同Rudi的观点。你的老板要么(a)真的不了解asp.net,要么(b)在向你推销以保留你的职位。在.NET世界中,我对ASP Classic的了解唯一有用的事情就是让我感激MS Web开发已经摆脱了ASP Classic模型! - super_seabass
完全同意Rudi关于老板的看法。 - Kirk Woll
3
我仍然在不同的“尚未过时但因为我们需要而继续使用”的项目中使用经典ASP。如果您使用经典ASP,请使用Jscript而不是VB,这会让它更加有趣;) - Caspar Kleijne
10个回答

21
避免使用ASP classic,它会强化不良的编程习惯。ASP.NET只有你允许它成为“预制”的那样。如果你想学习,请不要使用拖放设计器;在VS编辑器中手动编写所有HTML代码。这将使您成为更具多才多艺的Web开发人员,并且还可以防止VS在您的页面中生成“膨胀”。我也鼓励您探索ASP.NET MVC,因为WebForms模型有许多复杂性,而MVC避免了这些问题。
如果可以的话,请寻找另一个实习机会。我礼貌但坚定地不同意你老板的观点。

你能想到一种经典ASP加强的不良编程实践吗? - AnthonyWJones
@AnthonyWJones我想不出一个编程实践,但我认为仅仅为了“知道引擎盖下面是什么”而使用旧技术的做法已经足够危险,值得@Nicholas的回答。学校是这种做法的好地方,工作场所不是。 - Chris Pfohl
@Cpfohl:它为什么是“危险的”? - AnthonyWJones
结果是产品更难以维护,这是一个原因;更有可能停止支持,这是第二个原因;而且更难找到热情的程序员。这些都是商业原因,而不是编程原因,所以这只是一条评论,而不是答案!:) (这样说清楚了吗?) - Chris Pfohl

6
我认为除非你有了学ASP classic的报酬,否则学习它没有任何意义。如果是在实习期间,所获得的经验超过了使用旧技术的时间成本。
我不会在未来的任何项目中尝试使用ASP classic,但是在实习期间学习它应该是可以的。
此外,如果你能找到在新技术领域的工作,那对你未来的发展将更加有利。但有时候这并不是一个选项,你可能会被困在老技术中。
我认为你的老板的观点是错误的,我也不知道为什么他们在过去的十年里没有尝试升级。虽然这不会对你的职业生涯造成伤害,但除了经验之外,它肯定不会在任何重要的层面上提高它。
VBScript的掌握实际上将在未来是有一定益处的,因为许多系统自动化脚本都是用它编写的。这也有助于自动化Microsoft Office等任务。 拿到工作,领取薪水,尽快离开。

我同意这个观点。你可以相当容易地学习ASP Classic和ASP.NET,而不会影响你的编程能力。 - Joe Phillips

2
大多数ASP工作现在都是维护性的。如果一家公司正在ASP上进行积极的新开发,他们应该有一个相当令人信服的理由。
此外,你老板的话是无意义的。
我建议你尽可能避免它,并继续使用ASP.NET(或其他有活力的东西)。我这样说是因为我是从FoxPro for DOS开始自己的职业生涯的。

2

ASP Classic是一种非常古老的语言。ASP.Net WebForms则是较为新的语言,并被许多公司广泛使用。而在微软的世界中,有一个更加新的模型,称为ASP.NET MVC。这个模型与ASP Classic有一些共同之处,但几乎在所有方面都改进了旧范式。

学习新东西从来不会亏,但我认为选择较新的技术将能使你获得更多收益。如果您想学习这种模型,请与使用MVC的公司(如StackOverflow)进行实习。


ASP Classic 不是一种编程语言。 - Thom Smith

2
我认为这不会成为一个麻烦。ASP将教授您一些较旧的技术,甚至是做事情的哲学,这可能会让您在新开发中获得其他有趣的经验。实际上,与ASP一起工作6个月将使您获得其他人只能推测的知识。
除了学习或提高ASP技能外,参与该项目可能带来其他值得学习的方面。任何新的经验都是迈向新可能性的一步。
学习ASP至少可以简单地教你为什么在ASP.NET和MVC中会以这种方式完成任务,您或许可以更好地理解这些架构或方法最常用的基础知识。
此外,当公司需要具有ASP最低知识的候选人来将系统迁移到ASP.NET时,那么您就是那个人吗?= P
始终要看到新经验可以给您带来的积极影响。几乎任何新项目都可以教给您工作的新方面。
希望这可以帮到您!=)

1

如果你有更适合你想学习的实习选项,那就选择那个。

话虽如此,学习更多通常是一件好事。尤其是只有六个月的时间。但不要永远扎根于ASP Classic,因为它在某个时候会消失;不要依附于已经走下坡路的列车。


1
在某种程度上,你的老板是对的。学习经典ASP将帮助你理解ASP.NET如何管理Web概念,例如你页面的视图状态属性;同时它也会强制你从头开始创建自己的网格视图。
然而,.NET框架非常庞大,需要花费相当长的时间来了解它。许多ASP.NET控件可以帮助你节省宝贵的时间,集中精力处理应用程序的更重要方面。如果你想知道一些“旧方法”是如何完成的(即10年前以上,微软于1996年推出了经典ASP),我建议你寻找一个ASP.NET实习机会并自学ASP。

1

如果你会PHP,你就已经会ASP经典版了。是的,这两种语言是不同的,但重要的东西(页面模型、生命周期、何时运行)是相同的。其余的只是如何调用操作系统中各种事物的细节。嗯,除了VBScript有点被削弱了。

另外,如果他们在ASP中工作,那很可能意味着他们有COM对象(最可能是用VB6编写的)要么要调用,要么你必须编写和部署。这样会带来痛苦。

如果你正在寻找一个最实际的IT开发工作,这听起来实际上是合理的 - 有许多商店卡在旧技术上。然而,在你的简历上它并不会太有用。

从某种程度上说,他是正确的 - ASP.NET WebForms模型确实为实际上正在发生的事情创建了巨大的抽象。但是,如果你看一下ASP.NET MVC或另一个MVC框架,如Monorail,你就可以得到原始的HTTP故事。但是,再次强调,你已经做过PHP,所以你已经看到了它。


1

别被骗了,事实是:VBScript在CLR上不运行,ASP经典版和旧版IIS与ASP.Net的代码路径、处理程序和一大堆东西都没有在CLR上运行,我几年前从ASP3转到ASP.Net时深感困惑。

别浪费时间了,ASP.Net的底层内容和整个设计模型都与经典ASP截然不同,你只会把整个问题搞混。

事实上,放弃这些吧,学习WPF/Silverlight/XAML和C#,如果你能在XAML代码后面将两个部分组合起来,那么当你需要使用ASP.Net(或经典ASP)时,你就不会遇到什么麻烦了,而且你将更加有能力跟上下一个发展方向,而不是从10年前开始旅程,以那种方式追赶现代时代将需要很长时间。


0

虽然我不会重复其他答案中提出的好点子,但有两件事情我想补充一下。

说了解ASP就能理解ASP.NET底层是完全错误的。在这两个框架的层面上,了解ASP更可能会误导你对ASP.NET的理解——有些看似相似的东西实际上是不同的。在这个层面下,最好忘掉框架和语言,学习HTTP的细节(参见RFC 2616),然后再弄清楚它在你使用的任何框架中是如何工作的。

此外,经典ASP的真正亮点并不在于ASP本身(实际上比ASP.NET简单得多),而是在于与之配合使用的COM对象(这些对象往往比.NET等效物更加复杂,特别是当考虑到必须处理更加复杂的线程抽象、缺乏垃圾回收和其他.NET提供给我们的新工具或改进时)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接