在阅读Steven Sanderson的书籍Pro ASP.NET MVC后,我确信使用ASP.NET MVC而不是webforms。
由于ASP.NET MVC明显受到Ruby on Rails的启发以及“约定优于配置”的好处,因此我觉得MVC中的M完全缺失了!
在我看来,使用Rails的简易性同样来自于使用模型的惯例。 特别是在验证时,因为这显然属于模型而不是表示层!
在Rails中编写它很容易:validates_presence_of:author 甚至更好的validates_uniqueness_of:title
那么为什么ASP.NET(M)VC中没有M?
答案 0 :(得分:5)
您的问题是否真的,“为什么ASP.NET MVC中没有ActiveRecord?”
MVC软件包没有专门整合任何ORM技术,因为微软在这些领域的努力已经更广泛地针对WebForms开发人员和桌面.NET软件。但LINQ to SQL和实体框架显然有助于填补“模型”利基。
至于在Web应用程序中显示和处理该模型的一些便利,ASP.NET MVC 2中有新的验证支持,动态数据和MVC自己的HTML帮助程序可以帮助显示内容。
答案 1 :(得分:1)
你是对的,ASP.NET MVC的重点在于View和Controller的实现 - 这是因为那些是在ASP.NET中没有得到很好支持的元素 - 特别是View。另一方面,模型我们几乎从一开始就拥有丰富的资源,因此实际上并不是一个需要解决的问题。
你也是对的,会议在使框架可用方面走了很长的路,但是它也会给开发人员带来限制,有时这对其他人来说也不那么好。
在诸如验证之类的事情方面,可能还有一些基于约定的其他东西 - MS正在使用注释在这个方向上采取措施,在我看来似乎有很多似乎使用元数据/注释路线来提供通过更通用的方式从强大的惯例中获得的好处。
答案 2 :(得分:0)
MVC中的模型基本上留给了实现者,因为有很多方法可以做模型。 MVC专注于VC部分,以及如何做得好,但肯定会期望你将使用M。
答案 3 :(得分:0)
我将ASP.NET MVC描述为一个帮助您实现MVC模式的工具集,它不是模式本身的完整实现。