.Net开发人员应该下载的十种必备工具(一)
·用于編寫單元測試的 NUnit
·用于創(chuàng)建代碼文檔資料的 NDoc
·用于生成解決方案的 NAnt
·用于生成代碼的 CodeSmith
·用于監(jiān)視代碼的 FxCop
·用于編譯少量代碼的 Snippet Compiler
·兩種不同的轉(zhuǎn)換器工具:ASP.NET 版本轉(zhuǎn)換器和 Visual Studio .NET 項(xiàng)目轉(zhuǎn)換器
·用于生成正則表達(dá)式的 Regulator
·用于分析程序集的 .NET Reflector
本文使用了下列技術(shù):
.NET、C# 或 Visual Basic .NET、Visual Studio .NET
除非您使用能夠獲得的最佳工具,否則您無法期望生成一流的應(yīng)用程序。除了像 Visual Studio?.NET 這樣的著名工具以外,還可以從 .NET 社區(qū)獲得許多小型的、不太為人所知的工具。在本文中,我將向您介紹一些目前可以獲得的、面向 .NET 開發(fā)的最佳免費(fèi)工具。我將引導(dǎo)您完成一個(gè)有關(guān)如何使用其中每種工具的快速教程 — 一些工具在許多時(shí)候可以使您節(jié)約一分鐘,而另一些工具則可能徹底改變您編寫代碼的方式。因?yàn)槲乙诒酒恼轮薪榻B如此之多的不同工具,所以我無法詳盡討論其中每種工具,但您應(yīng)該了解到有關(guān)每種工具的足夠信息,以便判斷哪些工具對您的項(xiàng)目有用。
Snippet Compiler
Snippet Compiler 是一個(gè)基于 Windows? 的小型應(yīng)用程序,您可以通過它來編寫、編譯和運(yùn)行代碼。如果您具有較小的代碼段,并且您不希望為其創(chuàng)建完整的 Visual Studio .NET 項(xiàng)目(以及伴隨該項(xiàng)目的所有文件),則該工具將很有用。
例如,假設(shè)我希望向您說明如何從 Microsoft?.NET 框架中啟動另一個(gè)應(yīng)用程序。在 Snippet Compiler 中,我將通過新建一個(gè)能夠創(chuàng)建小型控制臺應(yīng)用程序的文件開始。可以在該控制臺應(yīng)用程序的 Main 方法內(nèi)部創(chuàng)建代碼片段,而這正是我要在這里做的事情。下面的代碼片段演示了如何從 .NET 框架中創(chuàng)建記事本實(shí)例:
| 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(運(yùn)行)按鈕(綠色三角形),它就會在調(diào)試模式下運(yùn)行。該代碼片段將生成一個(gè)彈出式控制臺應(yīng)用程序,并且將顯示記事本。當(dāng)您關(guān)閉記事本時(shí),該控制臺應(yīng)用程序也將關(guān)閉。
就我個(gè)人而言,我是在嘗試為某位向我求助的人士創(chuàng)建一個(gè)小型示例時(shí),才發(fā)現(xiàn) Snippet Compiler 是如此寶貴的 — 如果不使用該工具,則我通常必須新建一個(gè)項(xiàng)目,確保每個(gè)部分都能編譯通過,然后將代碼片段發(fā)送給求助者,并刪除該項(xiàng)目。Snippet Compiler 使得這一過程變得更加容易、更加愉快。
Snippet Compiler 由 Jeff Key 編寫,并且可以從 http://www.sliver.comhttp://dotnet.chinaitlab.com/SnippetCompiler 下載。
Regulator
Regulator 是最后一個(gè)添加到我的頭等工具清單中的。它是一種很有特色的工具,能夠使生成和測試正則表達(dá)式變得很容易。人們對正則表達(dá)式重新產(chǎn)生了興趣,因?yàn)樗鼈冊?.NET 框架中受到很好的支持。正則表達(dá)式用來基于字符、頻率和字符順序定義字符串中的模式。它們最常見的用途是作為驗(yàn)證用戶輸入有效性的手段或者作為在較大字符串中查找字符串的方法 — 例如,在 Web 頁上查找 URL 或電子郵件地址。
Regulator 使您可以輸入一個(gè)正則表達(dá)式以及一些針對其運(yùn)行該表達(dá)式的輸入內(nèi)容。這樣,在應(yīng)用程序中實(shí)現(xiàn)該正則表達(dá)式之前,您可以了解它將產(chǎn)生什么效果以及它將返回哪些種類的匹配項(xiàng)。圖 2 顯示了帶有簡單正則表達(dá)式的 Regulator。
圖 2
文檔中包含該正則表達(dá)式 — 在該示例中,它是 [0-9]*,應(yīng)該匹配一行中任意數(shù)量的數(shù)字。右下側(cè)的框中含有針對該正則表達(dá)式的輸入,而左下側(cè)的框顯示了該正則表達(dá)式在輸入內(nèi)容中找到的匹配項(xiàng)。在這樣的單獨(dú)應(yīng)用程序中編寫和測試正則表達(dá)式,要比嘗試在您的應(yīng)用程序中處理它們?nèi)菀椎枚唷?/p>
Regulator 中的最佳功能之一是能夠在 regexlib.com 搜索聯(lián)機(jī)正則表達(dá)式庫。例如,如果您在搜索框中輸入字符串“phone”,您將找到 20 種以上能夠匹配各種電話號碼的不同的正則表達(dá)式,包括用于英國、澳大利亞的表達(dá)式以及其他許多電話號碼。Regulator 由 Roy Osherove 編寫,并且可以在 http://royo.is-a-geek.com/regulator 下載。
CodeSmith
CodeSmith 是一種基于模板的代碼生成工具,它使用類似于 ASP.NET 的語法來生成任意類型的代碼或文本。與其他許多代碼生成工具不同,CodeSmith 不要求您訂閱特定的應(yīng)用程序設(shè)計(jì)或體系結(jié)構(gòu)。使用 CodeSmith,可以生成包括簡單的強(qiáng)類型集合和完整應(yīng)用程序在內(nèi)的任何東西。
當(dāng)您生成應(yīng)用程序時(shí),您經(jīng)常需要重復(fù)完成某些特定的任務(wù),例如編寫數(shù)據(jù)訪問代碼或者生成自定義集合。CodeSmith 在這些時(shí)候特別有用,因?yàn)槟梢跃帉懩0遄詣油瓿蛇@些任務(wù),從而不僅提高您的工作效率,而且能夠自動完成那些最為乏味的任務(wù)。CodeSmith 附帶了許多模板,包括對應(yīng)于所有 .NET 集合類型的模板以及用于生成存儲過程的模板,但該工具的真正威力在于能夠創(chuàng)建自定義模板。為了使您能夠入門,我將快速介紹一下如何生成自定義模板。
生成自定義模板
CodeSmith 模板只是一些可以在任意文本編輯器中創(chuàng)建的文本文件。它們的唯一要求是用 .cst 文件擴(kuò)展名來保存它們。我將要生成的示例模板將接受一個(gè)字符串,然后基于該字符串生成一個(gè)類。創(chuàng)建模板的第一步是添加模板頭,它可聲明模板的語言、目標(biāo)語言以及簡要模板說明:
| <%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Car Template" %>? |
? 模板的下一部分是屬性聲明,在這里可聲明將在模板每次運(yùn)行時(shí)指定的屬性。就該模板而言,我要使用的唯一屬性只是一個(gè)字符串,因此屬性聲明如下所示:
| <%@ Property Name="ClassName" Type="String" Category="Context" Description="Class Name" %> |
該屬性聲明將使 ClassName 屬性出現(xiàn)在 CodeSmith 屬性窗口中,以便可以在模板運(yùn)行時(shí)指定它。下一步是實(shí)際生成模板主體,它非常類似于用 ASP.NET 進(jìn)行編碼。以下是該模板的主體:
Custom Template
| public sealed class <%= ClassName %> { private static volatile <%= ClassName %> _instance; private <%= ClassName %>() {} private static readonly object _syncRoot = new object(); public static <%= ClassName %> Value { get { if (_instance == null) { lock(_syncRoot) { if (_instance == null) { _instance = new <%= ClassName %>(); } } } return _instance; } } } |
SingletonClass
| public sealed class SingletonClass { |
正如您所見,該模板接受字符串輸入并使用該類名生成單獨(dú)的類。在模板主體中,使用與 ASP.NET 中相同的起始和結(jié)束標(biāo)記。在該模板中,我只是插入屬性值,但您還可以在這些標(biāo)記內(nèi)部使用任意類型的 .NET 代碼。在該模板完成之后,您就可以通過雙擊它或者從 CodeSmith 應(yīng)用程序中打開它將其加載到 CodeSmith 中。圖 4 顯示了已經(jīng)加載到 CodeSmith 中的該模板。
圖 4
您可以看到左側(cè)的屬性正是我在該模板中聲明的屬性。如果我輸入“SingletonClass”作為類名,并單擊 Generate 按鈕,則將生成模板代碼底部顯示的類。
CodeSmith 使用起來相當(dāng)容易,如果能夠正確應(yīng)用,則可以產(chǎn)生一些令人難以置信的結(jié)果。面向代碼生成的應(yīng)用程序中最常見的部分之一是數(shù)據(jù)訪問層。CodeSmith 包括一個(gè)名為 SchemaExplorer 的特殊的程序集,可用來從表、存儲過程或幾乎任何其他 SQL Server? 對象生成模板。
CodeSmith 由 Eric J. Smith 編寫,并且可以在 http://www.ericjsmith.net/codesmith 下載。
From:? http://www.godist.cn/blog/article.asp?id=395總結(jié)
以上是生活随笔為你收集整理的.Net开发人员应该下载的十种必备工具(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Execl导出大量数据出现内存溢出的bu
- 下一篇: 记录ie下报XMLHttpRequest