注意:这远不是x上的帖子比x好。很高兴不要去那里。
我是一个.Net的人,并且一直都是,我从早期版本2 Betas以及之后的每个版本都使用过MVC框架。在过去的几个月里,我一直在搞乱Rails,我对架构的问题似乎在两个平台之间存在巨大差异。 (基于社区和SO等网站上的问题)
在.Net MVC中,我们鼓励分离关注点,创建单独的项目来处理数据访问,业务逻辑和视图,我们也被告知我们应该在它们访问视图等之前将我们的Data对象转换为ViewModel
在Rails中,事情似乎更简单,我们有一个包含Validation,DataAccess(通过活动记录)和其他逻辑属性的对象,我们只需将其发送到View并显示它。
那么为什么在一个框架中这种方法是可以接受的,而在另一个框架中它被认为是错误的,我们最终都会编写更多代码并创建更多文件。
注意:我不是Rails专家,我真的不想比较哪个比x好,我正在研究2个框架的高级架构,并找出它在一个而不是另一个框架中可接受的内容。
答案 0 :(得分:6)
这取决于您正在开发的应用程序类型以及您希望它增长的程度。
对于普通的应用程序,不需要使用不同的视图和域模型复杂化(但您可能希望使用单独的视图模型和实体: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/