0

我有以下情况:我必须创建一个网站和一个 Web 服务,它将share a part of the functionalities.

这就是我不想写两次代码的原因。

我想到了以下架构:

MyApp.BusinessLogic --> 这里我们将 DataModels 保存到数据库中

MyApp.DataAccess -> 数据模型 & 实体 & 映射


MyApp.UI.Models -> ViewModels

MyApp.UI.ServiceLayer -> 访问业务逻辑,为网站创建 UI 视图模型,并在业务逻辑层的帮助下将视图模型转换回数据模型以保存

我的应用程序网站


MyApp.WS.Models ->WS 模型,这些将是客户端和 WS 之间传递的对象

MyApp.WS.ServiceLayer -> 访问业务逻辑,为 Web 服务创建 WS 模型,并在业务逻辑层的帮助下将 WS.Models 转换回 DataModel 以进行保存

MyApp.Web服务


架构是否矫枉过正?我会遇到什么问题?ASP.NET MVC 网站中的控制器会有问题吗?

4

2 回答 2

1

当我设计我的应用程序时,我会这样做。我唯一的问题是将模型复制到视图模型中。克服这个问题的最佳方法是使用 AutoMapper。

我会创建一些单元测试,因为在更改服务时破坏应用程序的风险很高(反之亦然)。单元测试会在早期告诉你。

于 2013-03-24T22:21:53.313 回答
0

基本上定义:)

如果你想减少代码使用,为什么不创建你的服务,然后在应用程序中使用它呢?

所以如果你有类似的东西......

Foo.DataAccess
-Foo.BusinessLogic
--Foo.ServiceLayer

然后将其引用:
Foo.WebService(包括用于查看/更新的模型......但可能在外部简化)

然后使用
Foo.WebApp
并让这个消费 Foo.Webservice 代表它进行数据调用

拥有 UI 和 Web 服务模型会增加您的代码重复,您可以使用 Fluent 验证之类的东西来让服务处理您的验证,并增强基本验证系统。

于 2013-03-24T22:22:43.390 回答