Effective C# Item34:建立大粒度的Web API

來源:互聯網
上載者:User

    當我們使用Web Service或者.NET Remoting時,需要謹記當在本地和遠程機器之間傳輸對象時,傳輸過程的成本是很大的,對於某些只是簡單重現封裝本地介面的操作,我們不應該將它們用作遠程API,這麼做並不會出錯,只是效率比較低。

    我們的Web介面應該主要在客戶機和伺服器之間傳輸序列化文檔或者對象集合。客戶機首先進行邏輯處理,準備資料,這個過程是不需要和伺服器進行通訊的,當用戶端把資料準備好後,再將整個文檔發送給伺服器端;伺服器端的處理也是一樣的,當伺服器把文檔中的所有內容處理完畢後,再將其返回給用戶端。

    對於一些本地操作時間很長、更新不頻繁的資料來說,我們可以使用Visitor模式,首先每個用戶端都從伺服器端擷取所有必要的資料,同時將自己的資訊儲存在伺服器中,然後用戶端可以一直在本地進行操作,當有資料上傳到伺服器時,伺服器對更新後的資料進行分發,通知所有相關的客戶機,資料已更新。這樣一方面可以提高用戶端的工作效率,不用頻繁的和伺服器進行通訊,另一方面,可以保證客戶在處理的資料是當前伺服器中的最新資料。

    我們希望用戶端和伺服器端之間通訊的頻率和負荷都能降到最低,但是這兩個目標是矛盾的,我們需要在兩者之間尋找平衡,平衡的結果是應該接近兩個極限的中間,而不是偏向任何一方。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.