【IT168 专稿】最近NetBeans 6.5 Milestone 1已经正式发布,大家从Milestone(里程碑)就可以看出这个版本一定有些比较大的改进。作为一个使用NetBeans IDE时间比较长的程序员,我想应该和大家分享一下我对这个IDE的体验:NetBeans 6.5 M1中不乏一些很好很强大的功能,同样也有一些功能它可以做得更好,当然它也存在一些比较垃圾的地方。
我最初开始使用NetBeans的时候它的版本还是V4,当时我主要是在Windows平台上编写J2EE应用,当时这个版本的IDE光启动就要花好几分钟,对于这一点我想有很多人应该和我有同感吧,这是一个令人无法容忍的缺点。对于它以后的每一个版本我一般都是试用过之后马上就放弃,不断重新切换回到使用Eclipse进行开发。
不过最近的4个星期,我一直在专门使用NetBeans来编写一个复杂的Java EE应用和一个相对简单的Groovy和Grails应用。
OK,下面就谈谈我对这个IDE的一些使用体验,供大家参考交流。
我使用这个NetBeans IDE进行了Java持久化(Java Persistence API)、Enterprise Java Beans(EJBs)和web服务方面的应用程序开发。NetBeans IDE的Java EE模块可以支持Java EE 5,也可以支持早期版本的J2EE。
最新的NetBeans 6.5 M1版第一个让我感到惊喜的是它的启动速度,安装完成并运行它,你会发现它启动的速度已经非常快,在我的机器上它只花了7秒左右的时间。因此与以前的版本相比,它的第一个优点是性能的提高和更快速的启动。
在这个IDE中的数据库支持功能是非常强大的。通过它的向导协助你可以创建数据库连接,也可以对它们进行管理,从这个IDE中你可以轻松的直接对数据表实现创建、更新和查询等操作。默认模式下,你可以连接到Derby、MySQL和PostgreSQL等数据库。不过,如果你需要连接到其它数据库,例如微软的SQL Server或Oracle,你只需要在这个IDE中加入一下相应的数据库驱动即可,设置界面如下图所示:
图1、设置数据库驱动
在这个IDE中,你还可以通过向导来实现Java持久化应用程序开发。通过向导你能够从一个数据库创建一个实体类。在IDE向导中你可以查看数据库的结构,并为实体关联产生所需要的全部必需代码。
图2、从数据库产生实体类
然而,如果你选中了包含关联表(Include Related Tables),这个向导会从数据库结构中取回所有的实体关联,你没有办法来指定关联的方向性。
举个例子来说,如果在Customer和Address实体间有一个关联,我通过Customer实体中的一个关联方法可以获得相应客户的Address,我不可能再去询问Address实体它的Customer是谁。
尽管你可以打开Java源程序编辑器通过程序来实现这一点,不过,如果让用户可以通过向导来更方便的指定这个中关联的反响,岂不是效率更高?因此以我之见,NetBeans团队应该增加更多的支持来更好的处理关联。
在很多现实的应用程序开发中,如果你实现知道某个表的数据很少发生变化,你可能更喜欢开发一个只读的实体。但是,在NetBeans 6.5 M1版中我没有发现能够在哪一个向导中可以将一个实体标记为只读。
如果你正在EJB模块或web模块中使用Java持久化API,这个IDE可以让你创建一个持久化单元。和所有其它模块一样,它具有一个向导让你指定众多相关细节信息,并且会为你产生一个persistence.xml文件。
图3、新建持久化单元
下面让我们把目光从持久层(Persistence tier)转到业务逻辑层(business logic tier)。在NetBeans 6.5 M1中有个向导可以用来新建会话Bean,另外还有一个向导可以用来创建消息驱动Beans。在新建会话Bean向导中,你可以指定会话的类型,是无状态会话还是有状态会话,也可以设定你希望这个IDE产生的接口类型(远程或本地)。
不过在消息驱动Beans向导中由一个地方令人有些困惑,你不得不在Project Destination和Server Destination之间作出选择,但是根据上下文关系IDE应该可以作出正确的判断。
图4、新建消息驱动Bean
这个IDE还可以帮助你进行Web服务开发;它支持大量的web服务标准,诸如JAX-WS 2.1、JAX-RS(JSR-311)、JAX-RPC(JSR-101)等。我使用这个IDE来从JPA实体类中创建了一个兼容JSR311的RESTful Web服务,另外还从Java类中创建了一个基于SOAP的Web服务。而且,你可以使用这个新的IDE的soap插件来测试Web服务。
NetBeans可以让你登记使用任何Java EE兼容的服务器来部署你的应用。它支持下图中所列出的所有主流服务器。
图5、支持的服务器类型
但是,一旦你指定了某种类型的应用服务器后,如果你以后希望在其它类型应用服务器部署、运行和测试你的应用程序,你将必须通过以下三步来修改目标服务器。
1、右键点击项目窗口中的项目节点,并选择属性;
2、在项目属性对话框中选择运行;
3、从Server下拉菜单中选择新的目标服务器,并点击OK。
我有一个建议,NetBeans可以将所有的服务器类型作为一个子菜单条目放在IDE的RUN菜单之下,你是否也感觉这样会更方便?
上面主要谈论了这个IDE一些比较好的功能和一些可以做得更完善的功能,有的朋友可能会问“你发现的这个IDE比较丑陋的地方是什么?”下面我来谈一下这个问题。
如果你在进行企业Java应用的开发,多数情况下会使用Ants作为基础生成平台。NetBeans默认会产生编译、测试、部署、卸载和运行你的应用的所有生成文件。但是,即使我有数年使用Ants的经验,我在使用这些生成文件的时候也是困难重重。我使用了一个叫做Grand and Vizant的工具来产生这些生成文件的可视文档,以便能更好的理解它们之间的关系,然而我得到的图表如下所示:
图6、生成文件关系图(点击放大)
无论对于任何人来说,要想在他们的企业应用中继续使用这些生成文件,恐怕要花费一番大力气了。
以上就是我在使用这个新版NetBeans IDE开发一个简单Java EE应用时的一点体验。赶快来亲自尝试一下吧,你会发现这个IDE已经取得了非常大的进步。