内容摘要 -
很明显,Microsoft Visual Studio 与 Eclipse 是不同的:Java™ 编程语言不同于 C/C++/.NET,并且 Java 曾经是 Eclipse 所支持的第一种语言。两者不同还因为 Eclipse 旨在成为 “可以实现任何功能而不是实现具体某项功能(everything and nothing in particular)” 的 IDE,引入了更多一般功能和可自定义功能。Eclipse 还可用于更多的操作系统中。但是,我们的目的不是要列举出 Eclipse 与 Visual Studio 之间的所有 差异。
全文 -
Visual Studio 与 Eclipse 的比较和对照
所有集成开发环境 (IDE) 都十分相似,因为它们都是为同一目的而构建的,但是它们也有差异。这些差异中有些可以归因于应用域不同,但是其余差异则因 IDE 设计而产生。
很明显,Microsoft Visual Studio 与 Eclipse 是不同的:Java™ 编程语言不同于 C/C++/.NET,并且 Java 曾经是 Eclipse 所支持的第一种语言。两者不同还因为 Eclipse 旨在成为 “可以实现任何功能而不是实现具体某项功能(everything and nothing in particular)” 的 IDE,引入了更多一般功能和可自定义功能。Eclipse 还可用于更多的操作系统中。但是,我们的目的不是要列举出 Eclipse 与 Visual Studio 之间的所有 差异。
Eclipse 工作区
一般而言,Eclipse 工作区的功用与 Visual Studio 解决方案相同:组织层次结构中的顶级项目、文件夹和文件。但是,有一些主要差异。Visual Studio 解决方案仅仅列出它所包含的项目及其依赖关系、配置、版本控制信息等。
Eclipse 工作区所实现的功能不只包含上述这些。它将管理大多数非项目信息,例如全局首选项、窗口布局以及搜索和浏览历史记录。Eclipse 启动时必须同时启动一个工作区,并且您不能按照关闭 Visual Studio 解决方案的方法来关闭工作区。虽然可以在 Eclipse 中切换工作区,但是许多用户都使用包含自己所有项目的一个工作区。
Eclipse 项目与 Visual Studio 项目的差异在于与底层文件系统的交互方法上。在 Visual Studio 中,项目与它在文件系统中的布局的关联并不紧密:您可以将 c:\temp\ 中的文件添加到位于 d:\work 的项目中,并且 Visual Studio 将记录新文件的引用位置并像任何其他文件一样打开它。文件夹(如 “头文件”)不与文件系统文件夹(在内部,此类文件夹被称为过滤器)对应。
构建项目
与 Visual Studio 方法下的项目拥有单个项目类型 (C++/C#/J#) 相反,Eclipse 项目可以没有、有一个或有多个本性。例如,Eclipse 中的 Java 项目有 Java 本性,而动态 Web 项目(使用 Eclipse WTP 创建;请参阅 参考资料)有 Java 和(隐含的)Web 本性。项目本性将定义一组生成器,这些生成器将在构建项目时运行。例如,Java 本性将添加一个把 Java 源文件编译成 .class 文件的生成器,而 Web 本性将添加一个验证 XML 和 HTML 文件的生成器。
自动构建项目
构建非 Java 项目
自动构建对于 Java 项目十分理想,因为内部的增量编译程序(Eclipse 不使用 javac)可以快速处理小型代码更改。虽然构建是在后台运行,但是对于这种项目类型(例如 CDT 项目),小更新也会触发冗长的编译过程,您可能宁愿禁用自动构建 (Project > Build Automatically)。然后,您可以手动运行构建 (Project > Build All) 或让 Eclipse 在运行应用程序之前执行构建。
当开发人员第一次使用 Eclipse 时,许多人都会去寻找 Build 命令。但是令人惊讶的是,他们要么找不到这条命令,要么不能使用这条命令。那是因为不同于 Visual Studio 和其他一些 IDE,Eclipse 有一项自动构建 功能。在 Java 项目中,Java 文件每修改一次,Eclipse 就将编译一次相关文件,包括未直接受更改影响的文件。自动构建是一种可以快速发现影响其他文件的编译错误的优秀方法。许多操作(例如 Java 搜索)依赖于这些构建结果。
自定义构建
通常 —— 主要针对 C++ 项目 —— Visual Studio 项目将使用自定义构建步骤来执行非标准构建任务。自定义构建命令都是 Visual Studio 项目中的普通命令行指令。另一方面,Eclipse 可以运行独立程序和 Ant 构建脚本。例如,只要项目被重新构建,您就可以使用 Ant 脚本构建
|