2008-10-30 47 views
4

任何人都可以告诉我什么需要/好处是使用Web服务与asp.net gui和使用Linq到SQL? Web服务层看起来没有必要。 Linq to SQL对我来说是全新的,我正在研究设立一个新项目。有人对这个有经验么?为什么在Linq to SQL中使用Web服务?

回答

6

你会暴露在其它哪些应用程序可能需要访问您的数据(如智能客户端,另一个应用程序,WinForms应用程序等)的情况下的服务。很多人将开发使用Web服务,以防止他们将来不得不重构为Web服务。

在几乎所有的专业/企业的Web应用程序要在UI层与数据访问层分开,所以你不会嵌入LINQ到SQL的UI层调用。相反,你可以在它们之间建立一个服务层,无论它的Web服务,WCF还是只有一个具有编排数据访问层的业务逻辑的DLL。独立的层次更容易维护,更新,重构和学习,所以创建它们的前期投资是值得的。

+0

感谢cfeduke!再次,我是新的,所以...我们的解决方案中有一个asp.net项目和一个web服务项目 - 您是否建议为linq创建第三个项目,或者将linq放在web服务中? – user30788 2008-10-30 20:46:06

3

这当然是没有必要的,但可以在你想从您的演示服务器(ASP.NET)让你的数据访问层单独的服务器上的情况下派上用场。 Web服务可以限制在两个服务器之间的通信只端口80

注意,这可能适用于普通的旧ADO.NET或其他任何东西了。

+0

Web服务可以部署到任何端口,不只是80 – DOK 2008-10-30 21:02:51

+0

我想他的意思是限制单个端口,如80,在之间的防火墙安全。 – cfeduke 2008-10-31 01:31:20

+0

@cfeduke - 宾果。 – swilliams 2008-10-31 03:48:51

0

同意以前的海报。你可能会想这样做应用理念“关注点分离” ......

2

Web服务成为一个隔离层,因为他们的目的是将数据发送到其他软件的平台无关的方式。他们是向其他软件提供信息而不直接向用户提供信息的网站。
webservice是一个网站的彻底分离层,不能完全取代良好的数据,业务逻辑和UI分离。
按照你的逻辑告诉你,但是要注意,如果你不需要与其他软件进行通信,那么请注意你付出的性能下降。

2

完全同意Ovidiu Pacurar。 Web服务不是建模关注层的理想选择。你应该用老式的OO设计来做到这一点。没有理由让Web应用程序自己调用Web服务进行数据访问,除非它们用于客户端Ajax调用,或者如果您需要在另一台服务器上运行业务/数据层以解决极度安全问题。