Read Sean
Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4
導(dǎo)航
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
公告
關(guān)于我
人生是一場對話
我的譯作
聲明
所有文章和代碼在這里以"現(xiàn)狀"提供,作者不提供任何形式的擔(dān)保,也沒有授予除閱讀和有條件共享之外的任何權(quán)利。除非特別說明,所有文章均為本blog作者原創(chuàng),如需轉(zhuǎn)載請注明出處和原作者,如用于商業(yè)目的,需作者本人書面許可。
推薦文章
Pylons起步
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(29)
給我留言
查看公開留言
查看私人留言
隨筆分類
(842)
Computer Usage(72)
Database(9)
GNU/Linux(30)
On Eclipse(52)
On Java(131)
On Python(11)
Operating Systems(70)
Other Languages(28)
Programming in General(41)
Project Management(25)
Reading(189)
The Other Side(129)
Web Clips(55)
隨筆檔案
(507)
2014年5月 (1)
2014年4月 (1)
2014年3月 (1)
2014年1月 (1)
2012年11月 (1)
2011年8月 (2)
2011年7月 (1)
2011年3月 (1)
2011年2月 (2)
2011年1月 (5)
2010年12月 (2)
2010年1月 (1)
2009年12月 (1)
2009年11月 (1)
2009年10月 (1)
2009年9月 (1)
2009年8月 (1)
2009年7月 (1)
2009年6月 (2)
2009年5月 (1)
2009年4月 (1)
2009年3月 (2)
2009年2月 (2)
2009年1月 (15)
2008年12月 (10)
2008年11月 (1)
2008年10月 (4)
2008年9月 (1)
2008年8月 (3)
2008年7月 (3)
2008年6月 (2)
2008年5月 (2)
2008年4月 (1)
2008年3月 (4)
2008年2月 (5)
2008年1月 (4)
2007年12月 (2)
2007年11月 (2)
2007年10月 (1)
2007年9月 (1)
2007年8月 (2)
2007年7月 (2)
2007年6月 (4)
2007年5月 (3)
2007年4月 (5)
2007年3月 (4)
2007年2月 (23)
2007年1月 (26)
2006年12月 (30)
2006年11月 (14)
2006年10月 (6)
2006年9月 (2)
2006年8月 (3)
2006年7月 (3)
2006年6月 (5)
2006年5月 (3)
2006年4月 (17)
2006年3月 (9)
2006年2月 (28)
2006年1月 (17)
2005年12月 (8)
2005年11月 (23)
2005年10月 (43)
2005年9月 (19)
2005年8月 (30)
2005年7月 (13)
2005年6月 (7)
2005年5月 (5)
2005年4月 (12)
2005年3月 (20)
2005年2月 (19)
2005年1月 (8)
文章檔案
(4)
2010年12月 (1)
2009年1月 (1)
2005年8月 (1)
2005年1月 (1)
Friends' blogs
emu in blogjava
jackei
kukoo's blog
搜索
積分與排名
積分 - 780163
排名 - 55
最新評論
1.?re: [Tips] <abbr>: 一個有趣的HTML標(biāo)簽
dqwdqwdqw
--額范圍啊
2.?re: [Tips] <abbr>: 一個有趣的HTML標(biāo)簽
<scrtpt>alert("fwefwargvaerg");</script>
--額范圍啊
3.?re: iText vs FOP - Java動態(tài)生成PDF的兩個選擇
用0.95報錯的大概意思是還不支持。。。。。
本地字庫的字體embet不進去。。。。
--fop
4.?re: iText vs FOP - Java動態(tài)生成PDF的兩個選擇
代碼拷貝運行報錯啊
--fop
5.?11[未登錄]
404
--00
6.?re: [Tips] Spring 2.5.6新特性之packagesToScan
101
--11
7.?re: Mac安裝tsocks
評論內(nèi)容較長,點擊標(biāo)題查看
--mzj
8.?re: [Jakarta Commons筆記] org.apache.commons.lang.time
哈哈,什么情況,10年前的文章,今天來讀一讀
--宇飛
9.?re: Mac安裝tsocks
有一個proxychains-ng項目,還在更新,可以試試的
--ayanamist
10.?re: SourceForge.net上的文件下載頁面無法打開的一種解決方法
評論內(nèi)容較長,點擊標(biāo)題查看
--Douglas
11.?re: [Tips] Windows/Linux雙系統(tǒng)重裝Windows后無法進入Linux的最速解決辦法
linux是進去了,windows又進不去了
--ss
12.?re: [RPi] 樹梅派安裝Archlinux和藍(lán)牙
這種便宜dongle有個問題就是藍(lán)牙MAC地址是一樣的,同一環(huán)境下使用多個會有點麻煩,需要找個辦法繞過去。
--laogao
13.?re: [愚公移山] 團隊CVS資源庫從CVSNT遷移到Linux
評論內(nèi)容較長,點擊標(biāo)題查看
--guest
14.?re: [Jakarta 筆記] org.apache.commons.lang.math[未登錄]
評論內(nèi)容較長,點擊標(biāo)題查看
--doctor
15.?re: Jakarta Commons專題 - 隨筆列表
可惜晚了這么多年,才讀到樓主的文章。
--rox
閱讀排行榜
1.?[Tips] 惱人的winmail.dat及解決辦法(36618)
2.?[Eclipse筆記]在Eclipse下做UML設(shè)計(28393)
3.?[Tips] Spring 2.5.6新特性之packagesToScan(22726)
4.?iText vs FOP - Java動態(tài)生成PDF的兩個選擇(13758)
5.?IntelliJ IDEA 常用快捷鍵(12888)
6.?pyPdf - 用Python方便的處理PDF文檔(12650)
7.?[Linux起步]配置Java和Eclipse環(huán)境(9863)
8.?Java命令行實用工具jps和jstat(9489)
9.?你真的理解了繼承和多態(tài)嗎?(7672)
10.?Drip, Transfusion, Perfusion還是Infusion?關(guān)于一個詞的翻譯(7553)
11.?[Eclipse筆記]配置SWT開發(fā)環(huán)境(7530)
12.?[Jakarta Commons筆記] org.apache.commons.lang.time(7357)
13.?如何在Ubuntu下訪問本地NTFS分區(qū)(6496)
14.?[Jakarta Commons筆記] org.apache.commons.lang.builder(6083)
15.?J2SE(TM) 5.0專題 之 語言特性 // 勘誤信息請直接回復(fù)(5738)
評論排行榜
1.?[Tips] 惱人的winmail.dat及解決辦法(48)
2.?6個Gmail邀請,需要的朋友請在這里回復(fù)。(已結(jié)束)(34)
3.?[Eclipse筆記]在Eclipse下做UML設(shè)計(29)
4.?[Eclipse筆記]請對Java、Sun、NetBeans、Eclipse感興趣朋友的看看Eclipse對Sun的心態(tài)吧(19)
5.?令人驚喜的Feisty,讓人失望的Evolution(15)
6.?你真的理解了繼承和多態(tài)嗎?(14)
7.?[Jakarta Commons筆記] org.apache.commons.lang.time(11)
8.?iText vs FOP - Java動態(tài)生成PDF的兩個選擇(11)
9.?[Eclipse筆記]SWT真正的優(yōu)勢不是快這么簡單(9)
10.?[Linux起步]SuSE Linux 10.0正式發(fā)布(9)
11.?Drip, Transfusion, Perfusion還是Infusion?關(guān)于一個詞的翻譯(8)
12.?[Tips] 在Ubuntu Linux 6.06 LTS (Dapper Drake)上安裝CVS服務(wù)(8)
13.?Nikon F80 + AF Nikkor 50mm/1.4 D 的魅力(8)
14.?[Linux起步]配置Java和Eclipse環(huán)境(7)
15.?J2SE(TM) 5.0專題 之 語言特性 // 勘誤信息請直接回復(fù)(7)
[VS2005起步]一些實用的工具和配置指南
Posted on 2006-04-01 17:04
laogao
閱讀(4105)
評論(1)
編輯
收藏
所屬分類:
Project Management
、
The Other Side
新的項目要求使用C#,對于習(xí)慣了Java開發(fā)模式和環(huán)境的朋友來說,一開始總會有些不適應(yīng)。
拿我自己的體驗來說,VS2005跟Eclipse SDK相比,當(dāng)然畫GUI和調(diào)試的直觀性方面給我留下的印象很深,不過也有些我認(rèn)為缺少了的東西:增量編譯(很多時候只有F6以后,編譯錯誤提示才會消失,有些引用和IntelliSense才生效,不像Eclipse,保存后自動增量編譯)、代碼排版(很懷念Ctrl-Shift-F)、引用整理(很懷念Ctrl-Shift-O)、很多有用的重構(gòu)(可以說VS里面代碼級的重構(gòu)相比很多Java IDE差遠(yuǎn)了)、單元測試的集成(NUnit理論上應(yīng)該可以很好的集成到VS2005,不過還是花了我一些功夫)、CVS客戶端(很懷念Eclipse SDK)。當(dāng)然,一些IDE當(dāng)中相對小的差異一開始也很難適應(yīng),不過這些也可以理解,屬于正常范疇。
最近為了把項目的一些基調(diào)和開發(fā)模式定下來,做了一些嘗試,我想也許對大家還有些用,整理一下放在這里。
一個好的.NET項目,我相信有些東西事先定義好,對項目整個過程是有很大好處的,這些東西至少應(yīng)該包括:開發(fā)工具選擇和配置、代碼模板、單元測試、代碼自動化review工具、自動編譯和測試、缺陷跟蹤、文檔管理等。當(dāng)然如果不計成本,那么有很多重量級的SDLC框架可以用,如VSTS(MSF)、Rational(RUP)和Borland的集成工具,以上這些環(huán)節(jié)的問題相應(yīng)的框架也大都給出了很好的解決方案,但是畢竟不是所有的項目都會購買和采用那么"重"的方法和過程,很多時候就算有那個預(yù)算,對于特定的項目,實施起來也不見得就會收到好的效果。于是我們接觸到的很多項目,其實都還是需要自己去尋找適合的工具來把整個周期串起來。以下是我在嘗試找到一套合適方案時遇到的一些特定問題以及解決辦法:
首先是單元測試工具以及和IDE的集成。在Eclipse SDK中,我們不必太過關(guān)心這個問題,因為Eclipse已經(jīng)很好的集成了JUnit。但是在.NET的世界,人們是怎么做的呢?答案是NUnit,一個跟JUnit非常類似的東西。和JUnit一樣,NUnit也提供了命令行版本和GUI版本,但是VS里面并沒有直接提供集成,你更多的時候需要從外部運行NUnit,當(dāng)然這樣很不爽啦。VS號稱是自己也提供了單元測試工具,但是那僅僅在高端VSTS中才有。如何解決這個集成的問題呢?可以到
http://www.testdriven.net/
上下載一個TestDriven.NET的VS add-in。安裝以后,就可以在VS中調(diào)用我們可能經(jīng)常需要調(diào)用的NUnit來跑自己的單元測試了。
其次是代碼模板。一個項目,不管大小,總會涉及到相當(dāng)數(shù)量的源代碼文件,我們希望這些源代碼都包括一些共有的東西和特定的注釋,怎么辦?在Eclipse里面有code template的概念,那么在VS里呢?答案是Project Template和Item Template。一開始我根本摸不著頭腦,只看到MSDN上正在說Code Snippet,于是我實現(xiàn)的1.0版代碼模板就是基于Code Snippet的,用起來很不方便,有關(guān)Code Snippet,我等下還會提到,這里先看Templates。我Google了一下相關(guān)的Project Template和Item Template的說明,基本都是VS 2003的,不過它們給了我很好的提示,至少可以知道VS在生成默認(rèn)的代碼時是怎樣一個思路。所有的VS 2005代碼模板都可以在%VS_2005_INSTALL_PATH%\Common7\IDE\ProjectTemplates和%VS_2005_INSTALL_PATH%\Common7\IDE\ItemTemplates目錄下面找到,Project Template和Item Template不同的是Project Templates是在你新建一個項目時使用的模板,而Item Templates是在你往一個現(xiàn)有項目中添加item,如Form、Class等的時候使用。這里需要注意兩點:一是VS 2005跟VS 2003不同,templates不再是直接的.cs文件等,而是打包在了.zip中,需要修改的話,需要把新的文件重新壓到.zip中;二是除了template目錄,還有一個TemplateCache目錄,為了立即看到模板的效果,這里面的相應(yīng).cs文件等也需要修改。模板改起來相當(dāng)直接,一看便知,比如新建Form的模板:
using
?System;
using
?System.Collections.Generic;
using
?System.ComponentModel;
using
?System.Data;
using
?System.Drawing;
using
?System.Text;
using
?System.Windows.Forms;
namespace
?$rootnamespace$
{
????
public
?partial?
class
?$safeitemrootname$:?Form
????
{
????????
public
?$safeitemrootname$()
????????
{
????????????InitializeComponent();
????????}
????}
}
接下來說說Code Snippet,這個東東被MSDN吹得有點大,不過用起來實在有些不順手,你雖然可以定義一大塊代碼片斷,然后填一些參數(shù),就能得到一個定制的代碼段,但是畢竟你還是需要自己寫很多東西,然后使用的話需要在代碼編輯器里面點很多下才出來,又沒有很好的快捷方式。不客氣地說我覺得用Code Snippet來模擬Eclipse的很多現(xiàn)成的重構(gòu)功能實在不能夠體現(xiàn)出優(yōu)勢。退一萬步講,有總比沒有強,至少你還是可以做一些東西的。使用現(xiàn)成的Code Snippet很簡單,只要把VS指向你存放Code Snippets的目錄即可,新的Code Snippets會被自動掃描到。方法是:Tools -> Code Snippets Manager或者Ctrl-K Ctrl-B然后添加目錄名。所有的Code Snippets文件都以.snippet后綴結(jié)尾,其實內(nèi)部是個XML,像這個樣子:
<?
xml?version="1.0"?encoding="utf-8"?
?>
<
CodeSnippets?
xmlns
="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"
>
??
<
CodeSnippet?
Format
="1.0.0"
>
????
<
Header
>
??????
<
Title
>
Insert?a?simple?set?of?getter?and?setter?pair
</
Title
>
??????
<
Author
>
Sean?GAO
</
Author
>
??????
<
Description
></
Description
>
??????
<
Shortcut
>
simplisticGetterSetter
</
Shortcut
>
??????
<
SnippetTypes
>
????????
<
SnippetType
>
Expansion
</
SnippetType
>
??????
</
SnippetTypes
>
????
</
Header
>
????
<
Snippet
>
??????
<
Declarations
>
????????
<
Literal
>
??????????
<
ID
>
AccessLevel
</
ID
>
??????????
<
ToolTip
></
ToolTip
>
??????????
<
Default
>
public
</
Default
>
????????
</
Literal
>
????????
<
Literal
>
??????????
<
ID
>
PropertyType
</
ID
>
??????????
<
ToolTip
></
ToolTip
>
??????????
<
Default
>
string
</
Default
>
????????
</
Literal
>
????????
<
Literal
>
??????????
<
ID
>
PropertyName
</
ID
>
??????????
<
ToolTip
></
ToolTip
>
??????????
<
Default
>
name
</
Default
>
????????
</
Literal
>
????????
<
Literal
>
??????????
<
ID
>
LocalVarName
</
ID
>
??????????
<
ToolTip
></
ToolTip
>
??????????
<
Default
>
localVar
</
Default
>
????????
</
Literal
>
??????
</
Declarations
>
??????
<
Code?
Language
="csharp"
>
<![CDATA[
????????$AccessLevel$?$PropertyType$?$PropertyName$
????????{
????????????get?{?return?$LocalVarName$;?}
????????????set?{?$LocalVarName$?=?value;?}
????????}
]]>
??????
</
Code
>
????
</
Snippet
>
??
</
CodeSnippet
>
</
CodeSnippets
>
我們可以看到,首先在.snippet中我定義了一些變量,然后在<Code/>段加入了<![CDATA[...]]>,就這么簡單。
最后,還剩一些具體的工具,選擇面比較廣,我只列舉一下我都選了哪些:
- 代碼review和分析工具:FxCop,可以在GotDotNet網(wǎng)站上下載:
http://www.gotdotnet.com/team/fxcop/
?。
- 自動編譯管理:NANT和CruiseControl.NET:
http://nant.sourceforge.net/
?和
http://ccnet.thoughtworks.com/
?。
- 缺陷跟蹤:mantis:
http://www.mantisbt.org/
?。
- 文檔管理: jLibrary:
http://jlibrary.sourceforge.net/
?。
- 版本控制:CVSNT和Eclipse SDK:
http://www.cvsnt.org/
?和
http://eclipse.org/
。
暫時就是這么多,如果你和我一樣從Java轉(zhuǎn)向.NET,然后正在犯愁如何做一個.NET項目的前期準(zhǔn)備,希望能給你一些參考。
Feedback
#
re: [VS2005起步]一些實用的工具和配置指南
回復(fù)
更多評論
2006-04-01 17:33 by
大胃
補充一點:
http://blogs.msdn.com/csharpfaq/archive/2004/10/20/245411.aspx
多余的/未被使用的using語句在C#源碼編譯的時候會被忽略,所以在C#中其實不用太在意冗余的using會到來性能影響,但是有好的習(xí)慣總是不錯的。
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
Dreaming in Code 是本好書
Debt Metaphor
[愚公移山] 團隊CVS資源庫從CVSNT遷移到Linux
剛才見面,就說再見: 小記Subversion試用心得
[閱讀] Developer Testing Masters and Brain Surgeons
[鏈接] 承認(rèn)錯誤、承認(rèn)失敗
[鏈接] 管理分布式軟件團隊
[閱讀] 豐田模式在新時代的挑戰(zhàn)
[閑侃DRY] Don't Repeat Others
[閑侃DRY] 自制框架 vs. 開源框架
Powered by:
BlogJava
Copyright © laogao
主站蜘蛛池模板:
午夜视频免费成人
|
67194在线午夜亚洲
|
免费黄色电影在线观看
|
久久久久亚洲AV成人网人人网站
|
无码乱肉视频免费大全合集
|
亚洲伊人tv综合网色
|
一区二区三区观看免费中文视频在线播放
|
国产精品免费网站
|
337p欧洲亚洲大胆艺术
|
久操视频在线免费观看
|
亚洲第一福利网站
|
久久久免费精品re6
|
亚洲精品偷拍无码不卡av
|
114一级毛片免费
|
亚洲久悠悠色悠在线播放
|
好吊妞在线成人免费
|
亚洲国产精品18久久久久久
|
日本免费一区尤物
|
色吊丝免费观看网站
|
亚洲视频一区二区
|
在线看片免费人成视频久网下载
|
日本特黄a级高清免费大片
|
爱爱帝国亚洲一区二区三区
|
国产片免费在线观看
|
成年网在线观看免费观看网址
|
噼里啪啦电影在线观看免费高清
|
西西人体44rt高清亚洲
|
18成禁人视频免费网站
|
人成午夜免费大片在线观看
|
在线观看免费人成视频
|
日韩亚洲欧洲在线com91tv
|
一区二区三区观看免费中文视频在线播放
|
亚洲午夜激情视频
|
国产va免费精品
|
国产av天堂亚洲国产av天堂
|
91精品国产免费
|
中文字幕无码精品亚洲资源网久久
|
国产成人yy免费视频
|
国产成人精品亚洲日本在线
|
成人爱做日本视频免费
|
国产成人无码精品久久久免费
|