首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

WinCE 資料通訊實戰(一):Web Service 架構與 GZIP 壓縮傳輸優化

     編輯:關於ASP.NET

WinCE 5.0 裝置透過 GPRS 呼叫 ASP.NET Web Service 進行資料交換,流量成本高,壓縮傳輸為關鍵優化點。

架構概覽

  • 伺服器:ASP.NET Web Service (ASMX),方法回傳 DataSet
  • 裝置端:.NET Compact Framework 呼叫 Web Service Proxy
  • 傳輸:HTTP + GZIP 壓縮(ICSharpCode.SharpZipLib)

伺服器端 Web Service 範例


[WebMethod(Description = "直接回傳 DataSet")]
public DataSet GetDataSet() {
    return GetNorthwindDataSet();
}

private DataSet GetNorthwindDataSet() {
    return ExecuteSql("SELECT * FROM Employees");
}

private DataSet ExecuteSql(string sql) {
    DataSet ds = new DataSet();
    using (SqlConnection conn = new SqlConnection(connString)) {
        SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
        adapter.Fill(ds, "table");
    }
    return ds;
}

壓縮策略:SharpZipLib

  • 開源、免費、支援 .NET Compact Framework
  • 伺服器端壓縮回傳資料流,裝置端解壓縮後還原 DataSet
  • 大幅降低 GPRS 流量費用

優缺點分析

優點缺點
開發簡單、標準 HTTP 穿透防火牆DataSet 序列化龐大(XML Schema + DiffGram)
支援雙向複雜物件傳輸即使壓縮,大量資料仍較慢
伺服器端邏輯集中離線場景不支援

後續文章將介紹 SQL CE RDA 離線同步方案,解決離線需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved