存储过程中的逻辑,强类型数据访问或Web服务级别

时间:2014-07-10 10:56:14

标签: c# asp.net database web-services architecture

我正在开发我的第一个企业级应用程序,但与一些关键因素混淆,

现在我获取数据的应用流程是,

  • 存储过程 - 执行内部联接,只是获取表中的数据并传递给强TDS
  • 强类型数据集 - 将数据传递给称为它的Web服务
  • Web服务 - 在此处对数据进行更改以将其返回到应用程序层

这是对的吗?或者我们应该尽可能多地尝试将正确的格式数据放入数据库中,因此Web服务无需将其更改为某种格式。例如Date列到指定格式,或者我们将用户SID存储在db中,然后存储在Web服务中,调用active Directory来获取用户的显示名称等等。

请指导我在哪里可以阅读有关此类架构示例的内容,以了解最佳做法。

1 个答案:

答案 0 :(得分:0)

首先,我不是直接在Web服务层进行更改,而是在名为business layer的另一层中进行更改。 Web服务层只是外部世界的代理。我会这样做,因为如果你希望以任何其他方式公开你的逻辑,例如REST API,你只需要将这个额外的层放在业务层的顶层。

所以你会有这样的事情:

  1. 存储过程层
  2. 强类型数据集层
  3. 业务层 - 将数据整理出来的所有逻辑
  4. Web服务层。或者另一个,例如REST API层。
  5. 在另一个主题中,我将使用NHibernate,Entity Framework或IBatis.NET来处理您的持久层,而不是使用数据集。