换了工作,需要使用C#开发部分代码。这也就有机会接触一下微软操作系统以外的产品。其实上大学的时候就见过VC6.0吧可能是。好像是借着有一门课叫VC++程序设计什么的,当时踌躇满志的还真想学点本事呢。不过正好被非典给耽误了,从此就再也没有接触过。
先交代一下技术背景,六年java经验,可是由于公司产品技术路线的原因一直都只限于j2se本身,面向对象是入门了,对j2ee什么的也没有了解过。现在想想技术面还真是挺窄的,有点惭愧。
C#接触了一个月左右时间,确实语法什么的大同小异毕竟基本上是一个时代的面向对象语言。但是整个微软的开发环境和java还是挺不一样的。由于java跨平台的特点吧,环境配置什么的都和操作系统关联不大,只要jdk装好,eclipse绿色小软件儿一考,程序本身编译不出问题,想跑起来那是基本上没有问题的,只要classpath的概念清晰成。可是到了微软这边可没那么容易,想顺顺当当把开发环境搭起来就不是一件容易事情。什么东西都相互依赖着,不知不觉装了一大堆,看着就晕。
作为我这样的C#初学者,倒是可以暂时对环境的细节无视一阵子,毕竟还没有用到那么深。对于C#语言本身比较不适应可是namespace和partial这两个概念。
其实java里面package是与C#里面namespace对应的概念,可是package是与文件所在的位置完全对应的,也就是说类文件的位置和类的package之间基本上是可以相互表示的。但是到了C#里面就不一样了,namespace只是表明了一个逻辑概念,namespace属性和文件的位置完全没有关系,说实话挺晕的。不知道这样的灵活性是出于什么目的。
partial这个我倒是理解人家的用意,主要是想把自动生成的代码和手写的代码分开。也就不会出现可视化编辑器写好的界面代码稍微修改不慎就无法打开的尴尬。可是在vs里面想在几个partial文件中切换还挺麻烦的,算是各有优缺点吧。
现在VS登场。我用的是VS2008,可能我们解决方案中的工程太多了(一百多个)的缘故吧,干个什么操作反应都很慢(我的机子配置还可以的啊)。
(我机子配置)
到网上查了查也没有什么特别好的解决方案,也只能这样了。可是作为老大的微软这么贵的一个IDE能不能使用上方便一些呢?下面列一列我开发时候经常要用的功能,如果知道有好方法的朋友不吝赐教帮帮忙。
1.自动补全:自动补全应该是使用过eclipse的开发人员觉得习以为常的功能了,无论是类名,变量名,还是方法名,甚至是系统或自定义模板都会在适当的时候出现在你面前。对于类,即使没有import只要在classpath上依然会列出来供你选择,并在选择过后自动import进来,无比方便。不过对于VS,可真是一点忙也不帮啊。
(类名补全)
(变量名自动补全)
2.查找:编写代码时候,经常要用的一个辅助功能就是想看看在当前有效区域中我这个对某一个变量所进行的操作,或者这个类中的某一个私有方法在哪个地方被调用了,在eclipse中只要将鼠标点一下你要观察的变量或者方法,通过背景颜色很明显的就能区分。不过,对于VS,是一点忙也不帮啊。
(变量高亮显示)
如果我想在eclipse里通过名称找到某一个类CTRL+SHIFT+T方便得很。在VS里面好像不成。
(根据类名查找)
3.浏览:想要看看子类和父类之间的继承关系应该是拿到新模块代码后做的第一件事了。eclipse里面查看的非常清楚无论是从正向还是从反向。
(查看类型层次关系反向)
(查看类型层次关系正向)
想要查看某个方法的调用层次关系?没问题。
(查看调用层次关系)
在一个子类中,查看到底哪个方法覆写或实现了哪个父类或接口的方法在eclipse里面有明确的标志很方便查看。VS里面呢,你需要有个好记性。
(查看覆写/实现)
4.导航:在变量、方法、类上CTRL+鼠标点击,就会前往定义这个功能很贴心的。这个好像VS提供了,只不过需要在键盘上拼命地找到F12。哦,还不完全是,前往你选中类或方法的定义有一个前提就是你要打开过你要去的那个类所在的工程!Faint,我要是知道在哪还需要你IDE干什么啊。eclipse我爱死的功能就是一键回到最近一次修改的位置,VS才不替我记着呢。
5.重构:eclipse里面变量、方法、类重命名/移动位置基本上不用你操心鼠标点点就成了。VS里面好像都有,现在还没有用过不做评论。
6.调试:调试时候功能差不多,eclipse下一步下一步执行很快,VS却很慢这个不知道跟工程太多有关系没有。对了还有一个,eclipse可以在调试的过程中修改代码,只要不破坏结构保存成功即可重复运行不用来回重启,贴心贴心太贴心了。
7.快捷键:这个东西倒是不能强求,毕竟是先用哪个习惯哪个。不过我总觉得编辑代码常用功能的那些快捷键中,eclipse经常是一次完成,VS需要两次。比如注释掉代码eclipse是CTRL+/,VS中是CTRL+K,CTRL+C。取消代码注释eclipse是再按一次CTRL+/,VS里面竟然是另一套快捷键CTRL+K,CTRL+U,真不知道图什么。
8.其他:eclipse本身是多线程的,很多情况下你可以一边工作一边等待某个后台工作完成。
真的,还有好多好多贴心的功能让我对eclipse聪明可爱有说不出的喜欢,看着蠢蠢的VS也真的有点无奈,可能部分问题是由于我对语言和VS不够了解造成的。如果朋友们有什么好的经验能够提高工作效率欢迎一起交流。
当然了,我相信世界不会这样对我的。当然了,我相信不仅仅我一个人在这叫唤呢。后来发现了resharper,一个收费的VS插件,就是解决这些不方便的可以在试用期许可范围内爽一爽。解决了很多功能上的问题,速度问题依旧没有改善。回头我要写一个介绍这个插件的文章,这之前有兴趣的可以去看看http://www.jetbrains.com/resharper/
写点东西真费劲啊,没办法慢慢来吧。