我还没MVC应用程序,以“M”,包括服务和信息库层。
然而,我在何处以及如何做一些事情有点困惑。
- 一个服务调用两个库,或调用它自己的存储库和其他服务
如
我有一个ReferenceDataService,它处理的逻辑的所有CRUD与我的参考表。
然后在我“的CustomerService”我需要“R”我的参考数据,获取如说明,而不是编号。 所以,我称了ReferenceDataService或ReferenceDataRepository?
- 在一些层,我想从映射到实体视图模型。
难道我这样做是我的业务层,还是在控制器?
例如,难道我的ServiceLayer做从VM映射/逻辑实体和回?
谢谢:)
- 库交谈的基础数据源。
- 服务层会谈储存库域模型。 它需要/从/到存储库层传递域模型。
- 控制器会谈到服务层。 控制器采取/从/向服务层传递域模型。
- 控制器调用映射层(如果有的话)到域模型和视图模型之间进行映射。 如果你没有一个映射层你可以做的映射在你的控制器虽然这可能很快成为累赘在这种情况下AutoMapper可以作为一个非常方便的映射层。
另一个更简单的情况是,当你不需要的服务层,它通常是在较小的应用程序的情况下。 服务层带来任何好处。 所以控制器直接会谈与域模型库。
视图模型包含的数据,用于在视图中显示模型所需。 如果你使用其他视图(如移动应用或桌面应用程序,甚至Web服务),您将需要显示在另外一个数据。 如果你做业务层映射,那么你将无法与其他类型的应用程序使用它。 因此控制器是你映射域数据,以显示它们视图(你有任何类型的视图)的地方。