关于.net和Java的比较

2008-09-17 17:15:52.0     浏览:1005     来源:中国IT实验室
关键词:  Java     .net  

(1)比如要在代码编辑器上增加新特性,在Eclipse中可以通过代码编辑器中提供的大量扩展点来实现,而在Visual Studio中的代码编辑器中则只提供了很可怜的几个可扩展性。这一点是Visual Studio插件体系最大的硬伤,大大限制了基于Visual Stuio的插件的功能,相信随着MS对Visual Studio插件体系的逐渐重视,这一点会慢慢跟上来的。

  (2)Visual Studio的插件体系和.Net结合过于紧密,在Eclipse中可以为Python、Ruby、C#、C、ASM等很多语言开发IDE(提供代码编辑、代码辅助、调试、编译等功能),这些语言不必与Java有任何关系,而在Visual Studio中虽然也可以为一种语言编写IDE,比如IronPython、J#,但是这些语言是和.Net集合紧密的,比如要为这种语言提供调试功能,则必须将代码编译成MSIL代码,这对于很多语言来讲是不可能的;

  (3)Eclipse中的插件只要在自己的plugin.xml文件中配置好就可以了,把那个插件的jar包放到Eclipse中就可以运行,而Visual Studio中的插件则必须首先注册到注册表,调试和部署起来非常麻烦;

  (4)Eclipse运行时的配置是保存在Workspace中的.metedata目录下的,因此在开发插件的时候会把插件的配置信息自动写到Host起来的那个Eclipse的Workspace中,被调试模式启动的Eclipse所做的一些修改不会影响主Eclipse,而在Visual Studio中虽然可以使用Experimental Hive方式进行插件开发,但是由于这些配置是保存在注册表中的,所以被Host启动的Visual Studio实例会污染到主Visual Studio,每次重启IDE都需要运行“Reset the Microsoft Visual Studio 2008 Experimental hive”来进行环境的重置,且重置耗时非常长,浪费了大量时间;

  (5)VS2008中,如果插件中抛出异常,而又没有捕获的话,轻则VS2008会显示一个错误消息框,重则VS2008会宕掉;而在Eclipse中会将插件中未捕获异常显示出来并且输出到日志文件中,方便插件开发者排查插件的Bug。

  (6)Eclipse中工程相关的特性是以Nature的方式提供的,一个Nature通常可以挂接到几乎所有的工程类型中去,包括用户自定义类型;而在Visual Studio中工程相关的特性则是以SubProject的形式提供的,往往只能挂到Visual Studio内置的少数几个工程类型中去(比如CSharpProject、VBProject),这样可扩展性大大降低了。

  (7)Eclipse中可以使用JET来开发非常复杂的代码生成器,而Visual Studio中的代码生成则只能用非常简单的代码模板机制,复杂的逻辑就必须通过字符串拼接来完成。

[上一页]   [第1页]   [第2页]