C# 我应该阅读Web服务(SOAP)吗

C# 我应该阅读Web服务(SOAP)吗,c#,asp.net,vb.net,web-services,C#,Asp.net,Vb.net,Web Services,我正在考虑将web服务(SOAP)用于基于web的时间表应用程序。大约有250-300人使用这个网站 开发环境:VS2010(VB.NET、带有AJAX或telerik的ASP.NET)和ORACLE 办公环境:Web服务器位于英国,但用户将通过不同的国家访问此应用程序(大部分来自欧洲,但澳大利亚的用户很少) 在过去,我将web服务用于稍大的应用程序。我的计划是将web服务用于数据层。我将以XML格式传递Oracle存储过程值,然后在存储过程中提取它们。Web服务函数将调用存储过程,然后将数据集

我正在考虑将web服务(SOAP)用于基于web的时间表应用程序。大约有250-300人使用这个网站

开发环境:VS2010(VB.NET、带有AJAX或telerik的ASP.NET)和ORACLE

办公环境:Web服务器位于英国,但用户将通过不同的国家访问此应用程序(大部分来自欧洲,但澳大利亚的用户很少)

在过去,我将web服务用于稍大的应用程序。我的计划是将web服务用于数据层。我将以XML格式传递Oracle存储过程值,然后在存储过程中提取它们。Web服务函数将调用存储过程,然后将数据集对象返回到UI。

(所有与数据库相关的功能(数据提供程序等)将位于web服务中,如连接和返回数据集的功能。)

此应用程序中还将有大量报告,尤其是财务报告。

将来,我将使用此web服务开发一些其他(中小型)应用程序。

我想知道web服务是否会降低性能?


当然,使用webservice进行数据检索会降低应用程序的性能,因为您添加了另一层。数据必须(反)序列化,这需要处理时间

替代方案是什么?如果不使用web服务,则必须在ASP.Net站点将引用和使用的单独项目中编写数据访问代码,但它需要数据库服务器和web服务器之间的直接连接。如果这不是一个问题:使用最直接的方法。代码越少,可能出现的错误就越少


但是,如果您希望客户端通过这些Web服务(例如,通过AJAX)获取实时数据,或者如果您希望创建可以在任何地方运行并引用数据的应用程序,根据我的经验,在不需要服务层的情况下添加服务层会导致其他问题,例如在拥有大量数据的情况下,很难从延迟加载的ORM中获取所需的字段。我使用web服务已有三年了,在访问大数据时从未遇到过问题。我从经验丰富的开发人员那里学到了这一点。请您详细解释一下:“如果您希望客户机通过这些Web服务(例如通过AJAX)获取实时数据,或者如果您希望创建可以在任何地方运行并引用数据的应用程序,那么Web服务肯定是一种不错的选择。”您可以直接从客户端浏览器上运行的JavaScript调用web服务。因此,您的页面不必将数据发回服务器。与直接访问相比,使用服务的另一个好处是,您可以使用相同的数据访问层轻松编写自己网站的本机应用程序版本。您好,Rene,我同意我可以将相同的web服务用于我计划执行的其他应用程序。我只是在考虑性能,因为与直接连接到数据库相比,添加一层会降低性能。另一方面,web服务在需要更新DB模式的情况下是很好的。对于时间表应用程序来说,安全性并不是一个大问题。