Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么.NETMVC架构与Rails相比过于复杂?_Ruby On Rails_Asp.net Mvc_Architecture - Fatal编程技术网

Ruby on rails 为什么.NETMVC架构与Rails相比过于复杂?

Ruby on rails 为什么.NETMVC架构与Rails相比过于复杂?,ruby-on-rails,asp.net-mvc,architecture,Ruby On Rails,Asp.net Mvc,Architecture,注意:这远远不是一篇关于x比x好的帖子。很高兴你不去那里 我是一个.Net的家伙,一直以来都是,我从早期版本2 Beta开始就使用MVC框架,从那时起每一个版本都使用MVC框架。在过去的几个月里,我一直在摆弄Rails,我有一个关于架构的问题,这两个平台之间似乎有很大的不同。(基于社区和现场问题,如SO) 在.NETMVC中,我们被鼓励分离关注点,创建单独的项目来处理数据访问、业务逻辑和视图,我们还被告知应该在数据对象进入视图之前将其转换为ViewModels等 在Rails中,事情似乎更简单,

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

我是一个.Net的家伙,一直以来都是,我从早期版本2 Beta开始就使用MVC框架,从那时起每一个版本都使用MVC框架。在过去的几个月里,我一直在摆弄Rails,我有一个关于架构的问题,这两个平台之间似乎有很大的不同。(基于社区和现场问题,如SO)

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

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

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


注意:我不是Rails专家,我真的不想比较哪一个优于x,我正在研究这两个框架的高级架构,并找出其中一个框架可以接受哪些,但另一个框架不能接受

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

对于普通的应用程序,不需要使用不同的视图和域模型使事情复杂化(但您可能希望使用单独的视图模型和实体:)

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

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

我写了一篇关于我为什么使用抽象的小博客:


为什么封装很重要:

大猩猩vs鲨鱼?不,我已经说得很清楚了,我不是在问哪个更好。我的问题是为什么复杂的体系结构是.Net MVC的标准,而rails却支持完全相反的标准。这个问题在10分钟内被关注了4次,这一事实应该表明它对社区有价值。我是主演之一:)。我没有试着回答这个问题,只是开玩笑而已。我是一名ASP.NET MVC的全职开发人员,所以我主演了它,因为我想看看答案是什么。哦,公平竞争-我以为你是投票决定关闭的两位之一。这就是使用.NET MVC时反复影响我的原因-但更复杂的web应用程序是用Rails编写的,它们不采用这种模式。哪种模式?CRUD应用程序也可以相当大,但它们仍然不必有那么多的业务逻辑。抱歉,模式这个词是错误的,但是我所看到的ViewModels、rails应用程序的抽象“似乎并不在意”。嗯。您也不需要ASP.NET MVC中的视图模型。我使用它们使模型适应视图(如将用户列表转换为SelectList),并降低安全风险(如删除可能无法编辑的字段)。