我遇到以下情况:我必须创建一个网站和一个 share a part of the functionalities
的网络服务。
这就是为什么我不想两次编写代码。
我想到了以下架构:
MyApp.BusinessLogic - >这里我们将DataModels保存到数据库
MyApp.DataAccess - > DataModels&实体&映射
MyApp.UI.Models - >的ViewModels
MyApp.UI.ServiceLayer - >接受业务逻辑,为网站创建UI ViewModel,并将ViewModel转换回DataModel,以便在BusinessLogic Layer的帮助下进行保存
MyApp.WebSite
MyApp.WS.Models - > Ws Models,这些将是客户端和WS之间传递的对象
MyApp.WS.ServiceLayer - >访问业务逻辑,为Web服务创建WS模型,并将WS.Models转换回DataModel,以便在BusinessLogic Layer的帮助下进行保存
MyApp.WebService
架构是否过度杀伤?我会遇到什么问题?我是否会在ASP.NET MVC网站中遇到控制器问题?
答案 0 :(得分:1)
当我设计我的应用程序时,我就是这样做的。我唯一的问题是模型的枯燥复制到视图模型。克服此问题的最佳方法是使用AutoMapper。
我会创建一些单元测试,因为在更改服务时存在破坏应用程序的高风险(反之亦然)。单元测试会在早期告诉你。
答案 1 :(得分:0)
基本定义:)
如果您想减少代码使用量,为什么不创建您的服务,那么只需在应用程序中使用它?
所以,如果你有类似的东西......
Foo.DataAccess
-Foo.BusinessLogic
--Foo.ServiceLayer
然后引用的是:
Foo.WebService(包括用于查看/更新的模型......但可能在外部进行简化)
然后使用
Foo.WebApp
让这个消耗Foo.Webservice代表它进行数据调用
使用UI和Web服务模型可以增加代码重复,您可以使用Fluent验证等服务来处理验证,并增强基本验证系统。