MVC vs ASP Classic

时间:2010-07-30 07:21:05

标签: asp.net-mvc asp-classic

我被赋予了设计基于网络的新交易系统架构的任务。

我看到Scott Gu对于推出MVC版本的任务非常热门,但是我看到它们越多,我对Classic ASP的看法就越少。

由于经典ASP程序员的可用性,我正在考虑使用它而不是向程序员支付高价,然后需要提升。业务用户只需要html输出,他们都这样做(Classic ASP没有Script Manager有效负载,JQuery与classic集成。)

其他人是否面临这一决定,以及对利弊的任何想法? 感谢

9 个答案:

答案 0 :(得分:8)

老实说,如果你把Classic ASP和MVC视为类似的野兽,我会说更多关于ASP.NET MVC的知识。我想两个人都有<% %> ......我不会错过VB6,MTS和regsvr32。

如果业务仅涉及html输出,许多其他平台也满足此要求。为什么不用PHP,cgi,Rails或Django?

与现代技术相比,Classic ASP要求痛苦。

答案 1 :(得分:2)

Classic不会在业务逻辑和表示标记之间提供相同级别的分离,从而导致更加丑陋且维护不便的站点。 如果你正在创建一个非常简单的站点,那么经典可能是合理的,因为不必包括MVC的开销(无论如何都相当小),但是小站点习惯于变异到更大的站点。 任何一半体面的开发者都会在很短的时间内掌握MVC,坦率地说,他们应该跟上新的趋势。

答案 2 :(得分:2)

假设你的意思是10年前的“经典ASP”......

我关注的是您对资源可用性的评论。我想你会发现,离开学校的新开发者实际上并不了解经典ASP,他们也会了解ASP.NET WebForms甚至是MVC。学校专注于dotNet,所以ASP.NET和MVC。

我认为你会发现ASP.NET仍然拥有最多的开发人员。 MVC开始迎头赶上,但仍然没有完全赶上,我不确定它是否是学校的主流。

当然还有设计决策背后使用哪种技术,例如可维护性。尽管如此,所有这些讨论的技术都有很长一段时间用于生产质量系统的历史。所以他们都是有效的选择。

答案 3 :(得分:1)

MVC与ASP Classic需要考虑的一些事项:

Visual Studio - 这是让经典ASP落后的最重要原因之一。我给那些我讨厌的人提供经典的asp维护项目:) Intellisense真正加快了编码速度。

.NET - CLR编译的代码运行得更快。

社区支持 - 此网站标记的classic-asp个问题很少。大多数人都继续前进,如果遇到问题,他们可能很难解决。

关注点分离 - 可以将经典的asp业务逻辑分开。但它会很难看。单元测试也会很痛苦。 .NET有许多模式可以帮助您使用现代编程技术。

然而......如果:

  • 您担心可供开发人员使用的MVC开发成本
  • 你已经排除了asp.net webforms,因为你没有控制html

然后我可能会在经典asp之前开始考虑其他选择。如果你想留下MS,可以使用Ruby,Php,Java,Django或Silverlight。

答案 4 :(得分:1)

给每个人+1,因为没有把这个线程(还有!!)变成一个懒散的比赛:-)。如前所述,如果不检查实际概念,主要的相似之处就是<% %>标签。你应该真的在你的机器上进行设置并运行一些基本的说明性样本,以满足自己的相似性或其他一旦你开始。

如上所述,我来自vb6 / com背景和我的'经典'asp网站(当时主要是内网 - 8-10年前)我使用了com类和数据层。当asp.net(v1.0)到达时,我对这些好处持怀疑态度,并且在我开始投入之前大约一年左右。一旦我的脚在webfroms世界中湿透了,我很高兴能够将我对类和BLL / DAL层的概念性理解“移植”到c#的框架上。我的关键时刻是marco bellasco的asp.net 2.0书籍“啤酒屋”的出版。这使我在项目中瞄准的一切都很糟糕(很糟糕)。快到5年,同样的顿悟时刻与史蒂文桑德森的书以及强制性的'书呆子晚餐'系列一起到了。我是一个完全转换为mvc(并在使用joomla的php时尚后使用它)。在这里,我能够利用我学到的所有好东西重新BLL / DAL(仅在这种情况下,DAL现在是一个存储库层,而BLL是模型)。

简而言之,这是一个非常个人化的决定。我可以说的是,在生产环境中参与了上述所有技术,对我来说,MVC确实是最具生产力和概念性的,最容易掌握的(可能部分归因于我的“路径”)。

你自己的里程(或千万美元:)当然可能会有所不同 - 但简而言之,请阅读利弊,但最终贬低并肮脏,一旦你发现了'美女',就与社区分享你的愧疚mvc'ing ...

祝你好运

jim

答案 5 :(得分:0)

我为你感到兴奋Asp .Net 4是一个更好的选择。除非项目相当大并且是面向公众的站点,否则我认为不需要Asp .Net MVC。与Asp .Net 4相比,构建Asp .Net MVC团队是一项艰巨的任务。

答案 6 :(得分:0)

看看工具支持 - ASP.net MVC已经完全符合VS 2010,但ASP经典支持不如恒星。您还应该花时间编写代码 - 如果您的程序员速度快,并且您需要一些简单的数据输入页面,您可以在不到一天的时间内将实体框架DAL和一些简单的脚手架页面放在一起...

现在,我知道很少有这么简单的系统,但我认为从这个起点开始工作非常容易,包括简单地将AJAX回调包含到控制器动作,返回JSON等。

(我还没有遇到一个没有转向意大利面条的大型“经典”ASP网站。)

答案 7 :(得分:0)

我会选择.net mvc(通过webforms和经典asp),特别是因为你声明要建立一个交易系统。这表明您的站点不仅仅是简单的内容(读取需要数据库)。这有一些含义:

  • 安全性将变得非常重要。 .net通常具有更多内置安全功能。如果您需要处理身份验证和授权,那么.net就有很多优点。它允许您使用任意数量的ORM,这些ORM提供了许多安全性好处,更不用说使与数据库的接口更加简单。经典的asp为您提供的帮助非常少,因此特别是在较大的站点中增加了风险。虽然它仍然是开发人员的工作,以确保他们构建安全的应用程序。
  • .net MVC使创建更模块化的设计变得更加容易。有许多好处,但我认为关键的一点是MVC很容易进行单元测试。
  • 还有一个事实是.net只是一个更新的平台。它有更好的IDE支持,调试工具,分析工具,测试工具等。

有趣的是,你说你可以找到经典的asp程序员。我认识和工作的大多数人都试着像瘟疫那样避免它,但我在澳大利亚:)。

虽然你可以使用这些技术中的任何一种并且仍能获得成功的结果,但关键是要获得优秀的开发人员,即使他们没有.net mvc的大量经验。

答案 8 :(得分:0)

Asp.Net MVC和Web表单之间的区别Asp.Net Web表单Asp.Net MVC Asp.Net Web表单遵循传统的事件驱动开发模型。 Asp.Net MVC是一个轻量级的,遵循基于MVC(模型,视图,控制器)模式的开发模型。 Asp.Net Web Form具有服务器控件。 Asp.Net MVC有html助手。 Asp.Net Web Form具有状态管理(如视图状态,会话)技术。 Asp.Net MVC没有自动状态管理技术。 Asp.Net Web Form具有基于文件的URL意味着URL中存在的文件名必须具有其物理存在性。 Asp.Net MVC具有基于路由的URL意味着URL分为控制器和操作,而且它基于控制器而不是物理文件。 Asp.Net Web窗体遵循Web窗体语法Asp.Net MVC遵循可定制的语法(默认为Razor)在Asp.Net Web窗体中,Web窗体(ASPX)即视图紧密耦合到代码隐藏(ASPX.CS)即逻辑。在Asp.Net MVC中,视图和逻辑是分开保存的。 Asp.Net Web Form具有Master Pages,可提供一致的外观和感觉。 Asp.Net MVC具有一致的外观和感觉。 Asp.Net Web Form具有用于控制代码重用性的用户控件。 Asp.Net MVC具有代码重用性的部分视图。 Asp.Net Web Form具有内置的数据控件,可通过强大的数据访问实现快速开发。 Asp.Net MVC是轻量级的,提供对标记的完全控制,并支持许多功能,允许快速和敏捷开发。因此,最好使用最新的Web标准开发交互式Web应用程序。 Asp.Net Web表单不是开源的。 Asp.Net Web MVC是一个开源软件。