2012年4月29日 星期日

看看 LINQPad ( v2.41.2 / v4.41.2 ) 更新了什麼


在上週的時候經 twMVC 成員的提醒說,LINQPad 更新了版本,而且這一次的更新在結果輸出上有了一些的不一樣,

但除了結果輸出的顯示有不同之外,還有哪些的修改呢?

以下就簡單的說明這次修改的地方,也另外說明有新增了那些的功能。

 



首先我們先來看看上一個版本的外觀,

image

如果還在使用前一個版本而尚未更新版本,這時候 LINQPad 就會開始進行下載更新,請看上圖的右上角…

 

我們先看一下在原來版本中顯示查詢結果的畫面,基本上就是我們所熟悉的 Rich Text 格式,

SNAGHTMLf8914b

如果更新檔下載完成後就會在右上角顯示訊息,按下 Button 後就會重新開啟 LINQPad,接下來就會看到新版本的 LINQPad.

 

新版本的 LINQPad 版號分別為:2.41.2 / 4.41.2

v2.41.2 這是 For .NET Framework 3.5 的版號,而 v4.41.2 則是 For .NET Framework 4.0 的版號,

 

先來看看新版本的 LINQPad 是長什麼樣子,

SNAGHTMLffb713

嗯……好像沒有什麼不一樣的……

其實如果看仔細一點的話,可以看到 Query 功能列有多了兩個 ICON,

image

 

第一個 ICON 就是可以讓查詢結果的顯示依然使用傳統的 Rich Text 格式,

SNAGHTML103b916

 

而第二個 ICON 則是可以使用 Data Grids 格式來顯示查詢結果,

SNAGHTML104aeca

 

以往在 Rich Text 顯示查詢結果,如果有關連的資料時,就會連帶把關連的資料也一併顯示,

image

 

而在 Data Grids 顯示結果,則會是另一種顯示方式,

image

如果有關連的資料,則會以綠色座標記,而我們可以點擊其中一個項目再進去這個關連資料集的內容,

image

image

如果要回到上一層的話,可以點擊「IQueryable<Custormer>」回到上一層,

image

 


再來看看還有什麼其他新加入的功能!

 

Editor 增加了是否顯示行號的選項

程式寫久了,總是會想看到程式的行號,一來可以比較清楚之外,二來再多人開發的團隊中做溝通會比較方便,

要開啟 LINQPad Editor 行號的方式就是「Edit > Preferences

image

然後勾選「Show line number in editor

SNAGHTML1237b6c

接著回到 LINQPad 就可以看到 Editor 顯示了行號……

image

 

 

hide/show the Explorer panels

什麼是「Explorer panels」呢?看圖!

SNAGHTML5632db0

圖中用紅線框起來的區域就是「Explorer panels」,現在我們可以使用快速鍵來切換隱藏或顯示這個區域,

「Shift + F8」

看看隱藏起來的樣子,

SNAGHTML5665156

可以使用快速鍵「Shift + F8」增加顯示與操作的區域寬度。

 

 

垂直顯示結果區塊

一般我們用 LINQPad 都已經習慣查詢結果的顯示是在下方,

SNAGHTML56a4d12

現在也可以把這個結果顯示區域使用垂直方向來顯示,對於 Editor 中的查詢程式比較長的操作來說,就不用再去多做捲動的動作,

「Ctrl + F8」

看看垂直顯示的樣子,

SNAGHTML57122b8

 

 

displays a list of all open queries

在 Visual Studio 裡,當我們有開啟多個檔案時,如果要快速的移到某個已開啟檔案時,比較快速的一種方式是「Ctrl + Tab」,

這樣就會顯示一個視窗然後可以快速的移動到想要前往的檔案,

現在,在 LINQPad 也有提供類似的功能囉,當我們開啟很多的 Query Tab 時,也可以使用類似的方式還快速移動到檔案,

「Alt + W」

SNAGHTML575a55f

 

 

Query Optimizations

新版的 LINQPad 查詢狀態列的最右邊,多出了一個新的 Button,

image

據官方的說法是「There's now a button in the status bar for toggling compiler optimizations.」

 

image

點一下 Button 會顯示訊息「Comppiler optimization ON」,並且可以使用快速鍵「SHIFT + ALT + O」來切換,

這個「Compiler optimization」是什麼意思呢?可以在「Edit > Preferences > Query」中得到解釋,

SNAGHTML581a3ba

簡單說,就是請用了 Query optimization 後,就等同於 Visual Studio 的 Release 模式並且停止執行追蹤。

 

 

載入指定目錄下的 DLLs or EXEs 讓所有開啟的查詢都自動加入參考

在「Edit > Preferences > Folders」下,可以指定「Plug and Extensions」的目錄,

當建立一個參考的時候,就會自動參考指令目錄下的 Assembiles,

SNAGHTML58e290f

另外在這個介面中,我們也可以自己指定「My Queries」與「My Snippets」的目錄位置。

 

 

建立新的 Connection 時,有支援 Entity Framework POCO(4.1/4.2)

除了有支援 code-forst 的 Entity Framework POCO 外,ESQL 與 SQL queries 也同樣可在 code-first 模式下運行,

SNAGHTML592edb5

 

 

新的快速鍵(New Keyboard Shortcuts)

當我們執行了一個查詢後,以往在檢視查詢結果都還必須要把 Focus 離開 Editor,雖然在操作上不會覺得有什麼不方便,

但總覺得是不是能夠更加地方便呢?

這是新版的 LINQPad 對查詢後檢視查詢結果的快速鍵提供了方便的操作功能,

「ALT + Left, Right, Up, Down, Page Up, Page Down, Home, Down」

呵呵,幾乎所有的方向鍵都給用上了,

當我們查詢並得到一個大量資料的查詢結果,這樣的組合鍵就會相當方便,

「ALT + LEFT 」「ALT + RIGHT」

這兩個快速鍵主要是用來切換輸出的模式,

Rich Text:

image

Data Grids:

image

 

「ALT + UP, Down, Page UP, Page Down, HOME, END」

這六個組合鍵都是用來移動查詢結果,

「ALT + UP」「ALT + DOWN」以移動一行的方式向上或向下移動,

「ALT + Page UP」「ALT + Page DOWN」以移動一頁的方式向上或向下顯示,

「ALT + HOME」「ALT + END」直接移動到查詢結果的最上方或最下方。

 

 

清除查詢結果視窗內容

新版的 LINQPad 提供了一個指令碼,只要單獨執行這個指令就可以清除查詢結果,

「Util.ClearResults();」

image

 

 

調整 Rich Text 顯示結果的 Nesting Level

image

當輸出顯示結果是採用 Rich Text 格式的時候,我們可以選擇顯示巢狀的顯示階層,

一般如果我們沒有選擇這個 Format Nesting Level 時,預設都會是顯示全部的巢狀階層內容,

SNAGHTML5c4aa12

我們可以選擇顯示三種巢狀階層的顯示方式,

 

Collapse to 1 Nesting Levels 「Alt + 1」

image

 

Collapse to 2 Nesting Levels 「Alt + 2」

image

 

Collapse to 3 Nesting Levels 「Alt + 3」

image

 

Show All Nesting Levels 「Alt + 0」

這個就是恢復到預設的顯示狀態,顯示全部巢狀階層。

image

 

 

Result Caching

我覺得這個新增加的功能是對於使用 LINQPad 有相當大的幫助,尤其是執行效能上面,

我們可以將一個查詢式給加上 Cache(),之後我們就可以針對這個查詢式的結果進行不同的操作,

image

而這些查詢操作都是對這個放入 Cache 的資料集進行查詢,

 

例如以下的查詢,

SNAGHTML5dd698a

如果是以前的查詢方式,

SNAGHTML5df222e

以前的查詢方式在每一次的執行查詢,都會連接資料庫,所以查看 SQL 結果都可以看到 SQL Command,

image

 

但如果是有使用 Cache() 的話,只有第一次的查詢是有查詢的 SQL Command,

image

但是第二次再做執行後,就無法在 SQL 結果視窗中看到 SQL Command,

image

 

再比較一次有使用 Cache() 進行查詢與沒有使用 Cache() 的直接查詢,

有使用 Cache() 的第一次查詢,執行的時間有:0.238 秒

image

第二次查詢,查詢時間就減少到 0.028 秒

image

 

沒有使用 Cache() 的直接查詢,第一次查詢的執行時間為:0.0254 秒

image

第二次的執行時間:0.020 秒

image

而直接查詢的方式在第一次之後的查詢雖然時間上都有減少許多,但是時間上有時會比有使用 Cache() 的第二次之後的時間少,

但是每一次的查詢都會對資料庫做連結。

 

如果使用了 Cache() 的資料集,你想要清除掉的話,可以使用快速鍵「SHIFT + F5」,就會把快取值給清除掉,

image

 

我們也可以使用以下的方式對查詢結果進行緩存處理,

image

 


以上就是針對這次 LINQPad v2.41.2/v4.41.2 所更新以及新增加的幾個功能做了整理說明,

當然這一次的更新並不只限於我所介紹的這些,其實還有很多,只是有些新增或是更新的功能對我而言是比較少用到的,

所以也就沒有仔細的去研究並且介紹出來,

如果各位對其他的更新有興趣想要了解的話,可以用以下的方式得到每一次 LINQPad 的 Change Log,

image

然後就會在你電腦系統的預設瀏覽器開啟「What’s new in LINQPad」,在這個網頁中也可以看看每次 LINQPad 有增加什麼東西。

 

另外也可在「Help > Keyboard / Mouse Shortcuts」查看 LINQPad 的快速鍵總覽喔!

image

 

 

以上

2 則留言:

  1. 一直在用 beta 的我感覺沒有那麼強烈 XDD

    回覆刪除
    回覆
    1. 的確是呀,
      不過對於用 Release 版本的使用者來說,有些新增功能還是要說過才會知道怎麼用哩。

      刪除

提醒

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