2012-03-22 115 views
1

我想知道在使用WCF手動完成二進制序列化時是否有任何性能開銷問題需要考慮。我正在構建一個n層網站,並希望跨層實現異步行爲。我計劃以二進制形式傳遞數據以減少帶寬。 WCF似乎是構建自己的工具的好捷徑,但是我想知道在使用WCF和System.IO命名空間並構建自己的輕量級庫之間是否有任何要點需要注意。二進制序列化與使用WCF

回答

2

有一個WCF的二進制格式化程序,雖然它不完全是二進制的;它會生成SOAP消息,其內容使用XML的.NET二進制格式進行格式化,這是一種高度壓縮的XML格式。 (在this samples page上可以找到這樣的例子。)

另外,只要格式化程序在客戶端和服務器端都可用,就可以實現自己的custom message formatter,然後根據需要進行格式化。 (我覺得你還是得從WCF一些開銷,但並不多。)

個人意見,沒有開銷的節省你可以從定義一個定製的二進制格式,和寫所有的序列化/反序列化的獲取量代碼來手動實現它,將永遠彌補你將花費在試圖實現和調試這種機制上的時間和精力。

+0

Michael,感謝您在這裏的評論。這也是我的猜測。我曾閱讀過有關「WCF」不完全是二元的事實,這引發了我的擔憂。我開始研究WCF,以避免必須編寫我自己的所有管道。該鏈接非常有幫助。我將在設計幾個「服務器層」時做些什麼,並希望能夠根據需求靈活地打破每個邏輯層。 WCF將爲我節省很多時間。該網站將是異步的,並閱讀密集。帶寬始終是一個問題,但如果WCF重量輕 - 可能忽略不計。 – 2012-03-26 10:36:19