工欲擅其事,必先利其器,能利用工具是人與動物的最大差別。然而,大多數商業化工具價格不菲,已經加入WTO好幾年了,再用盜版會給企業帶來很大的不确定性,并且盜版用多了,往往會失去一種程式員的自豪感,丢掉一種文化。經過幾個月的摸索,本着以下原則,偶選擇了一些适合中小企業開發的工具,當作自己的工具箱:
(1)适用于中小型企業,中小型項目(<500萬),功能适度
(2)易用性好,具備必要的文檔
(3)免費或低價
基于這些工具,慢慢形成了一套靈活開發過程。
一、工具簡介
下面簡單介紹這些工具,這些工具有些偶已經有相當的使用經驗,有些正在使用,有些隻是剛標明。除直接用于.net開發的工具中外,還包括一些開發相關的軟體設計、項目管理工具。偶的主要開發經驗是Web開發,桌面開發和原型開發,對Mobile開發不熟悉,也就沒這方面的推薦了。
1,運作平台
常用的也就.net framework 1.1, 2.0, 和mono了,都是免費的。從功能、性能及安裝基礎來講,自然.net framework要優于mono了。mono是開源的,.net framework類庫可以反編譯,從透明的角度講兩者都差不多。如果你想在非windows平台上開發,或者想研究運作時的實作,可以研究mono,否則還是用.net framework吧。
2,伺服器
我用過的也就IIS5.0,IIS6.0,Apache加一個mod,還有mono的xsp,這也沒啥好比較的,自然首選IIS6.0了。不過IIS雖然免費,但是至少得windows server版本才運作得爽,至少得花幾千元。XP上的IIS很不爽,據說也能裝全版IIS6.0,不過還是得折騰。開發用的話,用Apache加一個.net的mod,或者mono的xsp,還是挺好用的。Apache的缺點是對新版.net framework的支援較IIS6.0滞後。
3,IDE
tnnd,這個選擇空間也很小。首選自然是VS 2003或2005,如果VS 2005速成版将來免費的話,偶就標明這個了,或者選價格并不算高的VS 2005 專業版。可惡速成版、專業版中沒單元測試,在這裡BS微軟10000遍。堅決抵制VSTS版!
其它可選的有SharpDevelop和mono develop。對于不開發Web程式的初學者來說,用SharpDevelop其實也挺不錯的,內建的Nant,NDoc,NUnit都是很有用的工具。SharpDevelop沒斷點調試功能,但熟用NUnit的話可以彌補這一不足。如果對類庫了解得比較深入的話,采用SharpDevelop,生産力其實也挺高的――即使是進行Web開發。SharpDevelop的缺點之一是暫時沒重構功能,在下一個版本裡會有。缺點之二是記憶體占用比較大,還有性能比VS低得多,大項目,大程式可能不爽。我測試過,用SharpDevelop打開一個大于3M的C#源檔案(嘿嘿!是csgl還是tao的,忘了),挂了;用VS 2003打開大概要花幾十秒。
btw,我個人認為其實就用記事本寫中小型(<3000行)的C#程式,效率其實也挺高的,這時候會更加注意類的設計,思路會更清晰一些,當然,速度會慢一些。
4,類庫和文檔
類庫是.net平台的資産。目前.net下成熟的類庫比較少,和java比,最大的不足就是這裡了。最常用的類庫當然是.net framework了,其它各方面的類庫在網上都能搜尋到一些。類庫的關鍵資産要素是dll和文檔。看文檔要看一手資料,第一手資料就是源代碼或反編譯過來的代碼,然後就是各類的原始文檔,一般是chm格式的。如果看源代碼習慣的話,效率會很高,并且,建議用反編譯工具看代碼,不建議直接看源檔案,原因其一是反編譯工具提供了很多有用的附加功能,其二是反編譯的代碼比源檔案更真實。常用的反編譯工具是Reflector。
.net下的文檔是爽死了,比javadoc的pp多了。是以在寫代碼的時候應該注意,多寫///注釋,然後用Ndoc自動生成chm文檔,多爽呀。
很多開源項目提供源代碼和少量的文檔,但它的源代碼中有大量的///注釋,可用NDoc自動生成chm文檔。即使沒有///注釋,采用NDoc生成文檔也是很值的。
5,資料庫
MS SQL Server Express版應該是免費的,但标準版和企業版價格還是不低的,還是用開源的好。對功能有要求就用PostgreSql,沒要求就用MySql。偶現在是GIS項目用PostgreSql,一般項目用MySql。資料庫管理用EMS MySQL Manager Lite和EMS PostgreSql Manager Lite,免費,好用,界面很豪華,性能還行。
6,設計與模組化
偶標明的UML模組化工具是JUDE,2M大,免費但不開源,比ArgoUML功能多、好用。比Visio 的UML功能不知道強大多少倍,比Together也好用。缺點就是隻是模組化工具,和代碼不同步。另一個缺點就是不能自動生成文檔。不過偶喜歡這樣的工具,強大,體積小,靈活,友善。并且偶覺得它在設計時用就行了,具體的類的文檔用NDoc生成。JUDE是基于java的,得安裝java虛拟機。好像它跨平台也不怎麼樣,我在linux下沒運作成功過。
開源或免費的資料庫模組化工具試過很多,感覺都不成熟不好用,最後選擇了一個商業軟體――CASE Studio 2,價格100-300美元,功能很實用,支援很多資料庫,生成的文檔也很pp。
7,靈活開發工具
NUnit――單元測試。
NAnt――build工具。前面已經提及。
NDoc――文檔生成。前面已經提及。
CruiseControl.Net ――持續內建,暫時還沒用過。
NUnit,NAnt,NDoc用的好的話,感覺非常爽,寫程式會有藝術家的感覺。
8,團隊協作工具
版本管理:CVS和SVN,推薦SVN。用戶端推薦用TortoiseSVN――非常可愛的小烏龜。
Bug管理:偶選用的是BugTracker.NET,簡單,用 ASP.Net寫的,小項目夠用了。
需求管理、項目管理、日程、經費計算與管理:還是在用Word、Outlook、Excel。要免費的話可用永中Office試用版,一樣好用。
二、優勢
1,成本效益高。對于10人規模的團隊,看看軟體成本:
運作平台:.net framework 1.1或2.0,免費
伺服器:1套windows 2003 server版,數千元
IDE:1套VS 标準版或專業版,數千元,其它用express版就行了
類庫和文檔:免費
資料庫:免費。用商業資料庫,讓客戶掏錢。
設計與模組化:1套CASE Studio 2就行了,數千元
靈活開發工具:免費
團隊協作工具:1套MS Office(帶Visio的)就行了,數千元,其它人用永中。
整個下來,不足20000元。
2,易用性好
反正我的感覺是和商業軟體差不多或者稍差
3,易擴充
上面工具大部分是開源的,并且很多工具之間協作性比較好,這樣可以用來定制适合自己的生産線。老外的那一套生産線,比如RUP,MSF及其相關工具,除價格貴外,其靈活性也不高,别人的生産線不一定适合自己用。這時上面工具的優勢就出來了。
三、搭建軟體生産線
流程1:項目管理流程
用Office管理需求。用SVN進行源代碼管理和文檔管理,BugTracker.NET進行 Bug管理和事務管理。盡量将程式、檔案、文檔的維護自動化。
流程2:開發管理流程
開發過程中所維護的檔案越少越好。偶覺得應該盡量少用UML圖寫文檔,隻寫最關鍵的部分。類的文檔最好由NDoc直接生成。偶用UML工具的時間很少。寫代碼的過程就是類設計過程。不妨比較這兩個流程:(1)用例分析->采用UML工具設計類->由UML工具生成代碼或撰寫代碼->重構代碼,自動更新UML文檔。(2)用例分析->撰寫代碼->重構代碼。第一個流程隻有一個優勢,就是人對圖形的了解比對代碼的了解更加直覺,但是多了很對累贅工作。第二個流程少了很多步驟,并且可以随時根據代碼逆向工程出類圖出來,
我還是喜歡以代碼為基礎的流程。撰寫代碼也可分為2個過程,第一個過程是寫出一個代碼架構,所有的方法都是UNDO,寫出屬性,接口,寫出///文檔。這應該是設計過程。這個過程基本上隻産生、維護源檔案。類圖可以通過visio逆向工程,類設計文檔可以通過NDoc自動生成,并且提供了一個測試基礎,可以根據這個測試基礎寫測試代碼了。測試代碼最好也隻寫個架構,但是要寫好///注釋,然後生成測試文檔。這應該是設計過程。第二個過程是實作過程,把類文檔和代碼架構送出給相關人,實作、測試、重構......一切都自動進行......整個過程中隻有一份東西,就是源代碼,開發過程中的傳遞件應該都從源代碼中自動生成。
資料庫腳本和文檔用CASE Studio 2維護。最後送出、上線、驗收都很好辦,所要的東西biaji一下子都出來了。要申報著作權直接從源代碼和chm文檔中弄一部分出來就夠了。
開發的核心是源代碼,所有文檔應該展現在源代碼的結構、關系和注釋中。控制整個開發流程的核心工具是Nant。要是能把用例分析過程展現在源代碼中就好了!
最後,推薦書籍:Open source .Net Development, Programming with NAnt, NUnit, NDoc and More
轉載于:https://www.cnblogs.com/zhaolizhe/p/6923834.html