问题描述
|
我有一个Web应用程序,其中有一个表示层和一个业务层作为单个项目。一个是Web应用程序,另一个是类库。我已将Web参考添加到Web应用程序以使用Web服务。我在使用服务API时没有遇到任何麻烦,但是我发现自己在表示层中添加了许多业务层类型逻辑以利用此API。如果我可以更改一些业务层代码以与Web服务一起使用,我会喜欢的,但是这样的配置听起来像是一个大循环。无论如何,我希望我的对象能够继续做他们正在做的事,但也可以与Web服务一起工作,但是我发现自己必须在我的表示层中创建一个helper / manager类来与网络服务。这导致我在要对要添加到服务中的对象执行操作的所有地方都要求代码更改。解决此问题的正确方法是什么?
我什至不能确定所有杂乱无章的地方都有一个合法的问题,但是如果有人可以提供任何有用的话,我将不胜感激。
谢谢!!
解决方法
我解决这个问题的方法是创建一些效果:
资料存取层
业务逻辑层
服务层(没有任何业务逻辑,只有一个接口)
服务访问层(没有任何业务逻辑或表示逻辑)
表示层(MVC,表示逻辑等)
现在可以更改没有业务逻辑的服务层,而不会影响您的业务逻辑。客户端上的服务访问层也使您免受服务接口更改的影响。
, 如果您的服务层仅公开类似于服务的方法(例如,简单的CRUD方法如SaveInvoice(InvoiceDTO)),那么在大多数情况下,您应该可以。
但是,我们可以从您的角度使用一些代码。
建立服务层的方式确实很多,有状态,无状态等,因此请尝试解释在演示中得到的重复
, 也许您还应该让服务也封装业务逻辑?这样,您的表示层将只访问服务-服务将访问业务逻辑层。