6

我来自 Ruby on Rails,我需要创建一个 C# Web 应用程序。目前我正在研究 ASP.NET MVC 和 MonoRail。我发现的大多数比较都是从 2008 年到 2009 年,当时 ASP.NET MVC 还很新,而 MVC 的大部分反对意见是它过于原始,不如 MonoRail 精致。

好吧,从那时起已经过去了几年,微软在 ASP.NET MVC 上做了很多工作。这两个框架的现代版本如何相互比较?

4

2 回答 2

3

大约四年前我评估了 MonoRail,与今天的 mvc3 相比,这些是主要区别(恕我直言)

  • Razor 模板引擎作为 MVC 默认值。使用起来很愉快,而 Monorail 默认使用 NVelocity。我查看了 Castleproject 的网站,并计划升级 Monorail...
  • MVC3 的更多文档,根据今天——也许是我的错——我在 Monorail 的网站上找不到任何在线文档。
  • Areas, Partials, Razor 在 VS2010 中高度集成。如果你不喜欢它,你可以插入并使用不同的模板引擎。
  • MVC3 具有更好的 Ajax/Jquery 集成,不显眼的表单验证
于 2012-08-06T10:03:38.753 回答
2

在过去的几年里,我一直在使用这两个框架。最初,当 mvc 出现时,我们坚持使用单轨,因为我们觉得它很原始。恕我直言,MVC3 现在比 Monorail 2 更成熟,具有更好的支持、更多文档和定期发布的更新版本。

  • Razor 比 nvelocity 更强大,并且具有 nvelocity 所缺乏的强大的 Visual Studio 支持。
  • 单轨视图未编译与已编译的 MVC3 视图相比。有时在开发时,只需更改视图并立即更改即可。另一方面,编译视图更快。
  • Monorail 已经有一段时间没有新版本了,而且似乎停滞不前。Monorail3 正在开发中。
  • MVC3 现在也支持帮助程序,既可以作为扩展方法,也可以直接在 Razor 视图中声明它们。Monorail 仅支持助手作为助手类的静态方法。
  • MVC3 有更好的路由支持。
  • MVC3 现在也支持过滤器的 IoC。
  • MVC3 支持将过滤器应用于方法级别,但单轨仅支持控制器级别的过滤器。
  • MVC3 不支持开箱即用的 Ioc,但您可以为此使用 IDependencyResolver。您可以为此找到许多解决方案。
  • MVC3 对 CSRF 攻击有很好的支持。在 Monorail 中,您需要结合使用助手和过滤器自行开发。
  • MVC3 支持预编译视图,因此您可以在发布站点之前最大限度地减少错误。但是你不能用 Monorail 中的 nvelocity 视图来做到这一点,因为它们是被解释的
  • MVC3 html 自动编码任何字符串。在 Monorail 中,您总是需要为此调用助手。

当 Monorail 3 出来时,看看他们支持什么会很有趣。查看https://docs.google.com/document/d/1AkeeJPh8kZQKtnHN3RDR3v-UfG7zt9wCL0jMiualUqI/edit?hl=en&authkey=CN7U99YN&pli=1,这是 Hammet 对 Monorail 3 的价值主张。

于 2012-08-20T21:11:32.223 回答