ASP.NET 2.0下的條件編譯
在Web開發(fā)中測(cè)試單個(gè)頁(yè)面的功能實(shí)在是太麻煩,從首頁(yè)用戶名、密碼進(jìn)去后,經(jīng)過(guò)一些操作后才可以來(lái)到你要測(cè)試的那個(gè)頁(yè)面。(其實(shí)無(wú)論做什么的開發(fā),測(cè)試單個(gè)功能都是很麻煩)。抱著小心謹(jǐn)慎的態(tài)度,我一般喜歡寫幾段測(cè)一次,如果每次都興師動(dòng)眾的啟動(dòng)整個(gè)項(xiàng)目來(lái)測(cè)試顯然是很不經(jīng)濟(jì)的做法。
我一般會(huì)在Solution中新增一個(gè)用于測(cè)試用的配置,在其中增加一個(gè)“Test"之類的編譯指令,然后在代碼中,把一些測(cè)試條件,測(cè)試方法放到這個(gè)指令下。在開發(fā)團(tuán)隊(duì)還沒(méi)有引進(jìn)單元測(cè)試之類的概念的時(shí)候,我可不想用新增一個(gè)測(cè)試項(xiàng)目這樣的方法來(lái)做這種事情。而且對(duì)于象Web下單個(gè)的Page這樣的情況我也不知道應(yīng)該是如何進(jìn)行法。所以還是用以前自己的編譯指令這種方法比較的輕車熟路點(diǎn)。
(我以前在寫一些非WEB下的東西的時(shí)候,也喜歡把測(cè)試方法與類本身寫在一個(gè)文件里,然后用編譯指令區(qū)分開,如果要測(cè)試,就直接在開發(fā)環(huán)境下選擇"Test"的那個(gè)配置,然后啟動(dòng)TestDriven來(lái)測(cè)試之,不用啟動(dòng)整個(gè)項(xiàng)目對(duì)機(jī)器省力多了,TestDriven這個(gè)東西很管用的。
如果你是用C#作開發(fā)的,在開發(fā)環(huán)境中,如果當(dāng)前這個(gè)編譯條件不滿足的時(shí)候,那些代碼都會(huì)灰掉,而且可以縮進(jìn),一點(diǎn)都不障眼)
不過(guò)我的那些伎倆,在VS2005下有點(diǎn)不管用了,現(xiàn)在WEB開發(fā)跟以前有點(diǎn)區(qū)別了。在上面找來(lái)找去都找不到地方來(lái)新增編譯指令,非WEB的開發(fā)還是可以找到地方新增的。折騰了半天,發(fā)現(xiàn)現(xiàn)在把一些設(shè)置的東西都放到Web.config里來(lái)了,條件編譯當(dāng)然也不例外。
比如現(xiàn)在要加一個(gè)”Test”的條件編譯指令。在Web.config文件中,在<compilation>這個(gè)節(jié)下加入下述語(yǔ)句就可以了。
<compilers>
<compiler language="vb"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
extension=".VB"
compilerOptions="/define:Debug=True /define:Trace=True /define:Test=True "/>
<compiler language="c#"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
extension=".cs"
compilerOptions="/d:DEBUG;TRACE;Test"/>
</compilers>
很要命的,對(duì)每一種語(yǔ)言都要加一個(gè)<compiler>,當(dāng)然如果項(xiàng)目中沒(méi)用到相應(yīng)語(yǔ)言,也可以不用理它,可以刪掉。一般C#、VB用得比較的多,我只搞了這二種。
Web.config里設(shè)置過(guò)后就不用在每一個(gè)需測(cè)試的頁(yè)面上去定義編譯指令了,不過(guò)還是沒(méi)有以前爽,以前直接在IDE工具欄上選擇一下配置就行了,現(xiàn)在硬是要寫這么多東西,而且主要還是不方便切換。比如我不要在"Test"條件下啟動(dòng)時(shí),我還得跑到Web.config里把上面一段東西注釋掉。
按照MSDN的說(shuō)法,在.Net 2.0下,<compiler>這個(gè)element是deprecated的了,我這種做法好象不是正路。
相關(guān)文章
.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時(shí)
這篇文章主要介紹了.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時(shí),本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04asp.net實(shí)現(xiàn)的MVC跨數(shù)據(jù)庫(kù)多表聯(lián)合動(dòng)態(tài)條件查詢功能示例
這篇文章主要介紹了asp.net實(shí)現(xiàn)的MVC跨數(shù)據(jù)庫(kù)多表聯(lián)合動(dòng)態(tài)條件查詢功能,結(jié)合實(shí)例形式較為詳細(xì)分析了asp.net基于MVC架構(gòu)的跨數(shù)據(jù)庫(kù)多表聯(lián)合查詢功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-02-02擴(kuò)展方法ToJSON() and ParseJSON()
AJAX編程經(jīng)常需要Object<=>JSON之間轉(zhuǎn)換,寫了二個(gè)擴(kuò)展方法: public static string ToJSON(this object obj) public static T ParseJSON<T>(this string str)2008-03-03.NET CORE3.1實(shí)現(xiàn)微信小程序發(fā)送訂閱消息
這篇文章主要介紹了.NET CORE3.1實(shí)現(xiàn)微信小程序發(fā)送訂閱消息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09.NET/C#如何判斷某個(gè)類是否是泛型類型或泛型接口的子類型詳解
這篇文章主要給大家介紹了關(guān)于.NET/C#如何判斷某個(gè)類是否是泛型類型或泛型接口的子類型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-09-09Windows下Visual Studio 2017安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows下Visual Studio 2017安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06