現在越來越多政府單位有提供公開資料,我們可以拿這些公開資料來做一些工具或是服務,大部分的政府公開資料都會提供 JSON 或是 XML 格式的資料,也有一些是直接提供檔案讓我們下載使用,所以這一次就來練習怎麼在 ASP.NET MVC 網站裡使用政府公開資料,這裡將會使用「新北市政府資料開放平台」的「新北市 WIFI 熱點」來作為這次練習的資料來源。
現在越來越多政府單位有提供公開資料,我們可以拿這些公開資料來做一些工具或是服務,大部分的政府公開資料都會提供 JSON 或是 XML 格式的資料,也有一些是直接提供檔案讓我們下載使用,所以這一次就來練習怎麼在 ASP.NET MVC 網站裡使用政府公開資料,這裡將會使用「新北市政府資料開放平台」的「新北市 WIFI 熱點」來作為這次練習的資料來源。
這一篇老實說拖了蠻久的,因為是延續上個月所寫的 Code First 內容,
ASP.NET MVC 使用 Entity Framework Code First - 基礎入門
ASP.NET MVC 使用 Entity Framework Code First - 變更多對多關聯資料
在這兩篇文章裡,我們使用 Code First 建立了 SystemUser 以及 SystemRole 兩個類別以及兩者的多對多關係,其實已經建立好基礎的類別與資料存取方法,看來只差登入頁面、登出入程式處理就可以完成一個系統最基本的登入功能。
這一篇就來說明如何做一個基本且符合多個角色權限的登入功能。
在 2013-11-13 的 Visual Studio Launch 發表了 Visual Studio 2013 以及介紹新功能,在以下的連結裡有許多發表會當日的影片內容,建議大家花點時間看看,
http://events.visualstudio.com/cht/home/
其中一項引起大家注意的就是「Visual Studio Online」,一開始我還不太清楚何謂 Visual Studio Online,後來才知道原來 Visual Studio Online 就是之前有介紹過而且也是我在使用的 Team Foundation Service,之前 Team Foundation Service 一直都是免費使用,不過改以 Visual Studio Online 正式發表之後就會依照不同的使用方式而有不同的收費方式。
「ASP.NET MVC 3 使用 CKEditor」這一篇文章是大約在兩年前所寫的,其實在使用上無論是 ASP.NET MVC 3, 4 或是 5 都是一樣的,但是這裡將會說明如何在 ASP.NET MVC 專案裡使用 CKEditor.Mvc 以及對於使用 config.htmlEncodeOutput 設定後的補充說明。
這一篇的文章標題不太好設定,我想大家應該看得懂,簡單說就是當我們所呈現的資料用 Table 來表示時,如果有需要是要在每個橫列加上 Checkbox,如何在每次分頁後去保留各個分頁的 Checkbox 狀態呢?
這個需求的解決方式有很多種,不過我這邊將會延續上一篇「ASP.NET MVC 資料分頁 - 使用 PagedList.Mvc:AJAX」的內容,我會在前端使用 Javascript 的方式來解決這個需求。
有關 ASP.NET MVC 資料分頁 - 使用 PagedList.MVC 的相關文章已經寫了三篇,
ASP.NET MVC 資料分頁 - 使用 PagedList.Mvc
ASP.NET MVC 資料分頁 - 使用 PagedList.Mvc:分頁列樣式
ASP.NET MVC 資料分頁 - 使用 PagedList.Mvc:自訂分頁資訊顯示
在基本的使用狀況下,上面文章所說明的內容都可以應用,但如果是想要使用 AJAX 的方式來處理資料分頁的話,其實 PagedList 在 GitHub 的 Repository 裡就有提供範例,不過我這邊的處理方式則是會跟範例程式有所不同。
初探 Entity Framework 6 前面已經說明過幾個新功能:
初探 Entity Framework 6 的 Async/Await 功能
初探 Entity Framework 6 – Logging
初探 Entity Framework 6 - Intercepting Part.1
初探 Entity Framework 6 - Intercepting Part.2
而第一篇只有針對資料讀取的部份說明而已,還沒有對新增、修改、刪除來做說明,但其實非同步的新增修改刪除並沒有什麼特別的地方,所以這一篇就以 ASP.NET MVC 5 Controller 開始來說明如何將 Controller 裡基本的 CRUD 使用非同步的方式來做處理。
在 2013-11-01 時,ASP.NET MVC 官方網站增加了新的教學課程「Getting Started with EF 6 using MVC 5」,
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc
這一個教學課程比較進階一點,不適合給完全沒有接觸過 ASP.NET MVC 的朋友,而如果已經接觸過甚至已經開始使用 ASP.NET MVC 開發但是尚未接觸過 Code First 的朋友,這個課程就有些挑戰。
如果想要研習「Getting Started with EF 6 using MVC 5」課程的朋友,我會建議一定要先看過「Getting Started with EF 5 using MVC 4」這個課程,因為新課程的內容是承襲前一個版本的課程內容,所以先看過前一版本的課程後再研習新課程內容。
上一篇的最後有說到要將 Insert, Update, Delete 所執行的 SQL Command 內容透過 NLog 給紀錄在文字檔中,但我們所使用的 NLogCommandInterceptor 並沒有這樣的處理,所以這部份就需要我們自己動手來做,在這一篇文章裡就說明處理的過程。
前面已經說明說 Entity Framework 6 所提供的兩個新功能,分別是「初探 Entity Framework 6 的 Async/Await 功能」「初探 Entity Framework 6 - Logging」,而這一篇將會介紹另一個功能「Intercepting」,Intercepting 就字意上的解釋就是「截取」,我們可以使用這個新功能將 EF 所執行的 SQL Command 給截取起來後再做處理(例如紀錄在文字檔內) 。
這一篇將會以「MSDN - Data Developer Center > Entity Framework > Logging and Intercepting Database Operations」的內容來操作以及說明。