【问题标题】:Why is .Net MVC architecture so overcomplicated vs Rails? [closed]为什么 .Net MVC 架构与 Rails 相比过于复杂? [关闭]
【发布时间】:2013-02-08 22:19:38
【问题描述】:

注意:这远不是关于 x 的帖子比 x 更好。很高兴不要去那里。

我是一个 .Net 人,而且一直都是,我从早期版本 2 Beta 和之后的每个版本都使用 MVC 框架。在过去的几个月里,我一直在搞乱 Rails,我有一个关于架构的问题,这两个平台之间似乎有很大的不同。 (基于社区和 SO 等网站上的问题)

在 .Net MVC 中,我们鼓励分离关注点,创建单独的项目来处理数据访问、业务逻辑和视图,我们还被告知我们应该在数据对象到达视图之前将它们转换为 ViewModel 等

在 Rails 中,事情似乎更简单,我们有一个包含验证、数据访问(通过活动记录)和其他逻辑属性的对象,我们只需将其发送到视图并显示它。

那么为什么在一个框架中这种方法是可以接受的,而在另一个框架中却被认为是错误的,我们最终都会编写更多代码并创建更多文件。

注意:我不是 Rails 专家,我真的不想比较哪个比 x 更好,我正在研究这 2 个框架的高级架构,并找出其中一个框架可以接受的地方,而另一个框架不能接受。

【问题讨论】:

  • 不,我已经明确表示我不是在问哪个更好。我的问题是为什么复杂的架构是 .Net MVC 的规范,而 rails 却支持完全相反的情况。
  • 这个问题在 10 分钟内被盯着 4 次的事实应该表明这对社区有价值。
  • 我是它的主演 :)。我没有回答这个问题,只是在开玩笑。我是一名全职的 ASP.NET MVC 开发人员,所以我给它加星标是因为我有兴趣看看答案是什么。
  • 哦,公平竞争 - 我以为你是投票结束的两个人之一。

标签: ruby-on-rails asp.net-mvc architecture


【解决方案1】:

这取决于您正在开发什么类型的应用程序以及您期望它增长多少。

对于琐碎的应用程序,无需使用不同的视图和域模型使事情复杂化(但您可能希望使用单独的视图模型和实体:http://blog.gauffin.org/2011/07/three-reasons-to-why-you-should-use-view-models/)。

对于 CRUD 应用程序,您不必将数据访问封装在存储库模式等抽象中。

但是,如果您希望编写除琐碎或 CRUD 应用程序之外的任何代码,我鼓励您这样做。模式和原则会在您想要开始维护应用程序的那一天帮助您。您会得到更小、定义更明确的类,并且业务逻辑是在一个地方而不是整个应用程序中创建的。

我写了一篇关于我为什么使用抽象的小博客文章:http://blog.gauffin.org/2013/01/data-layer-the-right-way/

以及为什么封装很重要:http://blog.gauffin.org/2012/06/protect-your-data/

【讨论】:

  • 这是在使用 .Net MVC 时反复影响我的原因 - 但更复杂的 Web 应用程序是用 Rails 编写的,它们不采用这种模式。
  • 哪种模式? CRUD 应用程序也可以相当大,但它们仍然不必有那么多业务逻辑。
  • 对不起,Pattern 是错误的词,但是 ViewModels,我看到的 Rails 应用程序的抽象“似乎不在乎”。
  • 好吧。您也不需要 ASP.NET MVC 中的视图模型。我使用它们来使模型适应视图(如将用户列表转换为 SelectList)并降低安全风险(如删除可能无法编辑的字段)。
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2014-08-12
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多