簡體   English   中英

WCF,Web服務或ADO.NET數據服務:我應該使用什么?

[英]WCF, Web services or ADO.NET data services: What shall I use?

對於一個項目,我必須在Web服務器上托管的數據庫和互聯網上的幾個客戶端之間實現通信。 在閱讀了一些內容並觀看了一些關於可能(微軟)技術的介紹性視頻后,我發現我似乎有(至少)三種選擇:

1)Windows Communication Foundation(WCF)
2)ASP.NET Web服務
3)ADO.NET數據服務

因為我不熟悉這三種技術中的任何一種,我必須深入學習(希望只有)其中一種技術 - 問題是:哪一種?

或者更確切地說:哪一個用於以下任務?

需要將數據從客戶端上載到服務器/數據庫,並且還需要下載一些其他數據。 在客戶端,這不會由在瀏覽器中工作的用戶以交互方式發生,而是作為客戶端上的自動進程定期運行(例如每2小時)。

a)在Web服務器端,將有:

  • SQL Server數據庫
  • .NET Framework 3.5 SP1
  • 表示數據庫結構並使用ADO.NET Entity Framework建模的類庫
  • (一個ASP.NET Web應用程序,它將在瀏覽器中顯示數據庫中的數據:我把它放在括號中,因為這個Web應用程序並不重要,因為上面提到的數據上傳/下載不會通過瀏覽器GUI觸發。)

b)客戶方不太清楚,必須更靈活。 在這里,我必須區分兩個要求:

i)優先級一(根據我可用於開發的時間):

  • 客戶端在我的控制之下,這意味着:我在客戶端上有任何Windows操作系統,我可以安裝.NET Framework,我可以決定開發Windows服務,控制台應用程序,Windows窗體應用程序等等。 我對上面提到的類庫有所了解和訪問。

ii)優先級較低,但必須是未來選項:

  • 我需要公開任何類型的接口描述,允許其他開發人員構建自己的應用程序來上傳/下載數據。
  • 其他人將開發的客戶端可以使用任何類型的操作系統(Windows,UNIX,MacOS等)進行操作。 他們也應盡可能自由地選擇自己喜歡的編程語言。

由於最后一點迫使開發人員在客戶端使用.NET Framework不是一種選擇。 客戶端的通信必須是可從各種平台和語言訪問的任何“標准”技術。 在我的小研究中,我正在閱讀“SOAP”,“REST”或“AtomPub”等術語,這些似乎是一種標准協議或通信技術(不是微軟的專有發明)。 但我不確定也不知道哪種技術是“最新的”,具有“最佳未來”,是最常見和眾所周知的,是最強大的還是最容易使用的(從其他可能的角度來看)開發人員!問題是我必須支持哪些讓大多數客戶端開發人員滿意。

最后一點:安全很重要! 上傳/下載數據必須限於專職人員。 沒有適當的憑證,就不可能使用或探索界面。

什么技術現在最好用? (1),(2)或(3)? 你為什么推薦它?

非常感謝您的任何建議!

好吧,不。 (2)舊式ASP.NET Web服務即將問世 - 它已經過時,不再開發 - 它已被WCF取代。

所以這留下了選項1(直接WCF)和3(ADO.NET數據服務 - 最近重命名為WCF數據服務)。

兩者都使用WCF作為他們的基本技術 - 因此在這兩種情況下都必須學習和了解WCF。

使用直接WCF(選項1),您可以選擇更多選項 - 您可以自行托管,在IIS中托管服務,使用不同的協議和綁定等等。 但隨着選擇變得復雜 - 你需要學習和了解所有這些 - 至少在某種程度上。 您的客戶需要能夠與您交談 - 幾乎任何語言(當然,.NET,Java,Ruby,PHP - 您的名字)都可以用這種或那種方式談論SOAP。

如果您最感興趣的是將數據從數據庫公開到外部客戶端,我認為WCF數據服務確實是一個不錯的選擇。 它基於REST,因此您可以使用瀏覽器訪問WCF數據服務,看看會發生什么。 它非常強大,甚至提供LINQ客戶端支持 - 您可以制定LINQ查詢,並將其轉換為對數據服務的相應REST調用。

使用WCF數據服務,您的客戶端只需要一個HTTP堆棧 - 甚至iPhone也有:-)但是使用.NET客戶端,事情當然更好,更舒適,更高效。

我首先要檢查WCF數據服務 ,看看它是否滿足您的需求 - 如果沒有,請深入研究WCF。 同時查看WCF數據服務一目了然

更新:

Marc,我是否理解您服務器上的WCF是否滿足此要求? 和ADO.NET(WCF)數據服務呢?

絕對。 WCF(平原或與Data Services)在服務器端沒有規定以任何方式,形狀或形式的客戶端。 如果您真的喜歡它,您可以將iPhone連接到WCF數據服務:-) WCF從一開始就設計為非常可互操作 - 實際上,它是實現最多WS- *行業的一個平台跨平台通信標准。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM