2010-04-20 220 views
1

場景:我有一個現有的https ASP.NET網站,我將添加一些新的遠程服務。這些服務提供的計算需要通過站點上的AJAX方法以及.NET桌面應用程序進行調用。ASP.NET Web服務與WCF服務

我一直在使用ASP.NET WebServices(用ScriptService屬性標記)來完成此操作。我剛剛發現了WCF。

根據我的理解,在這種情況下,WCF服務將提供的一個普通的舊.NET Web服務似乎主要是通過各種其他通信渠道(如Message Queue和COM +)進行連接的能力。我從未見過這個項目發生過。

那麼告訴我,爲什麼我應該考慮WCF?

回答

4

WCF提供了一個非常可定製的平臺;幾乎任何部分的WCF堆棧都可以用您自己的自定義組件替換。改變通信協議只是冰山一角。通過此設計,可以完成您無法輕鬆使用ASP.NET Web服務的事情。

例如,我最近編寫了一個審計組件,它偵聽WCF服務或客戶端上的請求應答傳輸,並將它們全部寫入審計數據庫。 WCF爲消息攔截器提供擴展點來訪問消息並在它們仍然是XML時對它們執行操作。因此,我寫了大約100行代碼來完成我想要的功能。

使用WCF的一個支持理由是工具。 WCF提供了更好的測試,配置和診斷服務的工具。除此之外,作爲.NET服務的解決方案,現在有許多專門針對WCF平臺的工具和實用程序。

WCF完全替代ASP.NET Web服務。我建議.NET服務中的所有新工作應儘可能在WCF中完成。您是否應該將現有項目遷移到WCF是另一回事,WCF的優勢需要超過更換正常運行解決方案的成本。

4

即使您目前沒有計劃添加不同的服務端點,也不應該將其排除爲可能。你永遠不知道有人可能需要什麼。這就是說,如果.NET Web服務滿足您的需求,並且您不需要WCF添加的額外好處(簡單的端點交換,更緊密集成的標準安全性等),那麼請不要同時使用這兩種服務。

如果您的代碼正在工作並完成工作,那麼僅僅爲了說您使用新技術而投入時間就沒有任何意義。等待調查WCF,直到您確實需要它提供的功能。

+1

如果沒有損壞,請不要用最新的閃亮技術取代它,只是因爲它太閃亮。 +1 – 2010-04-21 10:59:43