转移到NetBeans平台的10个技巧

开发 后端
本文详解了转移到NetBeans平台的10个技巧。本文转自外国开发者Geertjan Wielenga的博客原文名:10 Tips for Porting to the NetBeans Platform。Geertjan与一些正在向NetBeans平台转移的开发人员深入交谈后,总结出转移到NetBeans平台的10个实用的技巧。

【51CTO译文】51CTO曾在浅谈NetBeans开发Swing有过介绍:部分Swing应用程序开发团队开始转向NetBeans平台,特别是Java 7重新更新发展方向,确定JSR-296进入永久性冬眠后,这个趋势更加突出。

NetBeans可能是JSR-296项目的最大赢家,它能帮助开发人员在他们的项目中采取下一步行动,如果没有NetBeans,他们可能不知道该怎么做,如他们用JSR-296中的SingleFrameApplication类代替了JFrame,因为使用它能更容易与JSR-296(我拒绝把它称为Swing应用程序框架,SAF,因为这个名字太自大了,好像就没有其它Swing应用程序框架似的)接轨,特别是在NetBeans IDE的帮助下,许多开发人员都这样做了,迅速地看到了他们的开发成果。

但遗憾的是JSR-296已经停止开发了,当你用最新的NetBeans IDE 6.9创建这种应用程序时,它会警告你JSR-296已经没有再继续开发了,如下图所示。

 NetBeans 6.9新建Swing应用程序时的警告信息
图 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类,以便它们可以显示在资源管理器视图中,包括属性窗口等,这些都应根据你自己的步伐进行调整。根据要转移的规模,你花在转移上的时间可能需要数周或数月,这都很正常,如果你没有那么多时间,你应该考虑分步实施,为每一个版本确定好要转移的功能,没有什么规则可循,只要根据你自己的需要安排就行了。

这就是我总结的技巧,读了这篇文章你有何感想呢?你还有其它建议吗?希望看到你的评论!

原文出处:netbeans.dzone.com/10-tips-4-porting-2-netbeans

原文名:10 Tips for Porting to the NetBeans Platform

作者:Geertjan Wielenga

【51CTO译稿,非经授权谢绝转载,合作媒体转载请注明原文出处及作者!】

【编辑推荐】

  1. NetBeans 6.9是完美的开发环境吗?
  2. NetBeans 6.9正式版发布(附下载地址)
  3. NetBeans下如何设计UML模式
  4. NetBeans SVN经验总结之全程攻略
  5. GlassFish3.0.1发布 捆绑NetBeans 6.9
责任编辑:佚名 来源: 51CTO.com独家译稿
相关推荐

2019-04-03 11:25:59

Windows 10HDDSSD

2012-11-01 16:11:31

2021-04-25 14:54:53

数据库安全系统

2013-02-22 09:34:53

红帽Hadoop开源

2013-06-09 10:18:49

迁移云计算风险评估

2010-04-19 10:50:01

Oracle转移

2020-05-09 10:50:10

联络中心远程工作通信网络

2020-06-18 10:12:42

云计算云安全数据

2020-01-06 10:51:24

云计算IT混合云

2019-02-25 18:54:14

ERP云端迁移

2021-01-18 09:35:17

Travis-CGithub ActiLinux

2021-08-13 15:03:04

GitHub代码开发

2012-08-11 21:43:11

2011-01-19 09:25:40

互联网

2014-09-29 10:41:07

MDMMIM企业移动安全

2019-07-02 13:52:04

云计算数据中心IT

2019-11-11 09:55:05

Windows 10许可证新计算机

2021-03-04 08:13:53

苹果iCloud谷歌相册

2019-08-26 08:00:55

Docker容器映像

2017-10-31 14:13:24

网络SDN数据中心
点赞
收藏

51CTO技术栈公众号