網頁

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
      感謝阿砮提醒。

      刪除