MindScape

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
最近由于需要,我需要写一个小的工具解析并显示文件的内容。
这是一个winform的程序,功能很简单,但是我在开发过程中却明显感觉到VS2005的优势
1:winform UI 设计--控件对齐
VS2003的UI设计器比较粗糙,一般在遇到需要定位(align, anchor)要求比较高的应用我就自己输入Bounds的坐标,这样比较麻烦因为要算好位置,在Whidbey里面有了智能提示,这个工作就变得容易了。

2:winform UI 设计--UI结构调整
UI设计是一个trail and error的过程,在这个过程中经常需要将Form中的一部分元素加入或取出某个容器,
VS2003里面我们只有通过UI Designer来实现控件的选取并设计对应的属性进行操作,对于控件比较多或影响面积较大的
调整,Form会变得很凌乱(甚至会新建一个Form当临时空间存放控件的做法:))
Whidbey里面增加了一个Document Outline窗口,在做UI设计的时候通过它可以直观的看到整个Form中各个控件的包含关系,
并且可以在Document Outline里面使用Drag and Drop改变控件所属的容器,做过winform UI的人都知道类似
VS2003里要给一个已经Dock Fill在一个Tab Page里面的List View外面加上一个Panel是一件繁琐的操作,现在
只要拖进一个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里面控件名称的修改会自动触发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里面还可以给每个属性、方法以及方法参数等添加注释,而且这些注释会作为Doc嵌入代码中。当然类图只能反映静态结构,更多的得靠分析动态执行流程。分析动态流程也简单啊,debug好了,
我通过双击一个类图中某个类的方法名找到对应的方法代码,添加断点,然后跟踪执行。而在一边debug的时候我能够同时给类图中增加注释记录分析的结果和遇到的问题而这些在背后都离不开Edit & Continue和Refactoring的支持。。。(因为class diagram是实时更新的,增加的注释会加入代码中,变更的方法会影响代码。


总的来说VS2005的确比2003有了很大的飞跃,随着使用的深入,我会继续总结一些使用心得的。

posted on 2005-06-10 13:01  Jonny Yu  阅读(2341)  评论(3编辑  收藏  举报