2014年10月21日 星期二

ASP.NET MVC 使用政府公開資料 @ GitHub

將去年一連三篇有關使用新北市政府公開資料所做的範例給放在 GitHub 上,

ASP.NET MVC 使用政府公開資料 Part.1

ASP.NET MVC 使用政府公開資料 Part.2 - 增加條件過濾

ASP.NET MVC 使用政府公開資料 Part.3 - 資料分頁 使用 PagedList 的 StaticPagedList

這個範例主要是在說明如何在 ASP.NET MVC 的網站裡使用其他服務所提供的 JSON 資料,然後將接收的資料轉換為物件,並且在頁面上以分頁的方式顯示,再加入搜尋條件以方便對資料做查詢,最後則是藉由這一個範例說明 PagedList.Mvc 的 StaticPagedList 功能。

 


除了前面所講的之外,範例的內容還包含了如何將接收到並轉換完成的資料使用 System.Runtime.Caching 的 ObjectCache,而非再使用舊有的 System.Web.Caching,但是這次公開在 GitHub 的範例程式除了原本文章裡所用的程式之外,也提供了另外一個分頁做法,就是使用 FormMethod.Post 的方式,這個做法是直接參考前一篇文章的實作內容再加以修改。

練習題 - ASP.NET MVC 資料列表顯示 + 分頁 + 查詢 + FormMethod.Post

再來就是原本是使用 Json.Net 來處理 JSON 資料的反序列化,不過最近在嘗試其他的 JSON Serializer,從 Jil, NetJSON, fastJSON 等都有試過,最後選擇用「ServiceStack.Text」來取代,而實際測試的結果也真的比 Json.Net 快了一倍的時間(不過在這個範例所記錄到的時間是 17ms 與 8ms 的差別)。

 

ServiceStack.Text

https://servicestack.net/text

image

https://github.com/ServiceStack/ServiceStack.Text

image

 

實際使用的程式差異

image

執行時的時間記錄

使用 ServiceStack.Text

image

使用 Json.Net

image

 

有關各種 JSON Serializer 的速度比較,可以參考以下的相關連結,不過速度不是選擇使用的優先考量重點,穩定與支援度才是重點,這需要每一種 JSON Serializer 使用並測試後才能夠決定你的專案是要使用哪一種,

Benchmarks | theburningmonk.com

JSON serializers benchmarks updated | theburningmonk.com

Quick JSON serializer performance test (Json.NET vs ServiceStack) - Xamarin Forums

以下圖片內容為「JSON serializers benchmarks updated | theburningmonk.com」此文章內的圖表。

image

 

網站執行畫面

image

image

image

 

GitHub Respository

ASP.NET MVC 使用政府公開資料 - 範例程式(MVC-NewTaipeiCity-OpenData-Sample)

https://github.com/kevintsengtw/MVC-NewTaipeiCity-OpenData-Sample

image

 

以上

2 則留言:

  1. Kevin 大:
    打擾您。
    RetriveHotSpotData 的 Retrive,少了個 e => Retrieve。 :)

    回覆刪除
    回覆
    1. 原來我一直都打錯這個字... Orz
      感謝阿砮提醒。

      刪除

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。