将依赖于Web引用的业务逻辑从表示层中分离出来

时间:2011-06-13 18:40:25

标签: c# asp.net web-services business-logic-layer

我有一个带有表示层和业务层的Web应用程序作为单独的项目。一个是Web应用程序,另一个是类库。我已经添加了Web应用程序的Web引用以使用Web服务。我在使用服务API时没有遇到任何问题,但我发现自己在表示层中添加了很多业务层类型逻辑来使用这个API。如果我可以改变我的一些业务层代码来使用Web服务,我会喜欢它,但是这样的声音配置就像一个大循环而不是没有。无论如何,我希望我的对象能够继续做他们正在做的事情,但是它也可以使用Web服务,但我发现自己必须在我的表示层创建一个帮助器/管理器类来处理Web -服务。这导致我需要在我对要添加到服务的对象上执行操作的任何地方进行代码更改。攻击这个问题的正确方法是什么?

我甚至不确定在漫无边际的任何地方都存在合法的问题,但如果有人能提供任何有用的话,我将非常感激。

谢谢!

3 个答案:

答案 0 :(得分:1)

我接触到这种方式的方法是为此创造一些东西:

  • 数据访问层
  • 业务逻辑层
  • 服务层(没有任何业务逻辑,只是一个接口)


  • 服务访问层(没有任何业务逻辑或表示逻辑)

  • 表示层(MVC,演示逻辑等)

现在可以更改您的服务层缺乏业务逻辑,而不会影响您的业务逻辑。客户端的服务访问层也可以保护您免受服务接口的更改。

答案 1 :(得分:0)

如果你的服务层只公开类似服务的方法(比如简单的CRUD方法,如SaveInvoice(InvoiceDTO)),那么在大多数情况下你应该没问题。 但是,我们可以使用您身边的一些代码。

有很多方法可以构建服务层,有状态,无状态等等,所以尝试解释你在演示中得到的重复

答案 2 :(得分:0)

也许你应该让你的服务封装业务逻辑?这样,您的表示层将只访问该服务 - 该服务将访问业务逻辑层。