MVC3 应用架构——如何存储数据
Posted
技术标签:
【中文标题】MVC3 应用架构——如何存储数据【英文标题】:MVC3 app architecture - how to store data 【发布时间】:2011-07-15 10:03:17 【问题描述】:目标:
能够在 MVC3 中快速开发应用程序 在一个地方进行验证(即可能是模型)我已经有一个数据库了
问题:您目前选择的工具链是什么?
我已经跳出来了:
MvcScaffolding - http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/
但是,如果您使用模型优先策略,这需要 EF CTP5
无法弄清楚如何从模型中轻松获取验证(DataAnnotations),例如 [Required] 字段
EF 模型优先 - DataAnnotations 再次看起来很难。 Entity Framework - DataAnnotations
LightSpeed - http://www.mindscapehq.com/ 当前选择的 ORM。
【问题讨论】:
可能想看看 S#arp 架构,尤其是最新的 1.9 版本 - blog.sharparchitecture.net 它支持开箱即用的 NHibernate、Fluent NHibernate 和 NHibernate 验证,还包括用于生成控制器的 T4 模板和模型(可能还有视图 - 不记得了) “使用验证器”这听起来不像是系统的目标,而是实现目标的一种手段。系统的目标通常由某种业务需求驱动。 感谢@Brian 我已对文本进行了更改 将它们全部放在一个地方会很好,但这种情况很少发生,您倾向于在 UI 级别使用验证器(类型验证、范围验证等),除非您有非常简单的域模型,在您的实体上还会发生更复杂的验证(状态 X 的实体不支持值 Y 等)。不幸的是,没有灵丹妙药,它通常取决于您的验证有多少以及有多多样化。您通常希望的最好结果是不要多次重复相同的验证。祝你好运! 【参考方案1】:这是我的工具链:
带有 Razor 的 ASP.NET MVC 3 用于 UI 部分 NHibernate 与 FluentNHibernate 进行数据访问 FluentValidation.NET 验证规则 AutoMapper 用于业务模型和视图模型之间的映射 MVContrib我还使用这些框架构建了一个sample project structure。
【讨论】:
很棒的东西达林 - 谢谢。我最终选择了 LightSpeed (Mindscape) 和 MVC3 / Razor。我正在使用 LightSpeed 验证。 @Brian 在上面提出了一个很好的观点,即脚手架很少在大型项目中提供帮助。但是作为起点,它对我来说非常有用。以上是关于MVC3 应用架构——如何存储数据的主要内容,如果未能解决你的问题,请参考以下文章