asp.net – 什么时候不应该使用Web服务?

使用Web服务通常是一个很好的架构方法。并且,随着.Net中WCF的出现,它变得更好了。

但是,根据我的经验,一些人似乎认为Web服务应该总是在数据访问层中用于调用数据库。我不认为web服务是通用的解决方案。

我想用几十个用户的较小的内部网应用程序。 Web应用程序及其Web服务部署到一个Web服务器,而不是Web服务器场。今后不会有另一个网络应用程序可以使用这个特定的Web服务。在我看来,调用Web服务的成本不必要地增加了Web服务器的负担。对进程间调用性能影响。维护和调试Web应用程序和Web服务的代码更复杂。所以是部署。我只是看不到在这里使用Web服务的优势。

可以通过创建两个版本的Web应用程序,有和没有Web服务,并做压力测试,但我没有做到这一点。

你对使用网络服务的小规模网络应用程序有意见吗?任何其他场合,当Web服务不是一个好的建筑选择?

解决方法

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

如果你的应用程序要在一台机器上运行,为什么拒绝它进行数据访问调用?我不是说从你的UI代码直接访问数据库,我说的是抽象你的仓库,但仍包括他们的程序集在你的运行网站。

有些情况下,我推荐Web服务(我假设你的意思是SOAP),但主要是为了互操作性。

服务的粒度在这里也是问题。 SOA意义上的服务将封装操作或业务流程。数据访问方法只是该过程的一部分。

换一种说法:

- someService.SaveOrder(order);  // <-- bad
    // some other code for shipping,charging,emailing,etc

  - someService.FulfillOrder(order);  //<-- better
    //the service encapsulates the entire process

Web服务为Web服务的目的是不负责任的编程。

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...