转移到NetBeans平台的10个技巧
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 NetBeans可能是JSR-296项目的最大赢家,它能帮助开发人员在他们的项目中采取下一步行动,如果没有NetBeans,他们可能不知道该怎么做,如他们用JSR-296中的SingleFrameApplication类代替了JFrame,因为
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
NetBeans可能是JSR-296项目的最大赢家,它能帮助开发人员在他们的项目中采取下一步行动,如果没有NetBeans,他们可能不知道该怎么做,如他们用JSR-296中的SingleFrameApplication类代替了JFrame,因为使用它能更容易与JSR-296(我拒绝把它称为Swing应用程序框架,SAF,因为这个名字太自大了,好像就没有其它Swing应用程序框架似的)接轨,特别是在NetBeans IDE的帮助下,许多开发人员都这样做了,迅速地看到了他们的开发成果。
但遗憾的是JSR-296已经停止开发了,当你用最新的NetBeans IDE 6.9创建这种应用程序时,它会警告你JSR-296已经没有再继续开发了,如下图所示。
图 1 NetBeans 6.9新建Swing应用程序时的警告信息
因此,现在有更多的开发人员需要NetBeans平台,因为只有它能为Swing应用程序提供最合理的下一步行动,特别是当你的代码中大量采用了JSR-296规范时,如你的代码中找不到JFrame,你可能将重点放在你的业务领域而不是基础设施了,因此你需要生命周期管理,Action系统和Task,你现在仍然需要它们,而这些NetBeans平台都还为你保留着。
我与一些正在向NetBeans平台转移的开发人员深入交谈后,总结出转移到NetBeans平台的10个实用的技巧,如果你也有转向NetBeans的计划,不妨先学习一下别人的经验。
1、按CRUD教程办事
现在到处都有各种各样的教程可供下载阅读,甚至有视频教程可以观看,但我这里推荐的是Netbeans平台CRUD应用程序教程,我最近遇到一位对NetBeans平台感到很困惑的开发人员,当我向他推荐了这个教程学习后,他问的问题也显著不同了,这个教程涵盖了NetBeans平台的典型应用场景,通过它你可以学到更多,关于NetBeans平台,API,过程等一切需要了解的都应有尽有。没有理由不看这个教程就开始NetBeans之旅。
2、打印NetBeans平台的Refcard
面对NetBeans平台时一个很大的问题是作用域,换句话说就是,NetBeans平台到底能干些什么呢?你为什么要使用,什么时候使用?这个时候看视频教程是最有帮助的了,但你也应该打印最基本的NetBeans平台Refcard,它涵盖的内容很全面,甚至连最小的细节都不会放过,在你的编程过程中可以给你很多代码提示和编码技巧。
3、原型
快速实现一个原型,这样你才知道你需要些什么,任何事情都是想起来容易做起来难,因此使用原型可以尽早知道实现目标的难度,备份你的源代码,在NetBeans IDE中创建一个新的NetBeans平台应用程序,创建一个新的模块,然后将你的代码粘贴到这个模块中,接下来打包所有使用到的第三方开发库,根据需要设置依赖,创建一个TopComponent,然后在你的新应用程序窗口中显示一些数据,原型就搭建好了。
4、将外部JAR转换成模块
开发人员经常问的一个头痛的问题是“真的吗?我需要将我所有的库都打包成模块吗?为什么?”,有这种想法表示你想创建一个模块化应用程序,你可以从模块化中受益,如依赖管理,版本控制和信息隐藏,你甚至可以将多个JAR放在相同的模块中(在“库打包成模块向导”中按住CTRL点击或按住Shift点击),但是你需要思考将多个JAR放进同一个模块的缘由,因为你的目标是要创建一个模块化应用程序,因此只应该将那些应该放在同一模块的JAR组织在一起,不要顾此失彼。
5、思考一下模块化的边界
什么时候该创建一个新的NetBeans模块(或OSGi捆绑)?阅读“如何将应用程序拆分成模块”(http://java.dzone.com/news/how-to-split-into-modules)文档很重要。
6、注册Action类
自NetBeans 6.7以来,你通常不再需要NetBeans平台Action类的子类,在“我应该使用哪一个NetBeans平台Action类”(http://netbeans.dzone.com/news/which-netbeans-platform-action)文章中有详细的解释,为什么那样做就好?因为现在你可以直接从原来的应用程序复制ActionListeners和AbstractActions,然后粘贴到NetBeans模块即可,你需要做的就是正确地注册它们,然后就大功告成了,这意味着你的Action类转移到菜单和工具条了,从键盘快捷键调用它们就只是一个注册问题了,而不再涉及到复杂的编码。
7、爱上层
层是你最好的朋友,一个“层”就是一个XML文件,每个模块最多有一个层,应用程序启动时每一层都被添加到虚拟文件系统,你可以在层上注册你喜欢的东西,然后就可以从Java代码中读取这个层了,听起来似乎很抽象,但如果你看了“可插拔的JXTaskPane”示例(http://blogs.sun.com/geertjan/entry/pluggable_jxtaskpane)后,你就觉得很简单了,这也是你转移应用程序最具魔力的地方了,在层中创建一个文件夹(folder),命名为“Products”,然后每个模块提供的新产品在“Products”下注册一个文件夹,在你的代码中,你可以遍历Products文件夹,找出所有的产品,然后在应用程序的窗口中显示它们。服务提供者也可以在层上注册,具体请参考“NetBeans扩展点如何工作?”(http://netbeans.dzone.com/news/netbeans-extension-points)文章。
8、保留JPanels
你的应用程序中使用JPanels了吗?如果你用了,那么你应该感到很高兴,因为你可以无用做任何修改继续使用它们,创建一个新的TopComponent类,然后调用add(myJPanel)即可,就这么简单,你也可以通过选项或向导窗口来完成,例如,你发现JPanel可以被用来配置什么(在选项或向导窗口),以及作为窗口中的一个编辑面板,因此你可以在多个不同的地方重复使用它,只需要在你工作的NetBeans平台容器中调用add(myJPanel)即可。
9、参与社区
通过参与社区你一定会得到更多收获,在dev@platform.netbeans.org邮件列表中你可以看到重要的内容,各种各样的问题和响应的解答,你了解得越多,你越应该利用机会向别人分享你的经验,你也可以参与某些社区应用程序的开发(http://platform.netbeans.org/screenshots.html),为社区贡献一份力量。
10、转移是一个过程
51CTO认为转移是一个过程,不是一时半会儿就能完成的,可能需要发布几次产品的迭代,因此需要有相应的计划,例如,当你转移到NetBeans平台后发布第一个版本时,你可能只是简单地将JPanels转移到新平台的TopComponents,在下一个版本中,你可能想将你的业务对象打包成Node类,以便它们可以显示在资源管理器视图中,包括属性窗口等,这些都应根据你自己的步伐进行调整。根据要转移的规模,你花在转移上的时间可能需要数周或数月,这都很正常,如果你没有那么多时间,你应该考虑分步实施,为每一个版本确定好要转移的功能,没有什么规则可循,只要根据你自己的需要安排就行了。
这就是我总结的技巧,读了这篇文章你有何感想呢?你还有其它建议吗?希望看到你的评论!
原文名:10 Tips for Porting to the NetBeans Platform
作者:Geertjan Wielenga