最近由于需要,我需要寫一個小的工具解析并顯示文件的內容。
這是一個winform的程序,功能很簡單,但是我在開發(fā)過程中卻明顯感覺到VS2005的優(yōu)勢
1:winform UI 設計--控件對齊
VS2003的UI設計器比較粗糙,一般在遇到需要定位(align, anchor)要求比較高的應用我就自己輸入Bounds的坐標,這樣比較麻煩因為要算好位置,在Whidbey里面有了智能提示,這個工作就變得容易了。
2:winform UI 設計--UI結構調整
UI設計是一個trail and error的過程,在這個過程中經常需要將Form中的一部分元素加入或取出某個容器,
VS2003里面我們只有通過UI Designer來實現(xiàn)控件的選取并設計對應的屬性進行操作,對于控件比較多或影響面積較大的
調整,Form會變得很凌亂(甚至會新建一個Form當臨時空間存放控件的做法:))
Whidbey里面增加了一個Document Outline窗口,在做UI設計的時候通過它可以直觀的看到整個Form中各個控件的包含關系,
并且可以在Document Outline里面使用Drag and Drop改變控件所屬的容器,做過winform UI的人都知道類似
VS2003里要給一個已經Dock Fill在一個Tab Page里面的List View外面加上一個Panel是一件繁瑣的操作,現(xiàn)在
只要拖進一個Panel,在Document Outline里面放置到對應的Tab Page之中,在Property中設置Panel.Dock 為Fill,
然后在Document Outline里面將原先的ListView拖進panel就好了。
關鍵是整個過程中無須通過UI designer來選取控件,諸如此類的UI結構調整只需要Document Outline和Property Pane兩個窗口就可以完成了。
3:winform UI代碼編制 -- Refactoring的整合力量
在編寫UI代碼的時候有時候需要修改控件的名稱(我不知道別人有沒有,我經常會有這種情況。。。)
這個以前VS2003里面控件名稱修改后 UI Designer會自動修改自動生成的代碼(與其說修改不如說重新生成)。。。
但是用戶代碼中的控件名稱是不會被修改的,用戶只好手工Find & Replace了(遇到 Inherit Form的那就可能要修改多個文件)
在Whidbey里面控件名稱的修改會自動觸發(fā)Refactoring 的 rename功能,用戶代碼中該變量名稱都會自動修改。單獨看到Rename
功能感覺只是照抄Eclipse,但是VS2005中將Refactoring作為一種基礎功能應用于各種上層功能中,的確是提供了一種很好的
用戶體驗。
3:輸出結果格式調整 -- Edit & Continue
個人感覺Edit & Continue對于這種Trail and Error的工作有很大的幫助。在編寫結果格式化輸出的時候
由于是簡單的程序,我是通過hard code一個format string的方式用string.Format顯示結果的。
為了最終顯示結果比較整潔,就需要不斷嘗試調整format string。在Edit & continue功能的支持下
我只需通過一次debug,加載好文件,然后通過不斷調整format string 就可以完成,而若在VS2003下
就要多次的debug,并且每次都要進行加載文件,導航選擇的操作才能看到結果,如果不對則必須要stop debugging才能修改代碼,debugging的時候代碼是只讀的,想記錄的一變化都不行,等到程序關掉你得憑印象去調整format string。我想
如果我真到要在VS2003里面作調整的化,估計我會增加一些臨時的textbox, button,在程序里調試format string的。
4: 分析代碼 -- Edit & Continue Refactoring & Class Diagram, etc...
這是另一個任務,需要分析一個別人寫的程序(呵呵,就是那種典型的沒有文檔,沒有注釋的程序。。。)。
分析別人的代碼首先要做的當然是Reverse Engineering啦(一頭扎進代碼里是最沒效率的)
VS2005里面提供了“Class Diagram"功能,這個功能可以生成當前工程的類圖(不過似乎不是UML的class diagram...不知道是還沒全部完成還是MS又偷換概念)
我通過添加Comments塊在類圖中作筆記,在class detail里面還可以給每個屬性、方法以及方法參數(shù)等添加注釋,而且這些注釋會作為Doc嵌入代碼中。當然類圖只能反映靜態(tài)結構,更多的得靠分析動態(tài)執(zhí)行流程。分析動態(tài)流程也簡單啊,debug好了,
我通過雙擊一個類圖中某個類的方法名找到對應的方法代碼,添加斷點,然后跟蹤執(zhí)行。而在一邊debug的時候我能夠同時給類圖中增加注釋記錄分析的結果和遇到的問題而這些在背后都離不開Edit & Continue和Refactoring的支持。。。(因為class diagram是實時更新的,增加的注釋會加入代碼中,變更的方法會影響代碼。
總的來說VS2005的確比2003有了很大的飛躍,隨著使用的深入,我會繼續(xù)總結一些使用心得的。