Mat*_*att 11 asp.net asp.net-mvc 3-tier repository-pattern linq-to-sql
我一直在阅读Pro ASP .NET MVC框架书,我对很多事情感到很困惑.我一直在努力做一些研究,但我发现有这么多不同的方法和概念被抛向我,这只是让事情变得更糟.
所以我有几个问题:
我知道MVC应该将功能分为三个主要部分:模型 - >控制器 - >视图.MVC是一种与三层架构不同的方法吗?或者我仍然应该考虑在我的项目中创建数据访问层和业务逻辑层?
什么是存储库?它是什么作为我的数据访问层?存储库在哪里/如何适合MVC?
本书讨论了如何使用LINQ to SQL与数据库进行交互,但它指出将来不支持LINQ to SQL,并且Microsoft正在为实体框架删除它.实体框架在哪里适合MVC以及如何与它进行交互?
在此先感谢您的帮助!
马特
MVC主要是表示层的模式,它侧重于视图和控制器之间的交互.该模型可以被视为应用程序的组件,负责维护状态,包括持久性.
在一个简单的应用程序中,该模型可能只是一个LINQ-To-SQL模型.在大型企业应用程序中,模型可能包含数据访问层,业务层和域层.ASP.NET MVC并不限制您应该如何实现M.
所述存储库模式是实现M的持久性部分的一种方式的ActiveRecord是另一回事.选择哪种模式取决于应用程序的复杂程度和您的偏好.
看一下NerdDinner教程的第3步,他们使用Linq to SQL创建一个简单的存储库.
Linq to SQL不会死.微软仍将改进核心并在有意义的地方添加客户请求,但实体框架将成为主要关注点.看一下这篇文章,了解.NET 4.0中LINQ to SQL的变化.
可以使用与LINQ to SQL类似的方式,但它也更灵活,因此可以以其他方式使用.例如,EF4将或多或少地支持您在更多域驱动设计中的POCO对象的持久性.
是的,我认为MVC是一种不同于我认为你在这里意味着的"3层"架构(你主要创建3个项目DAL,BL和UI的架构).MVC背后的主要思想是分离每个组件(模型,视图和控制器)之间的关注点.控制器是负责处理用户请求的组件,并且在大多数情况下,它与"模型"组件一起组成,以便将所需视图显示为对用户请求的响应.这与传统的3层架构之间的区别在于,DAL和BL现在已经分组并命名为Model,是的,您仍然需要创建这些组件.
什么是存储库?
Martin Fowler提到存储库的定义为"使用类似集合的接口访问域对象在域和数据映射层之间进行调解"存储库是数据访问层的一部分,它们不会自己访问数据,它们之间进行调解域和数据映射实体,当然它们应该放在Model文件夹/项目中.
Linq to SQL会被弃用吗?
不,也是同一本书所说的,Damien Guard(ADO.NET团队的开发人员)在他的一篇博客文章中提到Linq to SQL将包含在.NET 4.0中.
如何与EF互动?
就像你使用Linq to SQL一样.与Linq to SQL一样,Entity Framework将成为您的映射实体,并且也将驻留在Model项目中.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |