有多少爱可以重来 --Visual Studio 2010 的9项改进建议
距Visual Studio 2010发布一年多了,这一年多的时间不知“耀”他们过得如何,是已经分开还是依然在一起?是否还记得当年发布会上,女孩突然出现时给他的惊喜?不过还好,相信大家都有自己的成长与进步,这就是Coding Life,我们都在得失中老去。。。
话入正题,本人从2002年接触DotNet至今,历经Visual Studio 的代代更新,看到它的成长,我很欣慰~~
Visual Studio是我用过最满意的代码编辑器,但还是有一些个人觉得需要改进的地方,这里写出来,大家补充,也许有的功能已经实现,还请各位大方指出。希望我们的Visual Studio越来越好,同时也希望MS早日推出跨OS平台的DotNet FrameWork。
1. 快速定位文件路径
在右键点击文件à属性后,属性对话框会显示出该文件的“完整路径”信息,如果这时需要定位至该文件所处的文件夹(比如完成一些拷贝粘贴工作),则还要复制路径,然后在Explorer中打开。
建议:在“完整路径”右侧边缘处提供一个按钮,点击按钮后直接打开该文件所在文件夹窗口。
2. 代码书签
分布于不同文件的代码是有逻辑关系的,经常会有类似情况:检查一段代码的时,需要同时关注其他几段相关代码,这些代码有可能在一个文件中,也有可能在不同文件中,甚至使用2个屏幕核对相关代码,这样如果使用滚动条+行号的形式,在这些代码段中定位了,未免有些郁闷。
建议:提供类似断点的标注方式,但只是标注,目的是让程序人员可以快速的给代码段打上标记,以在不同屏幕、文件切换过程中方便的分辨。
3. Profile导入与导出
很多VS用户并不喜欢白底黑字的界面,更多的人出于对眼睛的保护,喜欢把背景色、字体等设置成别的格式,可是重新安装OS后就不得不把以上工作重新做一遍,浪费时间啊!
建议MS提供一个功能,该功能可以导入导出所有“选项”菜单中自定义的Profile。
如果可能,MS还可以根据不同国家的人,不同角色的人(例如程序员与架构师、测试员),提供不同的内置偏好,以供相应人群使用。
4. 关于静态变量
静态可是个好东西啊!可是就是不受DotNet垃圾回收器的待见,用完后如果不置null,他就会一直呆在你那个AppDomain,GC不会去管他,因为它就是一个树图的根!
试想一下如果一个程序中大量使用静态委托,而又没有适当的置null,是不是会导致频繁的溢出呢?
建议:编译过程中,对于静态变量的使用,可以根据引用其的类的时序图,判断是否有漏置null的情况,如果质疑,则提出warning级别的提示。当然这只是给编程人员提个醒,起到辅助的作用,真正的代码安全还得靠经验。
5. 提供灵活的垃圾回收
我想这一点并不是所有人都需要的。因为垃圾收集工作悄然无声的进行,有些时候我并不希望GC启动,而有些时候我只希望做垃圾标记,而不希望GC压缩环节的启动,(因为在不久,也许会有更大规模的内存移动)。
建议:能否提供一个类似于Lock的方法,其中的代码执行过程中GC不要启动呢?
6. 项目顺序
如果一个解决方案中有多个项目,你怎样手动排列它们在“解决方案管理器”中的显示顺序呢?靠在项目名字前面加入数字序号吗?
建议:增加手动排序功能。
7. 查找替换目录
在“查找与替换”菜单中,查找范围只有如下几项:
如果想替换某个文件夹下所有或者某种扩展名的文件中的关键字,就不好弄了。
建议:增加类似DW那种在文件夹范围内操作的选项。
8. 加快ASP. NET Design界面与解决方案加载的速度
有过ASP.NET开发经验的人都有此体会,当你从Code界面切换至Design界面时,这个操作会损耗很长的时间,甚至会使人不耐烦。
而解决方案的加载也是如此,如果一个解决方案中项目过多(几十个),加载时间会消耗很多,令人难以理解。
建议:加快速度。
9. 接口定义的变量,F12时定位至“实现”而不是“接口”
例如有如下代码:
IDataTableContainer dtc = new OracleContainer();
dtc.TransactionBegin(ref cd);
IDataTableContainer是一个接口,里面有一个方法签名TransactionBegin。当你将光标置于dtc.TransactionBegin(ref cd)上,并使用F12查找定义时,VS定位的是接口的位置,而不是接口的实现,可是有些时候我们希望找到的是具体方法,而不是签名。
建议:上述现象可使用F12定位至接口的实现。
以上建议功能可能已经有插件实现,欢迎共享!
李鸣(aicken)原创 转载注明