在進行C#應用程序開發時,除了Visual Studio 2005等微軟提供的工具以外,還有許多其他的工具可用。這些工具在某些特定的方面提供了獨到的解決方案,成為開發人員必不可少的開發利器。
集成開發環境軟件——SharpDevelop
SharpDevelop是另外一款優秀的集成開發環境,支持.NET Framework下的C#、VB.NET等語言項目的開發。SharpDevelop不僅免費,而且開源。
2000年12月15日,SharpDevelop發布Beta .52版,隨著版本的升級,2006年7月17日已經放出了2.0 Final版,其版本仍然在不斷升級。隨著版本的升級,功能也在不斷的改進,SharpDevelop提供了窗體設計器,集成調試功能,代碼自動完成功能,集成的NUnit(一種單元測試框架)支持等非常多的特性。各種功能的不斷完善,使得SharpDevleop成為除Visual Studio 2005之外的另一種選擇。另外,由於SharpDevelop的開源特性,可以將其源代碼進行研讀,學習優秀的編程技術和理念。
作為一款優秀的開源軟件,SharpDevelop最大的優點就是其各方面的功能與其他開源軟件或免費軟件配合的非常好,除了前面提到的NUnit之外,還支持Fxcop(微軟出品的一款免費軟件,用於檢查代碼是否符合規范)、NAnt(.NET Framework自動編譯,類似於Java的Ant)以及Mono(一款開源的.NET Framework實現,支持包括Linux在內的多種操作系統)等。
在使用SharpDevelop新建項目時,除了與Visual Studio 2005類似的項目模板之外,還提供了Mono項目的支持。SharpDevelop還是一個處於成長過程中的開發環境,有興趣的讀者可以繼續關注這款軟件,並可以為SharpDevelop貢獻插件以及源代碼。
輕量級的開發工具——Snippet Compiler
Snippet Compiler是一款非常輕量級的工具,主要可用於小型控制台應用程序的開發及C#語法測試等。Snippet Compiler提供了一個簡單的代碼編輯環境,支持有限的代碼自動完成功能,但正是由於其簡單的本質,可以用其完成一些簡單的工作而不必求助於大型的Visual Studio 2005。
與SharpDevelop相比,Snippet Compiler則更為簡單,但是相比其他開發工具,Snippet Compiler則更適用與學習除Windows窗體應用程序開發之外的基本語法,讀者不妨一試。
通用編輯器——UltraEdit
與SharpDevelop和SnippetCompiler不同,UltraEdit是一款通用編輯器,既可以用作文本文件的編輯器,也可以用作各種編程語言的代碼編輯器,而不僅僅是針對C#。
由於UltraEdit功能比較強大,因此其許多開發人員都將其作為輔助性的開發工具。對於C#開發來說,必須進行相應的設置才能方便的使用。下面簡要介紹如何配置UltraEdit,使之能進行C#程序的開發。
(1)單擊“高級”|“工具配置”命令。
(2)單擊“插入”按鈕,UltraEdit會自動產生一個工具配置,如圖1.45所示。
(3)修改“菜單項名稱”文本框為工具名稱,如“C#編譯器”,單擊“命令行”文本框右側的“浏覽”按鈕,選擇位於“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\”下的文件“csc.exe”,該文件即命令行下的C#程序編譯器.在“命令行”文本框的最後添加“ %F”,“%F”是UltraEdit中一個特殊的變量,表示當前編輯的文件。
(4)修改“工作目錄”文本框為“%P”,同樣,%P表示當前編輯文件的目錄。至此,設置完畢,現在“工具配置”對話框如圖1.46所示。此時,“高級”菜單中亦多出一個新菜單項,即剛剛配置完畢的“C#編譯器”菜單項。
(5)在UltraEdit編輯器中編寫一個簡單的C#應用程序,如HelloWorld程序,並保存。單擊“高級”|“C#編譯器”菜單項,UltraEdit將轉到“命令輸出”窗口。
(6)從“命令輸出”窗口中可以看到,並無任何錯誤提示,表示當前程序編譯成功,在HelloWorld.cs程序保存目錄下,讀者可以發現編譯成功的HelloWorld.exe程序。執行之,可得正常的結果。
UltraEdit中還有許多強大的功能,此處就不一一介紹了,但正是由於這些強大的功能,UltraEdit並非一款免費軟件,讀者可以先下載試用版的UltraEdit進行學習。
反編譯軟件——.NET Reflector
.NET Reflector是由Lutz Roeder編寫的一款反編譯軟件,該軟件十分小巧,但功能卻非常強大。眾所周知,正常的程序開發流程是編寫源代碼,並將源代碼編譯為.NET程序集(dll或exe等),但.NET Reflector能將編譯成功的.NET程序集進行反編譯,將.NET程序集反向轉換為源代碼。
下面簡單介紹該軟件的使用方法。
(1)單擊“File”|“Open”命令,選擇前文中介紹的第一個C#程序(ConsoleHelloWorld)的編譯結果ConsoleHelloWorld.exe,則圖1.48中的樹形列表框中將會多出一個“ConsoleHelloWorld”節點,如圖1.49所示。
(2)依次展開“ConsoleHelloWorld”節點,直到表示Main方法的節點處,雙擊該節點,則程序的右側將會出現Main方法的實現代碼,如圖1.50所示。、
可以看到,.NET Reflector將代碼中除了注釋的部分完整的呈現在讀者面前。因此,讀者如果需要開發商業程序,或對開發的程序有一定的保密要求,則必須對程序進行加密工作,常用的技術是使用混淆器。
NUnit
NUnit是一種單元測試工具,用於對程序中的類進行功能測試。NUnit類似於Java中的JUnit,是JUnit在.NET Framework中的實現。NUnit在極限編程(eXtreme Programing,又稱XP)和測試驅動開發(Test Driven Develop,又稱TDD)中是一款非常知名的軟件,極限編程和測試驅動開發有著非常龐大和系統的內容,本書將不做介紹,此處僅簡單的介紹NUnit這款軟件。