2008-10-30 48 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調用,或者如果您需要在另一臺服務器上運行業務/數據層以解決極度安全問題。

相關問題