哪个表现最好:经典ASP,ASP.NET WebForms还是ASP.NET MVC?

时间:2011-05-19 10:24:42

标签: asp.net asp.net-mvc performance asp-classic

我最近将一个经典的asp应用程序转换为ASP.NET 3.5,但我觉得我的经典ASP版本更快一点(我不知道可能是买家懊悔)。

所以你们可以帮助我,让我知道哪一个更快,asp,asp.net或ASP.NET MVC。

我搜索了这个问题并且没有找到任何内容,如果您发现任何问题,请指出该问题并将我的问题标记为重复

谢谢你们。

7 个答案:

答案 0 :(得分:10)

Classic ASP将在每个页面请求中解释页面的脚本。 ASP.NET将为该页面编译一次代码。 ASP.NET几乎总是比经典ASP表现更好。 ASP.NET MVC只是编写ASP.NET应用程序的一种(更好的?)方式。

另外,在我看来,ASP.NET的功能远远优于传统的ASP。如果选择ASP.NET,则应该能够在创建更复杂的网站上花费更少的开发人员资源。

答案 1 :(得分:5)

由于ASP使用解释代码而ASP.NET使用已编译的代码,因此ASP.NET可以更快地执行代码。

但是,这并不意味着ASP.NET应用程序总是比ASP应用程序更快。很多性能取决于数据库效率以及您在服务器和浏览器之间发送的数据量。

使用ASP.NET webforms时,很容易在服务器和浏览器之间来回发送的视图状态中获得大量开销,这可能是您在应用程序中看不到很多改进的原因。

ASP.NET MVC没有使用viewstate的相同形式的控件,因此您不会轻易累积开销。

答案 2 :(得分:4)

说“x比y更快”总是有点罪,但我认为这是一个我可以说经典ASP比ASP.net慢的实例,不包括你可能找到的一些边缘情况,解释经典ASP并编译ASP.net的主要原因之一。

答案 3 :(得分:3)

在性能方面,经典ASP 肯定更慢,原因很简单, ASP.Net 是编译的,经典ASP 是intepreted。

ASP.Net MVC ASP.Net WebForms 都建立在IHttpHandler之上(MVC / WebForms中使用的Page对象的基础)< / p>

使用 ASP.Net WebForms ASP.Net MVC ,您可以使用HttpHandler更快地提供服务(.ashx)。 Further reading

ASP.Net WebForms 在客户端通常更重(更慢),因为一些膨胀的客户端框架(沉重的JS库)和诸如ViewState之类的约定。 / p>

Further Reading

答案 4 :(得分:1)

如果不编写很多代码,ASP.NET中的一些东西就不那么简单了。我相信如果你的ASP代码更快,你做的很简单,那么你最好坚持下去。如果我能比ASP.NET更快地完成它,我仍然会构建经典的ASP。

我觉得.NET适用于复杂的网站或项目,只有最好的才能满足......但我可能错了。在ASP中,你可以做很多客户想要的混蛋。

答案 5 :(得分:0)

Classic ASP是一种解释性脚本语言。 ASP.NET编译为机器代码,因此它很可能会快得多(在经典ASP中可能存在一些边缘情况和wierdo优化)。

ASP.NET MVC只是ASP.NET Runtime之上的一个薄层。

答案 6 :(得分:0)

人们会自动认为编译的应用程序总是比解释的应用程序运行得更快。尽管通常是这样(C#代码几乎总是比VBScript快几倍地运行),但您必须查看存在的其他依赖项以及运行应用程序的环境。

实际上,大多数情况下,在简单的Web应用程序中,您请求的是网页,从数据库中获取与之相关的数据,然后将其返回给浏览器,这可以忽略不计。从数据库请求和返回数据可能至少消耗了页面处理的60%,另外30%是创建响应的Web服务器。

例如,设计不当的SQL查询将使您的应用速度比使用的所选语言快得多。记住,这全都与算法有关!

试图在这里保持客观,但是我注意到在使用带有C#和ASP的ASP.NET MVC将相同的数据返回到相同的网页时,差异仅可忽略不计。我认为使用Spring MVC或PHP,甚至使用Visual Basic的ASP.NET MVC都会看到相同的结果。

也就是说,我希望每次都使用ASP.NET MVC,因为它使我可以选择使用异步控制器和异步操作。我还喜欢设计具有有意义对象的应用程序。除非您用ActiveX用C ++编写后端,否则OOP不可能使用ASP,这对于现代应用程序来说是一个丑陋的解决方案。 ASP不能很好地适应SOC(关注分离),因此大多数ASP应用程序都类似于带有数周脏盘子的厨房水槽。

相关问题