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