2016年6月1日 星期三

使用 NanoProfiler 對 ASP.NET Web API 進行性能監控

在開發 ASP.NET MVC 網站的時候,我會使用 MiniProfiler 或 Glimpse 來監控每一個頁裡各種功能的執行性能,這在之前有寫了多篇文章作介紹,然後也在 twMVC#15 以「開發的效能與效率」這個 Session 裡也做了介紹和說明。但是到了開發 ASP.NET Web API 服務的時候,因為沒有頁面,所以也就無法使用 MiniProfiler 或 Glimpse 等工具去對每次的 API 執行去做監控,以致於就會相當仰賴 Log 記錄,在想要監控的程式片段去計算執行時間與寫入 Log,但是這樣的方式相當沒有效率,而且事後去查看 Log 也要當浪費很多時間才能把相關數據給整理出來。

在 2014 年底,我在 Nuget 的 Release 訊息裡發現了一個名為「NanoPrifiler」的套件,當時的介紹文章相當少,大概只有作者部落格裡的兩篇文章(第三篇文章還是到了 2015 年八月才發佈),而且我在 2014 年看到的時候還沒有放在 Github 分享出來(原本一開始有放在 Github 上,但是後來又關閉,現在已經重新公開),一開始我是被他的介紹與文章說明給吸引,直覺這個套件就是我所想要的,所以花了一點時間去研究,接著在 2015 年初就全面導入到專案開發裡,甚至於之後公司裡幾個後續所開發的 ASP.NET Web API 專案也都導入使用 NanoProfiler。

在 2015 年 12 月裡所舉行的 twMVC#21,我在主講的「以實例說明 ASP.NET Web API 服務的開發與測試過程」裡就有將 NanoProfiler 介紹給大家,而到了現在才有時間將使用、安裝的說明給整理出來,所以將會有一系列的文章說明如何使用 NanoProfiler。

 


2016年5月23日 星期一

ASP.NET MVC Elmah Dashboard - 查看 Elmah 存在 SQL Server 的記錄

無論是 ASP.NET WebFroms or MVC or WebApi,我都會在專案裡安裝使用 Elmah 來攔截紀錄例外錯誤,這個部落格裡也有很多篇文章在說明,Elmah 這套件真的是一個歷史悠久的工具,早在 2004 年就已經出現了,但是我真的很意外居然蠻多人是聽都沒有聽過,甚至有許多人是不懂為何要來攔截記錄錯誤(我就完全不懂這些人是如何知道網站發生了什麼例外錯誤,而且怎麼去做分析與修復?),有些團隊雖然沒有使用過 Elmah 而是選擇自己建立錯誤處理機制或是使用其他的錯誤攔截記錄機制,不管如何,例外錯誤的處理是不能夠掉以輕心的,問題往往都能夠從這些有被紀錄的 Exception 裡去被發現。

雖然 Elmah 有提供一個基本的記錄顯示介面,可以讓我們看到有哪些 Exception 被記錄下來,但長久下來要在一大多的 Exception Record 裡去找出問題或是作分析就會是一大難題,因為這個基本的顯示介面是相當陽春的,如果有將這些記錄存在 SQL Server 裡的話,還可以在 SSMS 裡去下 T-SQL 做資料查詢,但是要要查個 Exception 紀錄還要開啟 SSMS 也是蠻累人的,尤其是有些團隊的環境裡是不允許開發人員直接連接正式環境的 SQL Server,所以就無法使用 SSMS 去做查詢了。

如果有將 Elmah 所攔截的例外錯誤給存放到「SQL Server」的團隊,這邊向你們介紹一個簡單方便的套件「ASP.NET MVC ELMAH Dashboard」

 


2016年4月24日 星期日

入門學習 ASP.NET MVC 的建議

2009 年在台灣微軟 7F 的一場由 Will 保哥所帶來的一個多小時教學課程開始,我第一次接觸了 ASP.NET MVC,當時的我對於這項技術還是懵懵懂懂,整場下來猶如走馬看花一般,太多觀念與實作方式與當時我所熟悉的 ASP.NET WebForm 有著極大的不同,但當時對我而言,比較讓我不明白的是在 View, Controller 以及 Route,因為這是 WebForm 所沒有的,但已經使用 LINQ to SQL 與 Entity Framework, 物件導向程式開發的我來說,在 Model 部分是沒有讓我有任何的不明白,當時我已經不再使用 DataSet, DataTable, DataSource Controls,而在一年之後的七月,我就全面開始以 ASP.NET MVC 在工作上進行專案開發,而從 ASP.NET WebForm 到全面轉換為 ASP.NET MVC 開發,這過程我花了一個多月,不算順利、遇到很多問題、撞了很多牆、衝擊很多觀念,最後就一直到了現在。

這邊分享一些我的看法與建議。

 


2016年4月6日 星期三

Profile ASP.NET Application 使用 Prefix

前不久在 feedly 裡看到訂閱的 Mikesdotnetting 部落格介紹了一個免費的 ASP.NET 監控工具「Prefix」,大致看了一下介紹,發現到這的確是個不錯的工具,所以就寫篇文章來做個簡單介紹。

這部落格也介紹了一些 Profile 的工具,例如 miniProfiler, Glimpse 等,但這個 Prefix 與前面所提的有什麼不同呢?看下去就知道。

 


2016年4月5日 星期二

ASP.NET MVC 5 + jQuery EasyUI DataGrid 範例程式碼 @ Github

把 2013 年 10 月份所寫的一系列 ASP.NET MVC + jQuery EasyUI DataGrid 文章裡的範例做了整理,然後發佈在 Github Repository 上,雖然在臺灣使用 jQuery EasyUI 在系統裡的專案並不是很多,尤其是 ASP.NET MVC 的更少,但我覺得過去的這系列文章裡也有一些內容是可以借鑑的,例如多欄位排序的處理。

放到 GitHub 上的範例程式都是可以正常執行的,建議各位不要只是在 GitHub 上面瀏覽程式,而是直接將原始碼下載或 Clone一份,直接在你自己的電腦上面執行。

 


提醒

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