【发布时间】:2011-10-05 18:22:02
【问题描述】:
是否有一种公认/预期的最佳实践方法将 ASP.NET MVC 的“模型”部分封装到可重用的程序集中?
作为技术练习,我想在不同系统中使用相同的业务/持久层。例如,将相同的程序集编译到 ASP.NET MVC 应用程序和传统的 Windows 服务中。
我的想法是在单独的程序集中实现我的模型(和 EntityFramework / DbContext / 等)。然后我的 MVC 项目将完全省略“模型”文件夹,而我的控制器将引用“模型程序集”中的代码。我一直更喜欢 ViewModels 而不是实际的业务对象作为 Views 的“目标”,所以我很高兴我的所有 Views 都被强类型化为 ViewModel 对象而不是 Model 对象。
- 这是一种常见的方法吗?
- 是否违反了 ASP.NET MVC 的“约定优于配置”的原则?
- 如果采用这种方法,我是否会失去特定的 MVC 优势?
- 这种方法还有其他严重的缺陷吗?
我是 ASP.NET、C# 和 Windows 服务的相当熟悉的老手,但对 ASP.NET MVC 却很陌生。如果这是一个重复的问题,我们深表歉意;大多数“可重用 MVC”问题都集中在 UI 组件上,而不是整个业务/持久性“层”。与往常一样,提前感谢您的见解!
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3