【问题标题】:Designing web service calls that read/write from database设计从数据库读取/写入的 Web 服务调用
【发布时间】:2010-11-28 16:27:12
【问题描述】:

为新手网络服务问题道歉 -

我正在尝试创建一个 Web 服务,其中包含对数据库执行读/写的方法列表。示例函数的形式为 -

CreateNewEmployee(string username, string employeeid, string deptname)

我在 .net (asmx) 中创建了一个具有上述 web 方法的 web 服务。在那,我打开到数据库的连接并插入到数据库中,然后关闭连接。这是设计 Web 服务调用的正确方法吗?

我应该传递一个对象而不是多个参数吗?

在尝试创建将数据写入数据库的 Web 服务时,是否有任何指向最佳实践的指南?

添加更多信息

  • 我们希望拥有 Web 服务,因为它可能被组织内的许多不同应用程序(Web 和桌面)重用。
    我们还计划创建一个用户可以使用这些 Web 服务创建数据混搭的环境。

谢谢, 内特

【问题讨论】:

  • 请注意,除非您别无选择,否则不应使用 ASMX Web 服务。它们已被 WCF 取代。

标签: database web-services asmx


【解决方案1】:

是的 - 传递对象与大型参数集。另外,如果您在 .Net 环境中,您是否考虑过 WCF?如果您了解 ADO.Net Data Services(前身为 Astoria)的工作原理,它将为您指明正确的方向。

【讨论】:

  • 谢谢鲍勃。将调查 WCF。
【解决方案2】:

引用this SO question的获奖答案:

Web 服务是数据访问的绝对可怕选择。 几乎为零的好处是大量的开销和复杂性。

你可以在那里阅读其余的讨论。

编辑:拥有可由多个应用程序(Web、桌面、服务)共享的通用数据访问功能的一种极好的方法是创建一个 Visual Studio 项目,该项目可编译为动态链接库。每个想要使用数据访问功能的解决方案都引用了 DLL,它可以部署到 GAC 或其他一些中心位置,或者只是添加到项目的 bin 文件夹中。或者,为了能够单步执行数据访问代码,可以将数据访问项目添加到解决方案中。

这在大型企业中是一种非常常见的做法,其中许多后台应用程序共享通用功能。它不仅用于数据访问,还用于其他服务,例如日志记录和身份验证/授权。一些部门创建了一组这些 DLL,他们将其称为“框架”。它确保每个应用程序都将具有相同的功能和相同的业务逻辑,并且可以在一个地方进行将影响所有应用程序的修订。这与使用 Web 服务有类似的好处,但它避免了 Web 服务的开销和性能损失。

【讨论】:

  • 编辑帖子以添加更多信息。我们也会有很多用户尝试重用这些服务。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多