幾年前MSDN上的一篇文章《Ten Must-Have Tools Every Developer Should Download Now》中介紹了.NET開(kāi)發(fā)中必備的十大工具,幾年過(guò)去之后,.NET Framework發(fā)展到了3.5版本,這些工具中,有些已經(jīng)轉向商業(yè)化,有些因為推出了新的工具而已經(jīng)停止了開(kāi)發(fā),有些則繼續免費提供給開(kāi)發(fā)者使用。
筆者對.NET開(kāi)發(fā)中必備的十大工具重新做了整理,推出新版.NET開(kāi)發(fā)必備十大工具。本文只是簡(jiǎn)單的對其進(jìn)行介紹,更加詳細的用法我將會(huì )陸續進(jìn)行講解。
1.Snippet Compiler
Snippet Compiler是一個(gè)基于 Windows 的小型應用程序,你可以通過(guò)它來(lái)編寫(xiě)、編譯和運行代碼。如果你具有較小的代碼段,并且你不想創(chuàng )建完整的 Visual Studio .NET 項目(以及該項目附帶的所有文件),則該工具會(huì )很有用?,F在Snippet Compiler已經(jīng)支持.NET Framework 3.5,最新版本為Snippet Compiler Live 2008 Ultimate Edition for Developers (Alpha),如下圖所示:
官方主頁(yè):
http://www.sliver.com/dotnet/SnippetCompiler/2.Microsoft Source Analysis for C#
Microsoft Source Analysis for C#是一款C#(不支持VB.NET)代碼規范檢查工具,前身是微軟內部代碼規范檢查和代碼格式強制工具StyleCop,目的是幫助項目團隊執行一系列常用的源代碼格式規范,它會(huì )根據預定義的C#代碼格式的最佳實(shí)踐進(jìn)行檢查,與FxCop不同的是它直接對源代碼進(jìn)行檢查,且并不提供靈活的規則設置,強制開(kāi)發(fā)者使用相同的習慣進(jìn)行C#代碼的編寫(xiě)。如下圖所示:
3.GhostDoc
GhostDoc 是Visual Studio的一個(gè)免費插件,可以幫助開(kāi)發(fā)者生成比較完整規范的XML格式代碼注釋?zhuān)绻愕拇a遵循微軟類(lèi)庫開(kāi)發(fā)人員設計規范,由它自動(dòng)產(chǎn)生的注釋就已經(jīng)完全可以很好地表達開(kāi)發(fā)者創(chuàng )建的方法或者屬性的意圖,無(wú)需手工再進(jìn)行修改。有了這些標準的XML注釋?zhuān)覀兛梢允褂梦④浀奈臋n工具Sandcastle 生成專(zhuān)業(yè)級別的幫助文檔。如我們有這樣一段代碼:
public bool Add(string item)
{
//......
}
public void AppendHtmlText(IHtmlProvider htmlProvider)
{
//......
}
使用GhostDoc生成的注釋如下:
/// <summary>
/// Adds the specified item.
/// </summary>
/// <param name="item">The item.</param>
/// <returns></returns>
public bool Add(string item)
{
//......
}
/// <summary>
/// Appends the HTML text.
/// </summary>
/// <param name="htmlProvider">The HTML provider.</param>
public void AppendHtmlText(IHtmlProvider htmlProvider)
{
//......
}
官方主頁(yè):
http://www.roland-weigelt.de/ghostdoc/4.Sandcastle
Sandcastle 是微軟發(fā)布的一個(gè)幫助文檔生成工具,它通過(guò)反射程序集中的源代碼和添加代碼到中的XML注釋來(lái)創(chuàng )建專(zhuān)業(yè)級別的幫助文檔。Sandcastle于2006年推出,它的面世也使得曾經(jīng)列入.NET開(kāi)發(fā)必備十大工具之一的文檔生成工具NDoc的作者Kevin Downs在2006年7月宣告不再投入NDoc Open Source Project的開(kāi)發(fā)。生成的文檔效果如下圖所示:
5.Nunit
NUnit 是為.NET框架生成的開(kāi)放源代碼單元測試框架。NUnit 使你可以用你喜歡的語(yǔ)言編寫(xiě)測試,從而測試應用程序的特定功能。當你首次編寫(xiě)代碼時(shí),單元測試是一種測試代碼功能的很好方法,它還提供了一種對應用程序進(jìn)行回歸測試的方法。NUnit應用程序提供了一個(gè)用于編寫(xiě)單元測試的框架,以及一個(gè)運行這些測試和查看結果的圖形界面。
官方主頁(yè):
http://www.nunit.org6.MyGeneration
作為.NET開(kāi)發(fā)人員,手邊有一款代碼生成工具必不可少。舊版.NET開(kāi)發(fā)必備十大工具中,作者曾經(jīng)推薦了非常著(zhù)名的CodeSmith,不幸的是現在 CodeSmith已經(jīng)商業(yè)化,需要花錢(qián)購買(mǎi);幸運的是我們又有一款免費并開(kāi)源的代碼生成工具選擇MyGeneration,它的功能絲毫不亞于 CodeSmith,完全基于模板引擎進(jìn)行代碼的生成,如下圖所示:
官方主頁(yè):
http://sourceforge.net/projects/mygeneration7.Reflector for .NET
相信大名鼎鼎的Reflector for .NET大家都已經(jīng)用過(guò)了,幾年前它已經(jīng)位于.NET開(kāi)發(fā)必備十大工具榜,現在自然也不能例外。它是一個(gè)類(lèi)瀏覽器和反編譯器,可以分析程序集并向你展示它的所有秘密。使用Reflector for .NET可以瀏覽程序集的類(lèi)和方法,可以分析由這些類(lèi)和方法生成的 Microsoft 中間語(yǔ)言 (MSIL),并且可以反編譯這些類(lèi)和方法并查看 C# 或 Visual Basic.NET 中的等價(jià)類(lèi)和方法。經(jīng)過(guò)多年的發(fā)展,Reflector for .NET已經(jīng)發(fā)展到了5.1版本,并且提供了相當豐富的插件,利用這些插件我們可以瀏覽Silverlight程序結構、瀏覽WPF資源文件、與 TestDriven.net集成等。如下圖所示:
8.The Regulator
The Regulator能夠使生成和測試正則表達式變得很容易,它允許你輸入一個(gè)正則表達式以及一些針對其運行該表達式的輸入。這樣,在應用程序中實(shí)現該正則表達式之前,你便可以了解它將產(chǎn)生什么效果以及它將返回哪些種類(lèi)的匹配項。另外它還提供了正則表達式庫管理功能,在線(xiàn)更新正則表達式庫,可以在 RegexLib.com上搜索需要的正則表達式,如下圖所示:
官方主頁(yè):
http://sourceforge.net/projects/regulator/9.LINQPad
隨著(zhù)在.NET Framework 3.5中對于LINQ的支持,越來(lái)越多的開(kāi)發(fā)者在開(kāi)發(fā)中使用了LINQ to SQL,但是編寫(xiě)LINQ to SQL查詢(xún)似乎又成了一件很麻煩的事情,好在我們還有LINQPad這個(gè)工具,用來(lái)編寫(xiě)LINQ查詢(xún),不僅僅是LINQ to SQL,同時(shí)它也支持LINQ to XML、LINQ to Objects,另外LINQPad是完全免費的且無(wú)需安裝,只要下載它的可執行文件就可以了。官方主頁(yè):
http://www.linqpad.net/10.NAnt
NAnt 是一個(gè)基于 .NET 的生成工具,與當前版本的 Visual Studio .NET 不同,它使得為你的項目創(chuàng )建生成過(guò)程變得非常容易。當你擁有大量從事單個(gè)項目的開(kāi)發(fā)人員時(shí),你不能依賴(lài)于從單個(gè)用戶(hù)的座位進(jìn)行生成。你也不希望必須定期手動(dòng)生成該項目。你更愿意創(chuàng )建每天晚上運行的自動(dòng)生成過(guò)程。NAnt 使你可以生成解決方案、復制文件、運行 NUnit 測試、發(fā)送電子郵件,等等。遺憾的是,NAnt 缺少漂亮的圖形界面,但它的確具有可以指定應該在生成過(guò)程中完成哪些任務(wù)的控制臺應用程序和 XML 文件。目前NAnt已經(jīng)支持.NET Framework 3.5,它的最新版本是0.86 Beta 1。官方主頁(yè):
http://nant.sourceforge.net/ 總結
以上工具筆者在原有的.NET開(kāi)發(fā)必備十大工具基礎之上,加以整理,添加了一些新的優(yōu)秀的工具,也許有朋友會(huì )說(shuō),還有很多比這些工具更優(yōu)秀的工具,沒(méi)錯,是有這樣的工具,但是筆者要說(shuō)的是,上述十個(gè)工具,不僅考慮它的實(shí)用性,有一點(diǎn)更為重要的是,它們都是免費的,而且有很多是開(kāi)源的!
為了便于大家對比,此處列出舊版.NET開(kāi)發(fā)必備十大工具:
代碼段編譯工具:Snippet Compiler
正則表達式工具:Regulator
代碼生成工具:CodeSmith(已經(jīng)商業(yè)化)
編寫(xiě)單元測試工具:NUnit
監視代碼工具:FxCop
程序集分析檢查工具:Reflector
創(chuàng )建代碼文檔工具:NDoc(已經(jīng)停止開(kāi)發(fā))
生成解決方案工具:NAnt
ASPNET版本轉換器
VSNET項目轉換器