Dot-Net
選擇什麼?.net 3.5 中的 ASMX Web 服務或 WCF?
我正在從事的目前項目廣泛使用 Web 服務,並且是在 .net 3.5 中製作的。現在,當我們要實施第二階段時,我們是否應該像以前那樣使用 WCF 或 Web 服務?此外,是否有任何新的有用的東西,並且正在提出關於 Web 服務或 WCF 的 .net 4.0。
我們剛剛完成了第一次使用 WCF 而不是 ASMX Web 服務的全新項目。我們對結果非常滿意,但確實知道學習曲線很陡峭。即便如此,我們對整體結果感到非常滿意,並且知道這是 Microsoft 未來所做的一切的基礎,並且完全值得付出痛苦 - 疣和所有。
我們通過 ASMX 獲得的快速收益:
- 對於內部(防火牆後)服務到服務呼叫,我們使用 net:tcp 綁定,它比 SOAP 快得多
2)我們在同一個服務上同時啟用了 net:tcp 端點和“web”端點,只更新了配置文件(沒有程式碼更改)
- 我們能夠創建支持 AJAX 的 RESTful Web 服務,只需更改配置並使用已經內置的 DataContractJsonSerializer。否則,我們將不得不編寫一個 HTTP 處理程序 (ashx) 並處理大部分 Json 序列化並手動解析url。
4)由於我們的站點需要擴展以實現性能優化和穩定性,我們正在考慮轉換為使用基於 MSMQ 的消息傳遞結構,該結構是非同步且有保證並參與事務的;WCF 提供了一個 MSMQ 綁定,它幾乎不需要在我們的服務中更改程式碼——只需引用更新並使用現有服務正確設置 MSMQ(並為事務邊界添加屬性)。
但請注意:真正投資於學習這一點(購買藍色的 O-Reily 書並仔細閱讀)。開發過程中的參數名稱更改之類的事情實際上不會破壞服務引用,但會導致傳遞空參數(內置版本偏差處理)、要考慮的託管模型(Windows 服務與 IIS)和實例化模型和 FaultExceptions 都非常了解。我們沒有進去,我們有些痛苦。但我們奮力前行,對我們的學習以及不再與 ASMX 綁定的靈活性和增長機會感到非常滿意!