2011-06-02 69 views
3

有一種常見的情況,客戶端使用某種過濾器從服務器獲取數據。尋找.NET(Silverlight)庫來表示數據過濾器表達式

我很想知道.NET(Silverlight)庫在那裏以協助表示這些過濾器。爲了真正有用,過濾對象模型必須具備以下特性:

  • 可以輕鬆地將(de)序列化爲跨平臺的東西,如XML/JSON /純字符串。例如,linq表達式不是一個好例子,因爲它們不容易序列化。有很多方法可以將linq表達式轉換爲XML,但我不能稱其爲簡單。
  • 爲了將過濾器轉換爲適合數據訪問的內容,可以輕鬆遍歷。例如,能夠將過濾器轉換爲linq表達式意味着它可以被饋送到任何支持DAL表達式的DAL中。
  • 支持增量式構造和修改。回到linq表達式,他們支持增量構建,但不支持修改。
  • 一個非常好的增編將是整個準備推出的Silverlight或HTML基於UI組件,讓用戶創建這樣的過濾器

感謝。

回答

3

WCF RIA Services將爲您提供開箱即用的服務。您將數據集合公開爲IQueryable,並且可以在客戶端上編寫查詢。當你執行查詢時,整個查詢表達式被髮送回服務器,執行並返回數據。

類似的另一種選擇是WCF數據服務,它基本上使用查詢字符串來表示對RESTful數據集的查詢;在服務器端,這個查詢然後被轉換成IQueryable,然後在你的底層數據存儲上執行,例如實體框架數據庫。查詢例如返回前10名的產品看起來是這樣的:

http://localhost/myservice.svc/Products/ $頂部= 10個

的查詢是基於OData的標準。 WCF數據服務可以將數據公開爲xml或json。

+0

有趣的是,我將不得不考慮它。 – mark 2011-06-16 21:03:22