asp.net-mvc - ASP.NET MVC 与 Ruby on Rails、CakePHP 等相比有何不足。等?

标签 asp.net-mvc model-view-controller cakephp spring-mvc struts

我一直在广泛地使用 ASP.NET MVC,我发现它非常有用(与 WebForms 相比),但是我对其他 MVC 框架有一些经验,我觉得在功能上存在明显的差距。

首先,在 Drupal 中,您可以连接到任何东西并覆盖它的 View 操作。例如您可以连接到 Drupal 函数,该函数写出标题并附加自定义内容。我在 ASP.NET MVC 中没有看到这种类型的功能。

与 Spring.NET、RoR、CakePHP 等框架相比,ASP.NET MVC 还有哪些不足?我担心 ASP.NET MVC 是 WebForms 2.0,并且最终会成为 WebForms 2.0。以同样的方式磨损它是受欢迎的,所以从长远来看,我最好转向另一个框架。

问候。

最佳答案

Where else does ASP.NET MVC fall short compared to the Spring.NET, RoR, CakePHP, etc. frameworks?

嗯,半开玩笑的回答,苹果比梨差在哪里? :-) 很难回答如此笼统的问题。我的主要评论是 ASP.NET MVC 非常不固执,也就是说,它不会冒犯任何人,而且它确实无法在任何地方使程序员的工作效率提高 10 倍。

可以说,在 RoR 的最佳环境下,Ruby on Rails 之类的东西确实可以将程序员的生产力提高 10 倍。一个例子是单个 Ajax 数据库支持的“联系我”表单,其中 RoR 的 Ajax Javascript 帮助程序确实可以节省大量时间(如果它们满足您的需求)。

ASP.NET MVC 不偏不倚的好处是,您可以在许多出色的技术之间进行挑选,并“混合搭配”您自己的 MVC 框架。有很多很棒的组件可供使用,其中许多都是开源的,您可以使用它们来根据自己的选择“调整”ASP.NET MVC。

ASP.NET MVC 的另一个伟大之处是整个工具链的强度——从 Visual Studio、ReSharper 等 Visual Studio 加载项,到 Windows 2008、IIS 7 和 Microsoft 的部署工具,再到诸如企业库,这里有大量针对 .NET Web 应用程序的优秀工具和帮助。

I'm worried that ASP.NET MVC is WebForms 2.0 and eventually it is going to wear out it's welcome in the same fashion so I would be best to move to another framework for the longterm.

绝对不是。看看这个网站上标记为 ASP.NET-MVC 的问题数量,计算一下博客文章——这是一个巨大的成功。此外,谁说 WebForms 已经死了?

事实上 - 我想强调的是,我没有确凿的证据证明这一点,这只是一种感觉 - 事实上可能有更多的程序员积极致力于 ASP.NET MVC现在的项目比其他语言的一些框架(例如 Python 上的 Django)的项目要多,这些项目被认为是成功的并且“将继续存在”。这只是我的猜测,但在我的开发 friend 圈中,ASP.NET MVC 对于如此年轻的项目有着惊人的巨大关注度。这部分来自于“骑在 .NET 的背后”,即因为 .NET 是如此主流并且拥有如此多的开发人员......

如果出现以下情况,请转移到另一个技术堆栈:

  • 您对其他编程语言拥有丰富的经验或偏好
  • 或者如果您在另一个平台上看到您的项目有巨大技术优势(它确实必须是巨大的,才能抵消平台经验的损失)。
  • 也许,如果您正在创办一家初创公司,那么 Microsoft 不可能收购您的初创公司,但 Google 会,那么也许会根据您预期的收购方偏好来选择您的平台。

否则,如果您喜欢使用 C#/ASP.NET MVC 进行编程,那就留在原地吧。 ASP.NET MVC 有着美好的 future 。

[事实上,我对 ASP.NET MVC 只有一个真正的提示——名称。它并不容易从舌头上滚下来。]

关于asp.net-mvc - ASP.NET MVC 与 Ruby on Rails、CakePHP 等相比有何不足。等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539000/

相关文章:

c# - 如何最好地在多个应用程序中重用 MVC3 Controller / View ?

c# - RegularExpressionAttribute 行为中的正则表达式

java - 对于@PreAuthorized unauth 请求,收到 Spring MVC AccessDeniedException 500 错误而不是自定义 401 错误

php - 在 CAKEPHP 3.X 的 webroot 路径中配置开发和生产环境

database - 如何在 Cakephp 的分页函数中使用 OR 条件?

CakePHP 全文搜索 MySQL 并评分

c# - 如何在azure中正确设置元数据

c# - 将参数传递给 Controller ​​ ..但不在 URL 上

iOS MVC 模型命名约定

jquery - ajaxcall 中的错误处理