針對前幾天發布的幾篇文章,將文章的範例程式做整理然後放到 GitHub 上,因為有些朋友看了文章之後還是不太有感覺,不曉得是我文章的內容描述有問題還是文筆不好,所以就會有人反應看了文章之後也跟著做一遍卻發生問題,所以將範例程式放到 GitHub,這樣大家就可以直接下載然後執行。
針對前幾天發布的幾篇文章,將文章的範例程式做整理然後放到 GitHub 上,因為有些朋友看了文章之後還是不太有感覺,不曉得是我文章的內容描述有問題還是文筆不好,所以就會有人反應看了文章之後也跟著做一遍卻發生問題,所以將範例程式放到 GitHub,這樣大家就可以直接下載然後執行。
前一篇「MiniProfiler 3 + ASP.NET WebForms + ADO.NET」是說明怎麼在 ASP.NET WebForms 與 ADO.NET 的情況下去怎麼使用 MiniProfiler 以及如何修改設定,同樣的在 twMVC#15 裡也有分享另一個套件「Glimpse」。
與 MiniProfiler 比較起來,Glimpse 不止是提供 EF 的 SQL Command 追蹤或執行方法的效能追蹤,此外還有提供多種的頁面訊息,讓我們在開發時可以掌握更多的資訊,這些在以前的文章都曾經有介紹過,可以查看部落格裡的 Glimpse 相關文章。
之前的文章都是以 ASP.NET MVC + Entity Framework 的情況下來做說明,而 Glimpse 在 1.7.0 版之後也發布了對於 ASP.NET WebForms 的支援,而 Glimpse.WebForms 可以說是原本 ASP.NET Trace 功能的進階加強版,所能提供的資訊與內容是更多樣且更為清晰。
但是在使用 ASP.NET WebForms + ADO.NET 的情況下,如果使用 Glimpse 而沒有經過任何調整的處理,那麼在 SQL Tab 是不會有任何作用與資訊,所以這一篇就來說明要怎麼調整讓 Glimpse 的 SQL Tab 可以顯示頁面執行 ADO.NET 存取資料的 SQL Command 內容。
上一篇文章說明了使用 EF6 的 Intercepting 與 NLog 來紀錄觀察分頁的執行內容與效能,在文末也提到 MiniProfiler 與 Clutch.Diagnostics.EntityFramework 目前尚未支援 EF6,如果不想使用 EF6 Intercepting 的話,其實還可以使用 Glimpse.EF 來觀察,Glimpse 在兩年多前也曾經寫文章介紹過,但可能當時界面與功能還蠻陽春,所以注意的人不是很多(文章的瀏覽數量都少少的),不過在去年開始進行了界面的改版而且版本更新進度也變得頻繁(因為 redgate 投入支援),另外也因為有提供介面讓開發者可以開發其他功能,所以有許多相當實用的功能可以使用,而且不限定 ASP.NET MVC 才能使用,提供 ASP.NET WebForm 的功能也相當豐富與使用,有興趣的朋友可以玩玩看。
這一篇就來介紹怎麼使用 Glimpse 與 Glimpse.EF 來觀察分頁的執行。
其實glimpse可以結合ELMAH,讓ELMAH所記錄到的錯誤訊息於glimpse中顯示,在系統的登入認證後,只要啟用glimpse就可以去看ELMAH的紀錄資料,不必再另外進入ELMAH,接下來介紹如何透過NuGet安裝Elmah plugin for Glimpse以及部分的修改設定。
請記得,你的網站必須示已經安裝了 ELMAH 以及 Glimpse…
上篇文章「ASP.NET MVC 使用Glimpse監測網站的一舉一動 1」,說明了什麼是Glimpse以及如何透過NuGet安裝,另外也簡短的說明Glimpse的內容與如何使用Trace功能,然而與ELMAH所遇到的問題是一樣的,那就是預設安裝後,都是可以匿名瀏覽,對於網站的安全性來說是個相當大的威脅,尤其是Glimpse的Config,會把Web.Config的所有資訊都完整呈現,所以這一篇文章就要來說明如何讓Glimpse在登入後才可以使用。
之前有介紹一個可以即時監測網戰後端每個處理的處理時間的監測套件「MiniProfiler」,如果說要連帶要監測前後端的每一像細節的話,那麼MiniProfiler可能就沒有辦法,而且MiniProfiler是無法遠端做監測的動作,MiniProfiler只能夠監測本地端的動作,所以MiniProfier比較適合開發期間使用。
而在開發ASP.NET WebFrom的時後,如果想要追蹤每個頁面的執行狀況與效能的話,其實是可以使用「Trace」功能,如此一來就可以在每個頁面的下方顯示頁面執行時的完整詳細資訊,包括前端傳送的Http Request、所有的Session、Cookie等,對於開發時期來說,這些資訊可以幫助我們在除錯時候可以掌握確切的資訊。
然而系統上線之後,Trace功能勢必要關閉,而單靠ELMAH記錄錯誤訊息也無法完全掌握,因為有的時候執行正常並不表示功能正常,例如執行時間過慢、路徑錯誤等,所以接下來就來介紹「Glimpse」,除了具有Trace的功能外,也可以結合Forms Authentication的登入認證,讓我們在系統上線之後,一樣可以即時讓開發人員追蹤頁面執行的各項資訊。