52

与 Classic ASP 合作了大约 2 年,创建了 100 个简单的 Web 表单,我看不出切换到 .net 的充分理由;但是,我对 .net 并不那么精通,所以我确信我可能会遗漏一些东西。

我在工作中经常听到的一些观点可以在这里找到:http://www.packtpub.com/article/Classic-ASP(并不是我分享所有这些想法,但这是一个很好的起点)

我很想听听其他人对此事的看法。

4

19 回答 19

74

你错过了不止一些东西!ASP.NET 的生产力、健壮性和可维护性比老式 ASP 所想的要高几个数量级。服务器端控件、第三方控件、母版页、表单身份验证、表单验证、OO 模型比鼓励适当的应用程序分区、易于部署、内置调试和跟踪、状态管理。

您甚至可以选择 WebForms 或 MVC。如果您不彻底调查您遗漏的内容,可以毫不夸张地说,您只是疯了。

于 2008-09-05T03:27:57.103 回答
54

如果您喜欢 ASP,并且想转向 ASP.NET,请跳过 Webforms 并学习 MVC。

于 2008-09-05T03:28:21.380 回答
22

对我来说最大的问题是我创建应用程序,而不是网站...... UI 是问题的一小部分,大部分是编写业务逻辑层,以及各种企业通信组件(使用 SOAP 连接到 SAP?没问题!)。

.NET Toolkit 让我可以使用出色的面向对象语言 (C#) 进行编程,并且有一个强大的框架可以提供帮助。

VbScript 是一种用于尝试编写业务应用程序的可怕语言。

但是,如果您所做的只是一个简单的小网络表单,那么当然可以使用 VbScript。

就您的链接而言,它基本上可以归结为:

  • 哇哇,我不喜欢 Visual Studio
  • WaaWaa,我想像白痴一样在生产服务器上编辑生产代码。
  • WaaWaa,我不知道部署单个已编译的 DLL 是小型站点部署 asp.net 应用程序所需的全部内容。

基本上,简而言之,它的无知。

于 2008-09-05T03:51:04.147 回答
20

为了专注于具体问题(“Classic vs .Net 的好处”),我只能想到 Classic 做 .Net 不会做的两件事:

1) 包括。它们只是不像您在 ASP.Net 中所期望的那样工作。当然,ASP.Net 提供了更好的方法来完成同样的事情,但它仍然有点损失,并且会使将旧站点迁移到 .Net 变得很痛苦。

2) ASP.Net 不会超出应用程序的根文件夹。在我所在的地方,我们有一个相当复杂的 Intranet,它仍然主要是经典的 ASP,随着事物的更新或新内容的添加,到处都有少量的 .Net 应用程序。如果能够在文件夹层次结构中保留一份公共代码的副本相当高,但仍然让每个单独的应用程序与它自己的 VD 隔离,那就太好了。但是,这就是源代码控制的用途,所以这没什么大不了的。

对我来说,到目前为止,从 Classic ASP 和 ASP.Net 转移的最大优势是 IDE。能够右键单击函数调用并选择“转到定义”,而不必四处寻找实际实现函数的文件,真是太好了。节省大量时间。调用函数时的智能感知支持和类型安全也是一个福音。

于 2008-09-05T14:04:42.593 回答
11

性能、可扩展性和一个框架,它为 Web 应用程序的无状态世界提供了更好的基础。

Wikipedia 的 ASP.Net 页面有一个关于差异的部分。

于 2008-09-05T03:25:13.057 回答
11

对我来说,我不得不说 Classic ASP 可以快速开发,易于使用/上手,不会过于复杂并且非常有能力完成大多数要求它的事情。

以 JScript/Javascript 作为主要语言的 ASP 是非常非常有趣的代码。VBScript 是对脑力的浪费,我认为正是它给 Classic ASP 带来了坏名声。加上它被认为很慢,但所有关于速度和用户数量的文章都是基于 10 年以上的服务器。我们在两台服务器上运行一个每天有 60,000 名用户的网站,CPU 几乎没有闪烁。现代服务器为您提供了更多的功能。

随着近年来 Javascript 使用、设计和最佳实践的巨大飞跃,ASP JScript 编码器可以获得很多好东西,让生活变得更加轻松。我已经将 Mootools 移植到服务器端,因此我们得到了很多很棒的帮助、类模型、出色的事件模型等等。ASP 非常有趣。更新:Mootools 现在有一个可以下载的服务器端版本 ( http://mootools.net/download )。

ASP.net 非常强大,但是在学习曲线上有一个很大的坡度可以做得很好,当它适合它的时候可以让你的整个网站崩溃做的事情。

我现在使用两者都很有趣,使用最适合差距的一个。我有一个很棒的小 CMS Cacher 和 Thumbnailer 构建在我的 ASP 脚本使用的 .net 中。两全其美。

于 2009-05-21T10:16:18.493 回答
8

如果你回顾你的旧代码并说:“我在想什么!这太垃圾了,我现在写的代码好多了!” 那么你已经发展成为一名程序员。

如果站点是相当临时的(即您快速构建它,它被用于特定目的和时间量,然后它被有效地关闭),那么以您最舒适的方式敲打这些站点是完全可以接受的。

如果您现在需要(或希望)反向移植到旧站点,或者您的“小站点”变得越来越大、越来越复杂,这给您带来了极大的痛苦,那么您需要一长串错误、修复和改进退后一步,重新评估您如何构建和支持这些网站。

我非常同意 ASP.NET 是一个非常成熟和有效的编程环境。但是,与任何工具一样,您需要知道(或学习)正确的使用方法,因为它不会在一夜之间自动将您变成“超级程序员”。

打破僵局的一种方法是与您的老板达成一致,即您创建的下一个“站点”是在 ASP.NET 中开发的。向他解释说,这将比您目前交付网站的方式花费更长的时间,因为您必须“了解” ASP.NET,但好处是 x、y 和(练习留给读者!)

就我个人而言,我仍处于过渡阶段(我从 v1 开始使用 ASP.NET!),因为我拥有一个相当强大的 Classic ASP 框架,我已经开发并使用它了。但是,我已经战略性地使用了 ASP.NET,并且发现它非常强大,并且您最终编写的代码必须更少,因为 .net 框架中内置了这么多,只要您可以在文档中找到它。

我还建议您不要使用 VB.NET,而您咬紧牙关使用 C#。语言的变化很小,但是您减少了编写与以前完全相同的网站的机会。它有助于改掉坏习惯,让你有机会学习新技术。

祝你好运!

于 2008-09-05T06:07:20.950 回答
6

我有一个词“调试”——你永远不想使用它,但你总是这样做。在 .Net 中,如果您使用的是 Visual Studio,那么与尝试在 ASP 上调试代码相比,您将拥有出色的调试器。

于 2008-09-05T04:42:02.077 回答
5

对于简单的网站,我实际上更喜欢 ASP 与 ASP.NET,尤其是如果您熟悉 HTML。然而,对于 ASP,将业务逻辑与视图分离是很困难的;您编写的代码可能难以阅读和维护。

虽然 PHP 比 ASP 更好 - 并且在基本级别上有些相似。如果您对自包含的 Web 开发堆栈感兴趣(但学习曲线要​​长得多),您可以随时使用 Rails 或 Django。

于 2008-09-05T03:26:54.300 回答
5

ASP.NET 的一个优点是,您可以选择与使用经典 ASP 完全相同的方式对站点进行编码,并且可以访问丰富的 .NET 框架。您可以保留现有功能并在需要时添加新的 ASP.NET 功能。他们混合得很好。

不幸的是,引用文章的作者并不十分精通 ASP.NET 背后的技术,正如他的言论所表明的那样(甚至可能不是经典的 ASP)。他的大部分观点都是无效的或完全错误的。

于 2008-09-05T03:27:31.070 回答
5

这里的每个人都提出了有效的观点。

直到 3 年前,当我切换到 .NET 2.0 之前,我一直是一名经典的 ASP 开发人员。

我不能回去(尽管我仍然需要修复一些经典的 ASP 站点)。

我确实怀念拥有一个记录集对象,数据重复器非常适合快速显示数据,但是数据集虽然提供了出色的功能,但在“大”站点上的性能方面却非常糟糕。公平地说,我一直在使用经典 ASP 中的数组以迂回的方式处理数据集。我唯一一次使用数据集是为了我的电子商务网站购物篮。我确实想念 rs.movenext 等...

FlySwat 犯了我看到很多开发人员犯的最大错误之一。

是的,.NET 带来的业务逻辑、OO 等非常好(我不会 100% 同意可扩展性,但肯定更具可扩展性),但是当使用 ASP.NET 时,您仍在创建 WEB 站点。忘记使用术语“应用程序”的这种废话。我遇到过许多构建 n 层、OO 站点的优秀 .NET 开发人员,但他们对构建网站的独特性并没有真正的了解;例如状态,或者他们过度依赖 Javascript 的令人讨厌的问题。这些开发人员中的大多数都构建了通常不符合 W3C 的 MS 类型的站点,它们对跨浏览器不友好,并且从不优雅地降级。不,即使后台应用程序仅与 IE 兼容也是不可接受的。

.NET 还倾向于“增肥”简单的网站。.NET 在很多方面都是让 WinForm 开发人员开始构建网站(或者他们更喜欢的 Web 应用程序)的一种方式。问题在于,这带来了一群拥有奢侈品而不必担心状态、标准等的开发人员......

我仍然认为任何 .NET 站点都可以在经典 ASP 中构建并为最终用户更快地运行(页面响应时间)......

...但是虽然我对经典的 ASP 有着美好的回忆,但我可以用 .NET 在成像、加密、压缩、简单的 Web 服务集成、适当的 OO、不错的 n 层、可扩展性等方面做些什么......就是给 .NET 带来了优势。如果用户不接受 cookie(这在经典 ASP 中是个痛点),即使是简单地向 web.config 添加一行代码告诉它将 sessionID 写入查询字符串这样愚蠢的事情也很棒。

迁移到 .NET,您不会后悔,但一定要给自己一些时间(特别是如果您不了解 OO(继承、抽象、多态性和封装)。不要开始以经典兼容模式构建 .NET 站点,这只是一种廉价的 .NET 方式,而且您最终仍会使用经典的 ASP 实践。如果 VBScript 是您的主要开发语言,那么跳跃就不会像 MS 或其他人会让您相信的那样容易。

对我来说最重要的是,从我经典的 ASP 时代开始,我已经继承了基本的网站应用程序 (;-)) 设计,并且这永远不会在语言之间改变。

于 2009-02-01T00:44:43.063 回答
5

此线程中的回复很少回答这个问题。我不会采取简单的方法,而是尝试一下:

一些没有提到的好处(以 JScript 为中心):

  • 如果你用得够多,你可以学习整个语言并将其留在你的记忆中——我不认识任何声称了解整个 .NET 框架的人;这使得编码非常快速。
  • 弱打字——这可以让你在快速敲出一些东西时更快地编码,例如,你真的关心charstring大多数时间之间的区别吗?(在这里插入宗教火焰战争)
  • Eval:这个饱受诟病的关键字实际上非常强大,它可以让您在运行时以非常有趣的方式操作代码
  • 客户端/服务器语言兼容性:JScript 与 Javascript 的相似性意味着您可以将相同的包含文件用于服务器端验证,就像用于客户端一样。
于 2010-01-16T13:06:12.657 回答
3

如果你所做的只是简单的小网页,那就随便做吧。或者更好地学习 PHP。您将得到的大多数响应来自开发 Web 应用程序的人,而 asp.net 在功能和可维护性方面比经典的 asp 更胜一筹。

于 2008-09-05T04:05:20.213 回答
2

我同意这里的每个人,除了那些说跳过网络表单并直接进入 MVC 的人。这没有帮助。Webforms 对于执行大量表格显示等的数据库驱动应用程序非常有用。我曾在一些非常大的 Webforms 应用程序上工作过,它运行良好。MVC 适用于更具交互性的“Web 2.0”类型的应用程序。

于 2009-03-06T02:39:38.560 回答
2

我总是使用 Classic ASP,它运行良好。

我尝试了 ASP.net 几年,但它对于大多数网站开发来说太复杂了。我的客户也不喜欢它,因为他们无法理解。他们还喜欢知道他们没有被锁定在一个开发人员中。

ASP.NET 不断变化,需要巨大/恒定的学习曲线才能保持最新。MS 将主要语言切换到 C#,这使得转换变得更加困难。

使用 .net 时,我的工作效率慢了下来,因为我一直在寻找有关如何做所有事情的教程或示例。

Visual Studio 是猪sloooooow。

PHP 具有丑陋的语法和太多不同的框架,这使得开发人员无法学习。在我看来,仅适用于有专职员工的 Intranet。

经典的 ASP 已被锁定,并且现在可以像几年前一样完美运行。只需几个库文件,代码编写就很容易,并且互联网上的示例不限。

vbscript 写得正确,但大多数人不这样做,它是干净易读、高效的代码。我把客户端的东西留给像 jQuery 这样的库,发现我的工作效率要高很多倍。

于 2011-02-07T21:11:56.867 回答
1

完成了“将 asp 重命名为 aspx 并更改直到它编译”后,将应用程序的端口移植到 asp.net 我会说,即使是 .NET 中的 asp 经典风格编程也比 asp classic 更好。VS 当然会鼓励你掉进成功的坑里,把你推向 web 表单和代码隐藏的做事方式,但是语言的表现力足以复制 asp 经典的模式(即很多金块/内联代码,交叉发布页面等)

我想我之前听说过你可以用任何语言编写 COBOL。这对于经典的 asp 来说是正确的。

于 2008-11-28T19:49:39.357 回答
0

仔细研究 ASP.NET MVC 的 5 个理由

于 2009-04-07T12:18:40.593 回答
0

如果您此时使用经典的 asp(没有 CTO 的授权),那么您需要看到收缩。或者你是一个受虐狂。或者作为撒旦教徒,在这种情况下,你会喜欢它,因为你会在地狱里!:p

严肃地说……对于 Web 应用程序,请使用 WebForms。

对于轻量、快速和肮脏的网站,请使用 ASP.NET MVC。

ASP 的好处是您可以使用 VB.NET、C#、Eiffel、Boo 或 PHP 作为您的语言!对于 PHP,请查看 Phalanger...

于 2009-07-01T01:25:16.010 回答
0

因为我的报酬是创建解决方案而不是编写代码,所以我更喜欢 ASP.NET 而不是经典的 ASP。虽然经典的 ASP 对于非常小的、简单的站点仍然很实用,但在编写更复杂的站点时,ASP.NET 仍然具有强大的功能。此外,即使使用 ASP.NET,您仍然可以只使用记事本自己编写 .aspx 文件,包括嵌入的 vb 或 c# 代码。Visual Studio 只是提供了许多附加功能,无需自己编写更多代码。而且,正如我所说,我不会因为编写代码而获得报酬......

于 2010-08-30T13:13:26.757 回答