iBATIS發(fā)展方向的四方面淺析
iBATIS發(fā)展方向是如何呢?在過去幾個(gè)月中,iBATIS獲得了巨大的發(fā)展動(dòng)力。作為結(jié)果,iBATIS小組發(fā)展壯大了,產(chǎn)品也得到了改進(jìn),我們也開始討論支持新平臺(tái)的問題了。下面我們將詳細(xì)地討論iBATIS未來的發(fā)展方向。
iBATIS發(fā)展方向1Apache軟件基金會(huì)
近期,iBATIS已經(jīng)成為了Apache軟件基金會(huì)的一部分。我們之所以選擇轉(zhuǎn)向Apache,是因?yàn)槲覀兿嘈潘麄兊氖姑⑶易鹬厮麄兊膽B(tài)度。Apache絕不僅僅是一堆服務(wù)器和基礎(chǔ)設(shè)施的組合,它是一個(gè)系統(tǒng),是開源軟件真正的家。Apache更關(guān)注軟件周邊社區(qū)(即使用者社區(qū)),而不是軟件背后的技術(shù),因?yàn)槿绻麤]有社區(qū),軟件就是一個(gè)死的工程。
這對(duì)于iBATIS用戶來說意味著,iBATIS并不是由某個(gè)單獨(dú)的團(tuán)體來指導(dǎo),也不是依賴于某個(gè)單獨(dú)的團(tuán)體。iBATIS不屬于任何個(gè)人——它屬于整個(gè)社區(qū)。Apache能夠始終保護(hù)iBATIS,并且確保它維持正確的方向。然而,Apache許可并沒有像GPL might許可那樣,限制對(duì)開源軟件的使用。Apache許可并不是一個(gè)viral許可,這意味著你可以在商業(yè)環(huán)境中自由地使用這些軟件,而不用擔(dān)心需要遵守許多不合理的條件。
雖然Apache并不關(guān)注基礎(chǔ)設(shè)施,但是它們確實(shí)擁有一些非常好的基礎(chǔ)設(shè)施。目前iBATIS使用Subversion source control(SVN)進(jìn)行版本控制,用Atlassian的JIRA來跟蹤問題,用Atlassian的Confluence來協(xié)作撰寫wiki文檔,并且使用Apache的郵件列表服務(wù)器進(jìn)行開發(fā)小組、用戶以及一般社區(qū)之間的交流。
Apache擁有保護(hù)iBATIS所需要的一切,并且可以確保:只要仍然有人想要使用iBATIS,它就會(huì)在那兒。
iBATIS發(fā)展方向2更簡(jiǎn)單、更小、依賴性更少
和其他框架不同的是,iBATIS工程并不期望分枝出新的領(lǐng)域,也沒有任何野心要解決所有問題。iBATIS是一個(gè)目標(biāo)非常集中的工程,每一次發(fā)布新版本,我們都期望能使它更小、更簡(jiǎn)單,并且更少地依賴第三方庫(kù)。
我們相信iBATIS還有許多創(chuàng)新的空間。iBATIS可以從很多新的技術(shù)和設(shè)計(jì)方法中獲益,以便使其配置更加簡(jiǎn)練,也更容易使用。例如,C#和Java都內(nèi)置了元數(shù)據(jù)(attribute,也可稱為“標(biāo)注(annotation)”)功能。在未來的版本中,iBATIS就有可能利用此功能來減少配置框架時(shí)所需的XML代碼的數(shù)量。
在為iBATIS開發(fā)支持工具方面也還有許多事情可做。iBATIS的設(shè)計(jì)使得為其開發(fā)像IDE這樣的圖形化工具非常地容易。也可考慮創(chuàng)建支持從數(shù)據(jù)庫(kù)框架(database schema)中直接生成iBATIS配置文件的工具,其實(shí)這一點(diǎn)上已經(jīng)有相應(yīng)的工具可以用了。你可以在我們的網(wǎng)頁http://ibatis.apache.org上看到一些工具的示例。
iBATIS發(fā)展方向3更多的擴(kuò)展點(diǎn)和插件
iBATIS已經(jīng)有了許多擴(kuò)展點(diǎn)。我們將在第12章中深入探討有關(guān)擴(kuò)展的問題。你可以實(shí)現(xiàn)你自己的事務(wù)處理器、數(shù)據(jù)源、緩存控制器(cache controller),以及其他。但是我們期望使得iBATIS更易于擴(kuò)展。我們希望將JDBC架構(gòu)的幾乎每一層都設(shè)計(jì)為可擴(kuò)展的,這將意味著你可以實(shí)現(xiàn)自己的ResultSet處理器和SQL執(zhí)行引擎。這將幫助我們支持更復(fù)雜的系統(tǒng),或者遺留系統(tǒng)以及私有系統(tǒng)。它也將使開發(fā)者能夠更充分地利用特定數(shù)據(jù)庫(kù)或應(yīng)用服務(wù)器的定制特性。
iBATIS發(fā)展方向4支持更多的平臺(tái)和語言
正如你在第1章和第2章中所看到的那樣,我們已經(jīng)在.NET和Java中討論了iBATIS。本書的其余部分將主要關(guān)注Java版iBATIS的API,但是大部分的信息都是可以被轉(zhuǎn)化成.NET平臺(tái)的。另外,我們還將在附錄中較詳細(xì)討論iBATIS.NET。實(shí)際上iBATIS也已經(jīng)有Ruby實(shí)現(xiàn)了,但是Ruby是一種完全不同的語言,因此用Ruby實(shí)現(xiàn)的iBATIS也有很大的不同。本書中我們就不討論其Ruby實(shí)現(xiàn)了。
除了Java和C#之外,iBATIS小組還在討論用其他的語言來實(shí)現(xiàn)iBATIS,這些語言包括PHP 5和Python。我們相信iBATIS對(duì)于幾乎任意一種無法使用或不愿使用底層數(shù)據(jù)庫(kù)API和高層對(duì)象/關(guān)系映射工具的平臺(tái),都可以做出巨大的貢獻(xiàn)。iBATIS可以幫助你找到折中的辦法,并且允許你始終用一致的方式來實(shí)現(xiàn)所有的應(yīng)用。
我們也曾經(jīng)討論過要起草一份規(guī)范,使用戶可以更容易地把iBATIS移植到不同的平臺(tái)上,并且確保合理的一致性。當(dāng)然了,我們既希望iBATIS能夠充分利用特定語言和平臺(tái)的特性,也期望它們能有一定程度的相似性,以便確保它們都能被稱為iBATIS,并且能夠被熟悉另一種語言中的iBATIS的開發(fā)者一眼就辨認(rèn)出來。
iBATIS發(fā)展方向的四方面就向你介紹到這里,希望對(duì)你了解iBATIS發(fā)展方向有所幫助。
【編輯推薦】