轉移到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已經沒有再繼續開發了,如下圖所示。
圖 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譯稿,非經授權謝絕轉載,合作媒體轉載請注明原文出處及作者!】
【編輯推薦】