Web API(RESTFul)協同文件與測試工作之道-Postman Team訂閱!

Web API(RESTFul)協同文件與測試工作之道-Postman Team訂閱!

Postman logo

自從「ASP.NET MVC 4網站開發美學」一書的Web API章節介紹Postman開始,Postman一路穩扎穩打,從網頁版到Chrome App版一直都是Web API(RESTful)開發人員的首選,Postman一個人用,真的超級好用,而且後來加上的Sync(同步)功能後,只要註冊一個帳號,不管你有幾電腦,登入之後通通全部自動同步完畢。像我家裡有二台筆電、公司有一筆電一桌機,有了"Postman + Sync"幾乎是個人完美的解決方案了。

可以瑞凡-現在不是一個人的世界了。

ASP.NET MVC, Entity Framework Code First與MySql筆記

ASP.NET MVC, Entity Framework Code First與MySql的筆記

在一次機會中,需要在ASP.NET MVC去接MySql資料庫,試玩一下之後,發現在ASP.NET MVC與Entity Framework環境下去對接MySql資料庫並不會太難,以下為簡單的筆記。

連線MySql三個重要元件

其實走對第一步,對接MySql資料庫已經完成了80%說。 :)

首先你要安裝三個重要的元件:

ASP.NET Web API-取代JsonFormatter新選擇-招喚JilFormatter

ASP.NET Web API-取代JsonFormatter新選擇-招喚JilFormatter

ASP.NET Web API一開始就以JSON.NET來取代JavaScriptSerializer以完成世代交替,JSON.NET的表現一直是中規中矩,以我的認知他是求穩。ASP.NET Web API採用Formatter的設計方式,預設有JsonFormatter與XmlFormatter,在求快的過程,如同頭文字D的86,換上一顆新F1引擎是最快的方式,我們來替ASP.NET Web API安裝一顆JilFormatter的高速引擎。

ASP.NET MVC-取代JsonResult新選擇-招喚JilResult

ASP.NET MVC-取代JsonResult新選擇-招喚JilResult

I am speed

前集,找到以效能(速度)為主軸的Jil套件,經過自我驗證後,在JSON(反)序列化效能上確實不差,這一篇我們就利用ASP.NET MVC優秀的擴充機制以新的JilResult來取代原有的JsonResult,以完成JavaScriptSerializer退休的使命,讓ASP.NET MVC換上一顆高速的JSON(反)序列化引擎。

JSON(反)序列化之唯快不破新選擇-Jil

JSON(反)序列化之唯快不破新選擇-Jil

天下武功-唯快不破

ASP.NET MVC的ActionResult一直有個讓人疑惑的地方,就是它的JsonResult,JsonResult預設使用了.NET Framework的JavaScriptSerializer類別,並不是說JavaScriptSerializer不好,每一個技術都有它的時空背景,.NET Framework發展過程中JSON格式也是慢慢才成為標準。在JSON格式流行與大量使用下,JavaScriptSerializer已經有點上氣不接下氣。而微軟在ASP.NET Web API第1版中就非常明確的以JSON.NET取而代之。而ASP.NET MVC到第5版為止雖然一直無異動這部分的程式碼,原因也很簡單,ASP.NET MVC設計了優良的擴充點,讓開發者想要擴充原有的ActionResult也不是太難的問題。

擴充為JsonNetResult

如果讀者想使用Json.NET來擴充原有的ActionResult,可以參考Json.NET的作者James所寫的JsonNetResult或是參考黑大所寫的JsonNetController版本。這都是能直接上線使用的程式碼,我就不再多說明。

我就是速度(I am speed)

最近在進行專案效能調教,在MVC專案中使用了大量的JsonResult,在黑大JSON轉換效能評比-Json.NET,就決定是你了!得到JavaScriptSerializer早就應該退休了的結論,取代ASP.NET MVC預設JsonResult是個快又有效的一步。不過在這個唯快不破的時代,我想找找是否還有更好的選擇。

我發現一個JSON(反)序列化新選擇-Jil

以下效能圖表參考原專案:

Serialization for  comparison chat 1
Serialization for  comparison chat 2
Serialization for  comparison chat 3