ASP.NET 2.0下的條件編譯

來源:互聯網
上載者:User

在Web開發中測試單個頁面的功能實在是太麻煩,從首頁使用者名稱、密碼進去後,經過一些操作後才可以來到你要測試的那個頁面。(其實無論做什麼的開發,測試單個功能都是很麻煩)。抱著小心謹慎的態度,我一般喜歡寫幾段測一次,如果每次都興師動眾的啟動整個項目來測試顯然是很不經濟的做法。

我一般會在Solution中新增一個用於測試用的配置,在其中增加一個“Test"之類的編譯指令,然後在代碼中,把一些測試條件,測試方法放到這個指令下。在Team Dev還沒有引進單元測試之類的概念的時候,我可不想用新增一個測試專案這樣的方法來做這種事情。而且對於象Web下單個的Page這樣的情況我也不知道應該是如何進行法。所以還是用以前自己的編譯指令這種方法比較的輕車熟路點。

(我以前在寫一些非WEB下的東西的時候,也喜歡把測試方法與類本身寫在一個檔案裡,然後用編譯指令區分開,如果要測試,就直接在開發環境下選擇"Test"的那個配置,然後啟動TestDriven來測試之,不用啟動整個項目對機器省力多了,TestDriven這個東西很管用的。
如果你是用C#作開發的,在開發環境中,如果當前這個編譯條件不滿足的時候,那些代碼都會灰掉,而且可以縮排,一點都不障眼)

不過我的那些伎倆,在VS2005下有點不管用了,現在WEB開發跟以前有點區別了。在上面找來找去都找不到地方來新增編譯指令,非WEB的開發還是可以找到地方新增的。折騰了半天,發現現在把一些設定的東西都放到Web.config裡來了,條件編譯當然也不例外。

比如現在要加一個”Test”的條件編譯指令。在Web.config檔案中,在<compilation>這個節下加入下述語句就可以了。

<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>

很要命的,對每一種語言都要加一個<compiler>,當然如果項目中沒用到相應語言,也可以不用理它,可以刪掉。一般C#、VB用得比較的多,我只搞了這二種。

Web.config裡設定過後就不用在每一個需測試的頁面上去定義編譯指令了,不過還是沒有以前爽,以前直接在IDE工具列上選擇一下配置就行了,現在硬是要寫這麼多東西,而且主要還是不方便切換。比如我不要在"Test"條件下啟動時,我還得跑到Web.config裡把上面一段東西注釋掉。
按照MSDN的說法,在.Net 2.0下,<compiler>這個element是deprecated的了,我這種做法好象不是正路。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.