每個開發(fā)人員現(xiàn)在應(yīng)該下載的十種必備工具.doc_第1頁
每個開發(fā)人員現(xiàn)在應(yīng)該下載的十種必備工具.doc_第2頁
每個開發(fā)人員現(xiàn)在應(yīng)該下載的十種必備工具.doc_第3頁
每個開發(fā)人員現(xiàn)在應(yīng)該下載的十種必備工具.doc_第4頁
每個開發(fā)人員現(xiàn)在應(yīng)該下載的十種必備工具.doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

每個開發(fā)人員現(xiàn)在應(yīng)該下載的十種必備工具發(fā)布日期: 7/20/2004 | 更新日期: 7/20/2004本文自發(fā)布以來已經(jīng)增加了新信息。請參閱下面的編輯更新。本文討論:用于編寫單元測試的 NUnit用于創(chuàng)建代碼文檔資料的 NDoc用于生成解決方案的 NAnt用于生成代碼的 CodeSmith用于監(jiān)視代碼的 FxCop用于編譯少量代碼的 Snippet Compiler兩種不同的轉(zhuǎn)換器工具:ASP.NET 版本轉(zhuǎn)換器和 Visual Studio .NET 項目轉(zhuǎn)換器用于生成正則表達(dá)式的 Regulator用于分析程序集的 .NET Reflector本文使用了下列技術(shù):.NET、C# 或 Visual Basic .NET、Visual Studio .NET除非您使用能夠獲得的最佳工具,否則您無法期望生成一流的應(yīng)用程序。除了像 Visual Studio.NET 這樣的著名工具以外,還可以從 .NET 社區(qū)獲得許多小型的、不太為人所知的工具。在本文中,我將向您介紹一些目前可以獲得的、面向 .NET 開發(fā)的最佳免費工具。我將引導(dǎo)您完成一個有關(guān)如何使用其中每種工具的快速教程 一些工具在許多時候可以使您節(jié)約一分鐘,而另一些工具則可能徹底改變您編寫代碼的方式。因為我要在本篇文章中介紹如此之多的不同工具,所以我無法詳盡討論其中每種工具,但您應(yīng)該了解到有關(guān)每種工具的足夠信息,以便判斷哪些工具對您的項目有用。本頁內(nèi)容Snippet CompilerRegulatorCodeSmith生成自定義模板NUnit編寫 NUnit 測試FxCopLutz Roeder 的 .NET ReflectorNDocNAnt實際運行的 NAnt轉(zhuǎn)換工具小結(jié)Snippet CompilerSnippet Compiler 是一個基于 Windows 的小型應(yīng)用程序,您可以通過它來編寫、編譯和運行代碼。如果您具有較小的代碼段,并且您不希望為其創(chuàng)建完整的 Visual Studio .NET 項目(以及伴隨該項目的所有文件),則該工具將很有用。例如,假設(shè)我希望向您說明如何從 Microsoft?.NET 框架中啟動另一個應(yīng)用程序。在 Snippet Compiler 中,我將通過新建一個能夠創(chuàng)建小型控制臺應(yīng)用程序的文件開始??梢栽谠摽刂婆_應(yīng)用程序的 Main 方法內(nèi)部創(chuàng)建代碼片段,而這正是我要在這里做的事情。下面的代碼片段演示了如何從 .NET 框架中創(chuàng)建記事本實例: System.Diagnostics.Process proc = new System.Diagnostics.Process();proc.StartInfo.FileName= notepad.exe;proc.Start();proc.WaitForExit();當(dāng)然該代碼片段本身無法編譯,而這正是 Snippet Compiler 的用武之地。圖 1 顯示了 Snippet Compiler 中的這一代碼示例。圖 1 Snippet Compiler要測試該代碼片段,只須按 play(運行)按鈕(綠色三角形),它就會在調(diào)試模式下運行。該代碼片段將生成一個彈出式控制臺應(yīng)用程序,并且將顯示記事本。當(dāng)您關(guān)閉記事本時,該控制臺應(yīng)用程序也將關(guān)閉。就我個人而言,我是在嘗試為某位向我求助的人士創(chuàng)建一個小型示例時,才發(fā)現(xiàn) Snippet Compiler 是如此寶貴的 如果不使用該工具,則我通常必須新建一個項目,確保每個部分都能編譯通過,然后將代碼片段發(fā)送給求助者,并刪除該項目。Snippet Compiler 使得這一過程變得更加容易、更加愉快。Snippet Compiler 由 Jeff Key 編寫,并且可以從 /dotnet/SnippetCompiler 下載。返回頁首RegulatorRegulator 是最后一個添加到我的頭等工具清單中的。它是一種很有特色的工具,能夠使生成和測試正則表達(dá)式變得很容易。人們對正則表達(dá)式重新產(chǎn)生了興趣,因為它們在 .NET 框架中受到很好的支持。正則表達(dá)式用來基于字符、頻率和字符順序定義字符串中的模式。它們最常見的用途是作為驗證用戶輸入有效性的手段或者作為在較大字符串中查找字符串的方法 例如,在 Web 頁上查找 URL 或電子郵件地址。Regulator 使您可以輸入一個正則表達(dá)式以及一些針對其運行該表達(dá)式的輸入內(nèi)容。這樣,在應(yīng)用程序中實現(xiàn)該正則表達(dá)式之前,您可以了解它將產(chǎn)生什么效果以及它將返回哪些種類的匹配項。圖 2 顯示了帶有簡單正則表達(dá)式的 Regulator。文檔中包含該正則表達(dá)式 在該示例中,它是 0-9*,應(yīng)該匹配一行中任意數(shù)量的數(shù)字。右下側(cè)的框中含有針對該正則表達(dá)式的輸入,而左下側(cè)的框顯示了該正則表達(dá)式在輸入內(nèi)容中找到的匹配項。在這樣的單獨應(yīng)用程序中編寫和測試正則表達(dá)式,要比嘗試在您的應(yīng)用程序中處理它們?nèi)菀椎枚?。Regulator 中的最佳功能之一是能夠在 搜索聯(lián)機(jī)正則表達(dá)式庫。例如,如果您在搜索框中輸入字符串“phone”,您將找到 20 種以上能夠匹配各種電話號碼的不同的正則表達(dá)式,包括用于英國、澳大利亞的表達(dá)式以及其他許多電話號碼。Regulator 由 Roy Osherove 編寫,并且可以在 /regulator 下載。返回頁首CodeSmithCodeSmith 是一種基于模板的代碼生成工具,它使用類似于 ASP.NET 的語法來生成任意類型的代碼或文本。與其他許多代碼生成工具不同,CodeSmith 不要求您訂閱特定的應(yīng)用程序設(shè)計或體系結(jié)構(gòu)。使用 CodeSmith,可以生成包括簡單的強(qiáng)類型集合和完整應(yīng)用程序在內(nèi)的任何東西。當(dāng)您生成應(yīng)用程序時,您經(jīng)常需要重復(fù)完成某些特定的任務(wù),例如編寫數(shù)據(jù)訪問代碼或者生成自定義集合。CodeSmith 在這些時候特別有用,因為您可以編寫模板自動完成這些任務(wù),從而不僅提高您的工作效率,而且能夠自動完成那些最為乏味的任務(wù)。CodeSmith 附帶了許多模板,包括對應(yīng)于所有 .NET 集合類型的模板以及用于生成存儲過程的模板,但該工具的真正威力在于能夠創(chuàng)建自定義模板。為了使您能夠入門,我將快速介紹一下如何生成自定義模板。返回頁首生成自定義模板CodeSmith 模板只是一些可以在任意文本編輯器中創(chuàng)建的文本文件。它們的唯一要求是用 .cst 文件擴(kuò)展名來保存它們。我將要生成的示例模板將接受一個字符串,然后基于該字符串生成一個類。創(chuàng)建模板的第一步是添加模板頭,它可聲明模板的語言、目標(biāo)語言以及簡要模板說明: 模板的下一部分是屬性聲明,在這里可聲明將在模板每次運行時指定的屬性。就該模板而言,我要使用的唯一屬性只是一個字符串,因此屬性聲明如下所示: 該屬性聲明將使 ClassName 屬性出現(xiàn)在 CodeSmith 屬性窗口中,以便可以在模板運行時指定它。下一步是實際生成模板主體,它非常類似于用 ASP.NET 進(jìn)行編碼。您可以在圖 3 中查看該模板的主體。編輯更新 6/16/2004:圖 3 中的代碼已被更新,以便對多線程操作保持安全。正如您所見,該模板接受字符串輸入并使用該類名生成單獨的類。在模板主體中,使用與 ASP.NET 中相同的起始和結(jié)束標(biāo)記。在該模板中,我只是插入屬性值,但您還可以在這些標(biāo)記內(nèi)部使用任意類型的 .NET 代碼。在該模板完成之后,您就可以通過雙擊它或者從 CodeSmith 應(yīng)用程序中打開它將其加載到 CodeSmith 中。圖 4 顯示了已經(jīng)加載到 CodeSmith 中的該模板。您可以看到左側(cè)的屬性正是我在該模板中聲明的屬性。如果我輸入“SingletonClass”作為類名,并單擊 Generate 按鈕,則將生成圖 3 的底部顯示的類。CodeSmith 使用起來相當(dāng)容易,如果能夠正確應(yīng)用,則可以產(chǎn)生一些令人難以置信的結(jié)果。面向代碼生成的應(yīng)用程序中最常見的部分之一是數(shù)據(jù)訪問層。CodeSmith 包括一個名為 SchemaExplorer 的特殊的程序集,可用來從表、存儲過程或幾乎任何其他 SQL Server? 對象生成模板。CodeSmith 由 Eric J. Smith 編寫,并且可以在 /codesmith 下載。返回頁首NUnitNUnit 是為 .NET 框架生成的開放源代碼單元測試框架。NUnit 使您可以用您喜歡的語言編寫測試,從而測試應(yīng)用程序的特定功能。當(dāng)您首次編寫代碼時,單元測試是一種測試代碼功能的很好方法,它還提供了一種對應(yīng)用程序進(jìn)行回歸測試的方法。NUnit 應(yīng)用程序提供了一個用于編寫單元測試的框架,以及一個運行這些測試和查看結(jié)果的圖形界面。返回頁首編寫 NUnit 測試作為示例,我將測試 .NET 框架中 Hashtable 類的功能,以確定是否可以添加兩個對象并且隨后檢索這些對象。我的第一步是添加對 NUnit.Framework 程序集的引用,該程序集將賦予我對 NUnit 框架的屬性和方法的訪問權(quán)。接下來,我將創(chuàng)建一個類并用 TestFixture 屬性標(biāo)記它。該屬性使 NUnit 可以知道該類包含 NUnit 測試: using System;using System.Collections;using NUnit.Framework;namespace NUnitExample TestFixture public class HashtableTest public HashtableTest() 下一步,我將創(chuàng)建一個方法并用 Test 屬性標(biāo)記它,以便 NUnit 知道該方法是一個測試。然后,我將建立一個 Hashtable 并向其添加兩個值,再使用 Assert.AreEqual 方法查看我是否可以檢索到與我添加到 Hashtable 的值相同的值,如下面的代碼所示: Testpublic void HashtableAddTest() Hashtable ht = new Hashtable(); ht.Add(Key1, Value1); ht.Add(Key2, Value2); Assert.AreEqual(Value1, htKey1, Wrong object returned!); Assert.AreEqual(Value2, htKey2, Wrong object returned!);這將確認(rèn)我可以首先向 Hashtable 中添加值并隨后檢索相應(yīng)的值 這是一個很簡單的測試,但能夠表現(xiàn) NUnit 的功能。存在許多測試類型以及各種 Assert 方法,可使用它們來測試代碼的每個部分。要運行該測試,我需要生成項目,在 NUnit 應(yīng)用程序中打開生成的程序集,然后單擊 Run 按鈕。圖 5 顯示了結(jié)果。當(dāng)我看到那個大的綠色條紋時,我有一種興奮和頭暈的感覺,因為它讓我知道測試已經(jīng)通過了。這個簡單的示例表明 NUnit 和單元測試是多么方便和強(qiáng)大。由于能夠編寫可以保存的單元測試,并且每當(dāng)您更改代碼時都可以重新運行該單元測試,您不僅可以更容易地檢測到代碼中的缺陷,而且最終能夠交付更好的應(yīng)用程序。圖 5 NUnitNUnit 是一個開放源代碼項目,并且可以從 下載。還有一個優(yōu)秀的 NUnit Visual Studio .NET 外接程序,它使您可以直接從 Visual Studio 中運行單元測試。您可以在 /projects/nunitaddin 找到它。有關(guān) NUnit 及其在測試驅(qū)動開發(fā)中的地位的詳細(xì)信息,請參閱文章“Test-Driven C#: Improve the Design and Flexibility of Your Project with Extreme Programming Techniques”(MSDN Magazine 2004 年 4 月刊)。返回頁首FxCop.NET 框架非常強(qiáng)大,這意味著存在創(chuàng)建優(yōu)秀應(yīng)用程序的極大可能,但是也同樣存在創(chuàng)建劣質(zhì)程序的可能。FxCop 是有助于創(chuàng)建更好的應(yīng)用程序的工具之一,它所采用的方法是:使您能夠分析程序集,并使用一些不同的規(guī)則來檢查它是否符合這些規(guī)則。FxCop 隨附了由 Microsoft 創(chuàng)建的固定數(shù)量的規(guī)則,但您也可以創(chuàng)建并包括您自己的規(guī)則。例如,如果您決定所有的類都應(yīng)該具有一個不帶任何參數(shù)的默認(rèn)構(gòu)造函數(shù),則可以編寫一條規(guī)則,以確保程序集的每個類上都具有一個構(gòu)造函數(shù)。這樣,無論是誰編寫該代碼,您都將獲得一定程度的一致性。如果您需要有關(guān)創(chuàng)建自定義規(guī)則的詳細(xì)信息,請參閱 John Robbins 的有關(guān)該主題的 Bugslayer 專欄文章(MSDN Magazine 2004 年 6 月刊)。那么,讓我們觀察一下實際運行的 FxCop,并且看一下它在我一直在處理的 NUnitExample 程序集中找到哪些錯誤。當(dāng)您打開 FxCop 時,您首先需要創(chuàng)建一個 FxCop 項目,然后向其添加您要測試的程序集。在將該程序集添加到項目以后,就可以按 Analyze,F(xiàn)xCop 將分析該程序集。圖 6 中顯示了在該程序集中找到的錯誤和警告。FxCop 在我的程序集中找到了幾個問題。您可以雙擊某個錯誤以查看詳細(xì)信息,包括規(guī)則說明以及在哪里可以找到更多信息。(您可以做的一件有趣的事情是在框架程序集上運行 FxCop 并查看發(fā)生了什么事情。)FxCop 可以幫助您創(chuàng)建更好的、更一致的代碼,但它無法補(bǔ)償?shù)土拥膽?yīng)用程序設(shè)計或非常簡單拙劣的編程。FxCop 也不能替代對等代碼檢查,但是因為它可以在進(jìn)行代碼檢查之前捕獲大量錯誤,所以您可以花費更多時間來解決嚴(yán)重的問題,而不必?fù)?dān)心命名約定。FxCop 由 Microsoft 開發(fā),并且可以從 /team/fxcop 下載。返回頁首Lutz Roeder 的 .NET Reflector下一個必不可少的工具稱為 .NET Reflector,它是一個類瀏覽器和反編譯器,可以分析程序集并向您展示它的所有秘密。.NET 框架向全世界引入了可用來分析任何基于 .NET 的代碼(無論它是單個類還是完整的程序集)的反射概念。反射還可以用來檢索有關(guān)特定程序集中包含的各種類、方法和屬性的信息。使用 .NET Reflector,您可以瀏覽程序集的類和方法,可以分析由這些類和方法生成的 Microsoft 中間語言 (MSIL),并且可以反編譯這些類和方法并查看 C# 或 Visual Basic .NET 中的等價類和方法。為了演示 .NET Reflector 的工作方式,我將加載和分析前面已經(jīng)顯示的 NUnitExample 程序集。圖 7 顯示了 .NET Reflector 中加載的該程序集。圖 7 NUnitExample 程序集在 .NET Reflector 內(nèi)部,有各種可用來進(jìn)一步分析該程序集的工具。要查看構(gòu)成某個方法的 MSIL,請單擊該方法并從菜單中選擇 Disassembler。除了能夠查看 MSIL 以外,您還可以通過選擇 Tools 菜單下的 Decompiler 來查看該方法的 C# 形式。通過在 Languages 菜單下更改您的選擇,您還可以查看該方法被反編譯到 Visual Basic .NET 或 Delphi 以后的形式。以下為 .NET Reflector 生成的代碼: public void HashtableAddTest() Hashtable hashtable1; hashtable1 = new Hashtable(); hashtable1.Add(Key1, Value1); hashtable1.Add(Key2, Value2); Assert.AreEqual(Value1, hashtable1Key1, Wrong object returned!); Assert.AreEqual(Value2, hashtable1Key2, Wrong object returned!);前面的代碼看起來非常像我為該方法實際編寫的代碼。以下為該程序集中的實際代碼: public void HashtableAddTest() Hashtable ht = new Hashtable(); ht.Add(Key1, Value1); ht.Add(Key2, Value2); Assert.AreEqual(Value1, htKey1, Wrong object returned!); Assert.AreEqual(Value2, htKey2, Wrong object returned!);盡管上述代碼中存在一些小的差異,但它們在功能上是完全相同的。雖然該示例是一種顯示實際代碼與反編譯代碼之間對比的好方法,但在我看來,它并不代表 .NET Reflector 所具有的最佳用途 分析 .NET 框架程序集和方法。.NET 框架提供了許多執(zhí)行類似操作的不同方法。例如,如果您需要從 XML 中讀取一組數(shù)據(jù),則存在多種使用 XmlDocument、XPathNavigator 或 XmlReader 完成該工作的不同方法。通過使用 .NET Reflector,您可以查看 Microsoft 在編寫數(shù)據(jù)集的 ReadXml 方法時使用了什么,或者查看他們在從配置文件讀取數(shù)據(jù)時做了哪些工作。.NET Reflector 還是一個了解以下最佳實施策略的優(yōu)秀方法:創(chuàng)建諸如 HttpHandlers 或配置處理程序之類的對象,因為您可以了解到 Microsoft 工作組實際上是如何在框架中生成這些對象的。.NET Reflector 由 Lutz Roeder 編寫,并且可以從 /roeder/dotnet 下載。返回頁首NDoc編寫代碼文檔資料幾乎總是一項令人畏懼的任務(wù)。我所說的不是早期設(shè)計文檔,甚至也不是更為詳細(xì)的設(shè)計文檔;我說的是記錄類上的各個方法和屬性。NDoc 工具能夠使用反射來分析程序集,并使用從 C# XML 注釋生成的 XML 自動為代碼生成文檔資料。XML 注釋僅適用于 C#,但有一個名為 VBCommenter 的 Visual Studio .NET Power Toy,它能夠為 Visual Basic .NET 完成類似的工作。此外,下一版本的 Visual Studio 將為更多語言支持 XML 注釋。使用 NDoc 時,您仍然在編寫代碼的技術(shù)文檔,但您是在編寫代碼的過程中完成了文檔編寫工作(在 XML 注釋中),而這更容易忍受。使用 NDoc 時,第一步是為您的程序集打開 XML 注釋生成功能。右鍵單擊該項目并選擇 Properties | Configuration Properties | Build,然后在 XML Documentation File 選項中輸入用于保存 XML 文件的路徑。當(dāng)該項目生成時,將創(chuàng)建一個 XML 文件,其中包含所有 XML 注釋。下面是 NUnit 示例中的一個用 XML 編寫了文檔的方法: / / This test adds a number of values to the Hashtable collection / and then retrieves those values and checks if they match./ Testpublic void HashtableAddTest() /Method Body Here有關(guān)該方法的 XML 文檔資料將被提取并保存在 XML 文件中,如下所示: This test adds a number of values to the Hashtable collection and then retrieves those values and checks if they match. NDoc 使用反射來考察您的程序集,然后讀取該文檔中的 XML,并且將它們進(jìn)行匹配。NDoc 使用該數(shù)據(jù)來創(chuàng)建任意數(shù)量的不同文檔格式,包括 HTML 幫助文件 (CHM)。在生成 XML 文件以后,下一步是將程序集和 XML 文件加載到 NDoc 中,以便可以對它們進(jìn)行處理。通過打開 NDoc 并單擊 Add 按鈕,可以容易地完成該工作。在將程序集和 XML 文件加載到 NDoc 中并且使用可用的屬性范圍自定義輸出以后,單擊 Generate 按鈕將啟動生成文檔資料的過程。使用默認(rèn)的屬性,NDoc 可以生成一些非常吸引人并且實用的 .html 和 .chm 文件,從而以快速有效的方式自動完成原來非常乏味的任務(wù)。NDoc 是一個開放源代碼項目,并且可以從 下載。返回頁首NAntNAnt 是一個基于 .NET 的生成工具,與當(dāng)前版本的 Visual Studio .NET 不同,它使得為您的項目創(chuàng)建生成過程變得非常容易。當(dāng)您擁有大量從事單個項目的開發(fā)人員時,您不能依賴于從單個用戶的座位進(jìn)行生成。您也不希望必須定期手動生成該項目。您更愿意創(chuàng)建每天晚上運行的自動生成過程。NAnt 使您可以生成解決方案、復(fù)制文件、運行 NUnit 測試、發(fā)送電子郵件,等等。遺憾的是,NAnt 缺少漂亮的圖形界面,但它的確具有可以指定應(yīng)該在生成過程中完成哪些任務(wù)的控制臺應(yīng)用程序和 XML 文件。注意,MSBuild(屬于 Visual Studio 2005 的新的生成平臺)為每種健壯的生成方案進(jìn)行了準(zhǔn)備,并且由基于 XML 的項目文件以類似的方式驅(qū)動。返回頁首實際運行的 NAnt在該示例中,我將為前面創(chuàng)建的 NUnitExample 解決方案創(chuàng)建一個 NAnt 版本文件。首先,我需要創(chuàng)建一個具有 .build 擴(kuò)展名的 XML 文件,將其放在我的項目的根目錄中,然后向該文件的頂部添加一個 XML 聲明。我需要添加到該文件的第一個標(biāo)記是 project 標(biāo)記: The NUnit Example Project項目標(biāo)記還用于設(shè)置項目名稱、默認(rèn)目標(biāo)以及基目錄。Description 標(biāo)記用于設(shè)置該項目的簡短說明。接下來,我將添加 property 標(biāo)記,該標(biāo)記可用于將設(shè)置存儲到單個位置(隨后可以從文件中的任意位置訪問該位置)。在該例中,我將創(chuàng)建一個名為 debug 的屬性,我可以隨后將其設(shè)置為 true 或 false,以反映我是否要在調(diào)試配置下編譯該項目。(最后,這一特定屬性并未真正影響如何生成該項目;它只是您設(shè)置的一個變量,當(dāng)您真正確定了如何生成該項目時將讀取該變量。)接下來,我需要創(chuàng)建一個 target 標(biāo)記。一個項目可以包含多個可在 NAnt 運行時指定的 target。如果未指定 target,則使用默認(rèn) target(我在 project 元素中設(shè)置的 target)。在該示例中,默認(rèn) target 是 build。讓我們觀察一下 target 元素,它將包含大多數(shù)生成信息: 在 target 元素內(nèi),我將把 target 的名稱設(shè)置為 build,并且創(chuàng)建有關(guān)該 target 將做哪些工作的說明。我還將創(chuàng)建一個 csc 元素,該元素用于指定應(yīng)該傳遞給 csc C# 編譯器的數(shù)據(jù)。讓我們看一下該 csc 元素: 首先,我必須設(shè)置該 csc 元素的 target。在該例中,我將創(chuàng)建一個 .dll 文件,因此我將 target 設(shè)置為 library。接下來,我必須設(shè)置 csc 元素的 output,它是將要創(chuàng)建 .dll 文件的位置。最后,我需要設(shè)置 debug 屬性,它確定了是否在調(diào)試中編譯該項目。因為我在前面創(chuàng)建了一個用于存儲該值的屬性,所以我可以使用下面的字符串來訪問該屬性的值:$debug。Csc 元素還包含一些子元素。我需要創(chuàng)建兩個元素:references 元素將告訴 NAnt 需要為該項目引用哪些程序集,sources 元素告訴 NAnt 要在生成過程中包含哪些文件。在該示例中,我引用了 NUnit.Framework.dll 程序集并包含了 HashtableTest.cs 文件。圖 8 中顯示了完整的生成文件。(您通常還要創(chuàng)建一個干凈的 target,用于刪除生成的文件,但為了簡潔起見,我已經(jīng)將其省略。)要生成該文件,我需要轉(zhuǎn)到我的項目的根目錄(生成文件位于此處),然后從該位置執(zhí)行 nant.exe。如果生成成功,您可以在該應(yīng)用程序的 bin 目錄中找到 .dll 和 .pdb 文件。盡管使用 NAnt 肯定不像在 Visual Studio 中單擊 Build 那樣簡單,但它仍然是一種非常強(qiáng)大的工具,可用于開發(fā)按自動計劃運行的生成過程。NAnt 還包括一些有用的功能,例如能夠運行單元測試或者復(fù)制附加文件(這些功能沒有受到當(dāng)前 Visual Studio 生成過程的支持)。NAnt 是一個開放源代碼項目,并且可以從 下載。返回頁首轉(zhuǎn)換工具我已經(jīng)將兩個獨立的工具合在一起放在標(biāo)題“轉(zhuǎn)換工具”下面。這兩個工具都非常簡單,但又可能極為有用。第一個工具是 ASP.NET 版本轉(zhuǎn)換器,它可用于轉(zhuǎn)換 ASP.NET(虛擬目錄在它下面運行)的版本。第二個工具是 Visual Studio Converter,它可用于將項目文件從 Visual Studio .NET 2002 轉(zhuǎn)換到 Visual Studio .NET 2003。當(dāng) IIS 處理請求時,它會查看正在請求的文件的擴(kuò)展名,然后基于該 Web 站點或虛擬目錄的擴(kuò)展名映射,將請求委派給 ISAPI 擴(kuò)展或者自己處理該請求。這正是 ASP.NET 的工作方式;將為所有 ASP.NET 擴(kuò)展名注冊擴(kuò)展名映射,并將這些擴(kuò)展名映射導(dǎo)向 aspnet_isapi.dll。這種工作方式是完美無缺的,除非您安裝了 ASP.NET 1.1 它會將擴(kuò)展名映射升級到新版本的 aspnet_isapi.dll。當(dāng)在 ASP.NET 1.0 上生成的應(yīng)用程序試圖用 1.1 版運行時,這會導(dǎo)致錯誤。要解決該問題,可以將所有擴(kuò)展名映射重新轉(zhuǎn)換到 1.0 版的 aspnet_isapi.dll,但是由于有 18 種擴(kuò)展名映射,所以手動完成這一工作將很枯燥。這正是 ASP.NET 版本轉(zhuǎn)換器可以發(fā)揮作用的時候。使用這一小型實用工具,可以轉(zhuǎn)換任何單個 ASP.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論