设计从数据库读/写的Web服务调用

时间:2010-11-28 16:27:13

标签: database web-services asmx

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

我正在尝试创建一个Web服务,其中包含一组执行数据库读/写的方法。一个示例函数将是form -

CreateNewEmployee(string username, string employeeid, string deptname)

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

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

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

添加更多信息

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

谢谢, 内特

2 个答案:

答案 0 :(得分:0)

是 - 传递对象与大型参数集。另外,如果您在.Net环境中,您是否考虑过WCF?如果你看看ADO.Net数据服务(以前的Astoria)是如何工作的,它会让你朝着正确的方向前进。

答案 1 :(得分:0)

从获胜的答案中引用this SO question

  

Web服务是数据访问的绝佳选择。   这几乎是零利益的开销和复杂性。

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

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

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