Visual Studio是蝙蝠车,LINQPad是兰博基尼?这个比喻很秒
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?此篇轉(zhuǎn)發(fā)自港澳臺(tái)LINQPad用戶PETER的文章
對(duì)于.NET的工程師來(lái)說(shuō)最幸福的就是我們有史上最強(qiáng)大的IDE:Visual Studio,隨便你要上山還是下海,用著Visual Studio就像是開著蝙蝠車一樣橫行天下。
But!強(qiáng)大如Visual Studio也是有缺點(diǎn)的,例如說(shuō)摩天布魯斯要去公司露個(gè)臉,總不能開著蝙蝠車去吧。這時(shí)在車庫(kù)里的蘭博基尼就排上用場(chǎng)了,這臺(tái)蘭博基尼就是我們本篇的主角LINQPad。
本篇目標(biāo):
介紹LINQPad的以下主題:
- 用途
- 安裝
- 界面
- 用法: Expression、Statement(s)及Program
- 引入?yún)⒖?/li>
- 與資料庫(kù)連線
- Extension Methods
- 小訣竅
用途
如上所述,LINQPad之于Visual Studio就像是跑車之于戰(zhàn)車一樣,Visual Studio的功能強(qiáng)大,要做任何事情都難不倒它,但缺點(diǎn)就是太笨重了,消耗的資源太多,如果我們只是要做一些程式片段的驗(yàn)證測(cè)試或是學(xué)習(xí)還要開啟Visual Studio然后創(chuàng)建專案,光是想到就會(huì)讓人卻步,這時(shí)候LINQPad就派上用場(chǎng)了,它有下列的優(yōu)點(diǎn):
- 它很輕盈(15MB)
- 有Portalble版本不用安裝可以帶著走,想在哪寫就在哪寫
- 可以不用建立專案甚至不用寫Class,只要寫你想要測(cè)試的程式碼即可(Expression、Statement)
- 可以把程式碼片段(code snippet)存起來(lái)當(dāng)作范例使用
接下來(lái)我們來(lái)看看要怎么使用LINQPad吧。
安裝
請(qǐng)至
LINQPad有付費(fèi)版本,個(gè)人覺(jué)得付費(fèi)版本很實(shí)用的功能有:
- 自動(dòng)完成
- 跟NuGet整合
- Debugger
介面
介面分為四個(gè)部分:
- 伺服器連線瀏覽
- 片段瀏覽器
- 程式撰寫
- 執(zhí)行結(jié)果 - Result: 查詢結(jié)果(LINQPad提供Dump來(lái)得到較好的顯示品質(zhì))
- Lambda: LINQ轉(zhuǎn)為L(zhǎng)INQ Method后的程式
- SQL: LINQ轉(zhuǎn)出的SQL Query
 
對(duì)介面有初步的認(rèn)識(shí)后我們就來(lái)用LINQPad寫一些程式吧。
用法
對(duì)于C#,LINQPad有三種編寫方式:
- Expression 單行程式或是單個(gè)LINQ陳述式
- Statement(s)?多行的程式片段
- Program需要撰寫Class或是Method時(shí)
Expression
- 使用場(chǎng)景 練某個(gè)剛認(rèn)識(shí)的Method時(shí)或是要以LINQ取得想要的資料時(shí)....等
- 使用方式;以單行程式碼的方式撰寫,最后不用加分號(hào)(;)
- 范例
可以看到Result直接輸出結(jié)果,在測(cè)試或?qū)W習(xí)Method時(shí)很好用。
就算是分成多行,只要還是一個(gè)陳述式就算是Expression。對(duì)于要找出期望的資料很好用。
Statement(s)
- 使用場(chǎng)景
- 使用方式class;
Program
- 使用場(chǎng)景?需要演練Method、Function或是Class時(shí)
- 使用方式?跟寫Console App一樣的方式
你沒(méi)看錯(cuò)!!最外面是不需要再一層Class的,可以直接寫所需的程式碼,是不是很方便阿。
當(dāng)然如果你外面還是想要包Class(跟正規(guī)的程式相同)的話也可以,請(qǐng)參考
引入?yún)⒖?/strong>
在LINQPad上如果有需要引入?yún)⒖嫉脑捰袃蓚€(gè)方式:
- 按下F4
- 在程式撰寫的區(qū)塊按右鍵>References and Properties
進(jìn)入Query Properties 頁(yè)面,按下Add...或是Browse...按鈕選擇需要的參考加到程式中
與資料庫(kù)連線
在沒(méi)有LINQPad的幫助下,我們要測(cè)試用LINQ抓取的資料庫(kù)資料是否正確時(shí),我們需要做下面兩件事:
接著我們才能開始撰寫LINQ,這一來(lái)一往間就耗掉了許多的時(shí)間,這時(shí)就該是LINQPad出場(chǎng)的時(shí)候了。
設(shè)定連線
現(xiàn)在我們要幫LINQ設(shè)定好DB的連線方式。
使用資料庫(kù)資料做LINQ演練
2.連線成功后可以看到程式碼區(qū)塊上的Connection變成Northwind
3.接著我們來(lái)寫個(gè)LINQ(此范例為L(zhǎng)INQPad>Samples>LINQPad Tutorial & Reference>5-minute induction>What about querying a database!),執(zhí)行后我們可以看到夢(mèng)寐以求的資料了!~~
執(zhí)行SQL語(yǔ)法
有沒(méi)有想要查詢資料庫(kù)時(shí)卻不想打開資料庫(kù)工具呢?這時(shí)候LINQPad又可以派上用場(chǎng)了(萬(wàn)能阿~~)。
照著下面的步驟來(lái)取得Northwind中單價(jià)(UnitPrice)最高的產(chǎn)品(Products):
上述的范例如果還看不過(guò)癮的話,在LINQPad>Samples>LINQPad Tutorial & Reference>5-minute induction>But I don't have NORTHWIND!中展示了Create Table、Insert Data的演練,可以參考一下。
Extension Methods
有時(shí)候我們會(huì)想要寫個(gè)可以在全部的程式碼片段使用的通用Method,這時(shí)LINQPad的Extension Method就派上用場(chǎng)了,在MyExtensions這個(gè)Class中撰寫Method就可以在每個(gè)程式碼片段中做使用(就像是LINQPad內(nèi)建的Dump一樣)。
2接著我們來(lái)加入Hello 到MyExtensions?中
Extension Methods的好處在于你可以擴(kuò)充自己的Infrastructure,來(lái)縮減每個(gè)程式碼片段重復(fù)的處理。
小訣竅
儲(chǔ)存可參考的程式碼片段
有時(shí)候我們會(huì)常常參考某些好用的程式碼,這時(shí)就會(huì)想要找個(gè)地方存起來(lái)等要的時(shí)候再拿出來(lái)。
在LINQPad中有儲(chǔ)存程式碼片段的功能:
快捷鍵表
在Help>Keyboard/Mouse Shortcuts
執(zhí)行選取的程式碼
選取想要執(zhí)行的片段按下執(zhí)行F5就可以執(zhí)行片段程式碼
LINQPad extension methods
LINQPad自己有提供Dump,讓開發(fā)者可以產(chǎn)出更清楚的結(jié)果,關(guān)于Dump的詳細(xì)說(shuō)明可以參考作者自己在StackOverflow的回答:?LINQPad [extension] methods
結(jié)論
LINQPad是一個(gè)麻雀雖小,五臟俱全的開發(fā)工具,在這個(gè)章節(jié)中我們學(xué)到了如何運(yùn)用這功能強(qiáng)大的工具,下個(gè)章節(jié)我們要來(lái)尋foreach中隱藏的秘密哦!
LINQPad 已經(jīng)推出全新的中文網(wǎng)站www.linqpad.cn, 以及微信公眾號(hào)。請(qǐng)關(guān)注,及時(shí)掌握最新資訊!
總結(jié)
以上是生活随笔為你收集整理的Visual Studio是蝙蝠车,LINQPad是兰博基尼?这个比喻很秒的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: j2medev“用户界面和多媒体”版面问
- 下一篇: Java 笔试:常见题目总结,soul移
