2010-10-06 65 views
2

我的wcf由IIS託管並使用basicHttpBinding。 我的常見數據是數據集,我應該序列化並傳輸到客戶端。 我還沒有找到MB的內容,但是我想把它轉交給客戶,以獲得最佳的性能。WCF [Internet場景]。最快的方式傳輸 serialize(de)數據

據我所知我應該使用MTOM編碼。對?

也想知道傳輸對象的類型: DataSet,Byte [],Gzip Stream(通過IIS或手動)。

我認爲我的情況相當普遍。希望聽到你的工作快速設計。

+1

最佳性能? **不要**使用數據集 - 它們有很大的開銷....使用對象的直接列表,而不是... – 2010-10-06 17:11:59

回答

3

IMO 最快這樣做的方法是使用protobuf-net通過DTO(而不是數據表)。 Protobuf-net只需要修改配置文件就可以插入WCF,並且證明了我知道的任何通用串行器的最小輸出和最快處理。我可能有偏見(我寫了那個版本),但它是免費的,所以值得一試。

但沒有數據表。

而且是啊,MTOM通過二進制(這是protobuf的)時會有所幫助,但不是XML(所以MTOM標準的DataTable是毫無意義的)

+0

(如果您喜歡,我可以提供比較WCF串行器性能的最新SO問題作爲支持證據) – 2010-10-06 17:48:12

+0

馬克,非常感謝。是的,你能不能給我這個鏈接。也想問。如果我想將結果的db查詢傳遞給客戶端,我應該把查詢的結果放在dtos中,並用(binary protobuf)傳遞給客戶端。好。但是,如果我沒有得到任何ORM的數據庫結果到域和映射到DTO,我的數據庫查詢結果只是XML字符串。我應該如何傳遞給客戶端(沒有對象收集)? – 2010-10-07 17:45:09

+0

@andrew http://stackoverflow.com/questions/3790728/performance-tests-of-serializations-used-by-wcf-bindings/3793091#3793091 – 2010-10-07 20:13:52