小雨開源

          我也加入到了開源隊(duì)伍中了

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì)

          如果你有三年以上的J2EE開發(fā)經(jīng)驗(yàn),但不知道huihoo,那么你一定不是一個(gè)合格的J2EE程序員。在《中國java開源界最可愛的人們》一文中,我把huihoo列在第一位。本文從第三方的角度對(duì)huihoo作一個(gè)簡(jiǎn)單的介紹,包括“三個(gè)人”、“一個(gè)項(xiàng)目”、“三次升級(jí)”、“一些不足”、“兩點(diǎn)遺憾”及“更多期待”幾部分,你可以有選擇閱讀相關(guān)部分內(nèi)容。

          Huihoo是從2001年開始的,那時(shí)候國內(nèi)對(duì)j2ee真正熟悉的沒有多少人,更別說是j2ee的規(guī)范了。然而Huihoo卻在深入研究j2ee規(guī)范的基礎(chǔ)上,研發(fā)出符合j2ee規(guī)范的、開源的j2ee應(yīng)用服務(wù)器。研發(fā)一個(gè)j2ee應(yīng)用服務(wù)器所涉及到的知識(shí)是非常多,不但要熟悉了解這些規(guī)范,而且還需要深厚的java功底,socket、線程及并發(fā)、緩存、甚至xml等。因此,你可以想象做這事的人是多么的了不起。

          Huihoo的出發(fā)點(diǎn)是致力于中間件、基礎(chǔ)件的研究與應(yīng)用。并通過開源這種形式讓國內(nèi)很多在2001年很想知道中間件幕后真相的開發(fā)人員能參與進(jìn)來,對(duì)于普及j2ee有著非常大作用。


          三個(gè)人

          Huihoo創(chuàng)立于2001年,這么多年來,其成員來來往往有幾十上百人,很多人都猶如過客一樣,來也匆匆去也匆匆;另外也有一些成員長期游離在團(tuán)隊(duì)邊緣,想出力,卻發(fā)現(xiàn)有力卻使不出或者找不到地方使。Huihoo能堅(jiān)持走到現(xiàn)在,離不開三個(gè)發(fā)起人,他們可以說是huihoo的靈魂人物。

          龍輝(Allen)huihoo的發(fā)起人,負(fù)責(zé)團(tuán)隊(duì)的項(xiàng)目組織、協(xié)調(diào),負(fù)責(zé)官方網(wǎng)站的維護(hù)、策劃,2002年底開始把huihoo當(dāng)成自己的一個(gè)事業(yè),并一直付出到現(xiàn)在。

          楊泳(Orbat)JFox的主創(chuàng)人員,也是huihoo的發(fā)起人。在Huihoo的眾多成員中,為團(tuán)隊(duì)貢獻(xiàn)過代碼的30多人,其中核心的開發(fā)人員不到10名,最成功的項(xiàng)目JFox3.0基本上全是一人之手,那就是楊泳。

          程勇(Peter Cheng):也是huihoo的發(fā)起人之一,在團(tuán)隊(duì)內(nèi)部也稱為項(xiàng)目協(xié)調(diào)人員。憑著他對(duì)開源的熱情,輾轉(zhuǎn)于北京各高校去宣傳開源,推廣Huihoo,在多很知名廠商的各種會(huì)議上代表Huihoo作主題演講,并且一直參與JFox等團(tuán)隊(duì)項(xiàng)目的協(xié)助及管理工作,他對(duì)huihoo甚至對(duì)中國開源界的貢獻(xiàn)是大家有目共睹的。

          三個(gè)人都是想做事情,也能做事情的人。他們的分工是比較合理,一個(gè)負(fù)責(zé)生產(chǎn)、一個(gè)負(fù)責(zé)管理及后勤、另外一個(gè)負(fù)責(zé)宣傳及推廣。三人都在各自的崗位堅(jiān)持了這么多年,并且不斷進(jìn)步,越做越好。


          一個(gè)項(xiàng)目

          作為一個(gè)開源團(tuán)隊(duì)及組織,huihoo產(chǎn)生過很多點(diǎn)子,下屬有很多項(xiàng)目。但是一直堅(jiān)持并取得一定成果的只有一個(gè),那就是JFox,官方站http://www.huihoo.org/jfox/svn: http://jfox.googlecode.com/svn/trunk

          JFox是一個(gè)J2EE應(yīng)用服務(wù)器,是一個(gè)支持J2EE相關(guān)標(biāo)準(zhǔn)(比如EJBJNDIJMSJTA)的應(yīng)用服務(wù)器。在JFox3的文檔中,我們看到:JFox被設(shè)計(jì)為輕量的、穩(wěn)定的、高性能的Java EE應(yīng)用服務(wù)器, JFox提供了支持模塊化的MVC框架,以簡(jiǎn)化EJB以及Web應(yīng)用的開發(fā),以滿足企業(yè)對(duì)快速化統(tǒng)一開發(fā)平臺(tái)的迫切要求。JFox 3支持標(biāo)準(zhǔn)如下:EJB3.0JPA1.0JMS 1.1JNDI1.2JDBC3.0Servlet2.5JSP2.1

          JFox可以說是從模仿國外同類產(chǎn)品開始的,在1.02.0中,你都會(huì)看到JFox中有很多JBoss一些核心部件(如微內(nèi)核)設(shè)計(jì)及代碼影子。直到JFox3.0,通過整合其它的框架,JFox也提出了一些獨(dú)創(chuàng)的思想及改進(jìn),不斷走向輕量。

          JFox應(yīng)該算是比較成功的,得到國內(nèi)外開源同行的認(rèn)可,比如mortbayjetty上對(duì)jfox就有推薦,也成為了很多做JavaEE應(yīng)用服務(wù)器產(chǎn)品開發(fā)的程序員必備的參考對(duì)象。


           

          (JFox體系結(jié)構(gòu))

          JFox的安裝

          下載jfox.war ,拷貝到 %TOMCAT_HOME%/webapps 下,以便在Tomcat啟動(dòng)時(shí)加載。JFox 3應(yīng)用服務(wù)器是設(shè)計(jì)成嵌入式的,作為一個(gè)標(biāo)準(zhǔn)的Web Application部署在Tomcat中。啟動(dòng)Tomcat,默認(rèn)配置下,使用瀏覽器訪問 http://localhost:8080/jfox,如果看到JFox歡迎頁面,那么恭喜你,JFox安裝成功了。

          運(yùn)行EJBJPA

          1、容器內(nèi)運(yùn)行

          將你的javaee應(yīng)用打成jar包,可以發(fā)布至WEB-INF/lib下,JFox提供了更好的以模塊的形式來發(fā)布你的應(yīng)用,Web服務(wù)器Tomcat啟動(dòng)時(shí),會(huì)自動(dòng)啟動(dòng)JFoxEJB容器,并發(fā)布你的應(yīng)用;可以通過查看日志或者使用管理控制臺(tái)來檢查你的EJB/JPA組件是否發(fā)布成功。

          2、容器外運(yùn)行

          容器外運(yùn)行EJB,使用如下代碼啟動(dòng)Framework:

          Framework framework = new Framework();

          framework.start();

          Framework啟動(dòng)時(shí),會(huì)自動(dòng)加載所有的EJBJPA Entity,啟動(dòng)之后,即可以通過JNDI lookup 得到EJB并發(fā)起調(diào)用。

          容器外運(yùn)行JPA,則可以通過如下方式創(chuàng)建EntityManager

          EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("default");

          final EntityManager em = emFactory.createEntityManager();

          創(chuàng)建EntityManagerFactory的時(shí)候,會(huì)自動(dòng)加載JPAEntity

          然后便可以通過EntityManager發(fā)起各種持久化調(diào)用。

           

          3、使用JNDI

          jndi.properties配置如下:

          java.naming.factory.initial=org.jfox.ejb3.naming.InitialContextFactoryImpl

          java.naming.factory.object=org.jfox.ejb3.naming.InitialContextFactoryImpl

          java.naming.provider.url=java://localhost

          程序中可以使用JNDIContextHelper.getInitalContext()得獲得JNDI環(huán)境。

           

          4JPA支持多數(shù)據(jù)庫


          @NamedNativeQuery(

                   name 
          = AccountDAOImpl.GET_USERNAME_LIST,

                 query 
          = "查詢 username as userid from signon",

                   resultClass 
          = String.class,

                    hints 
          = {

                           @QueryHint(name 
          = "cache.partition", value = "account"),

                           @QueryHint(name 
          = "jdbc.compatible", value = "newDB")

                            }

          )

           

          5、常量注入

          @Constant注解來來注入常量。

          比如:

          而在 ExampleComponent 有以下Field

          @Constant(value=”$APPLICATION_NAME 3.0”)

          private String appName;

          gobal.properties對(duì)APPLICATION_NAME的定義:

          APPLICATION_NAME = JFOX Example Application

           

          6JFoxMVC

          MVC,這里例舉一個(gè)簡(jiǎn)單的應(yīng)用示例:

          @ActionMethod(name="signon", successView = "index.vhtml", errorView = "signon.vhtml", invocationClass = SignonInvocation.class, httpMethod = ActionMethod.HttpMethod.POST)

               
          public void doPostSignon(InvocationContext invocationContext) throws Exception {

                    SignonInvocation invocation 
          = (SignonInvocation)invocationContext.getInvocation();

           

          Account account 
          = (Account)loginService.login(invocationContext.getSessionContext(), this, invocation.getUsername(),invocation.getPassword());

                   
          if (account == null) {

                        String msg 
          = "Invalid username or password. Signon failed";

                       PageContext pageContext 
          = invocationContext.getPageContext();

                       pageContext.setAttribute(
          "errorMessage", msg);

                       
          throw new Exception(msg);

                   }

                  
          else {

                       SessionContext sessionContext 
          = invocationContext.getSessionContext();

                       sessionContext.setAttribute(ACCOUNT_SESSION_KEY, account);

                   }

               }


          三次升級(jí)

          升級(jí)是全方位的,從1.02.03.0,每一次升級(jí)你都會(huì)看到JFoxHuihoo的進(jìn)步,并給我們帶來一些新的東西。如果JFox1.0開始是摸索、模仿別人,準(zhǔn)備制造輪子的話,那么2.0可以說是制造出了一個(gè)還算漂亮的輪子。對(duì)于3.0來說,已經(jīng)不是簡(jiǎn)簡(jiǎn)單單的造輪子了,終于達(dá)到了能夠駕馭JavaEE,并用自己的代碼表達(dá)自己的想法的境界。因此,JFox的第三次升級(jí)可以說是有了很多創(chuàng)新,雖然這些創(chuàng)新還沒有得到業(yè)內(nèi)的廣泛接受,但有了創(chuàng)新,總算是好事,沒準(zhǔn)下一次升級(jí)我們看到不是創(chuàng)新,而是超越呢。

          JFox1.02.0這些已經(jīng)歷史性的東西這里就不說太多,這里例舉一些JFox3.0中的特性及用法,讓大家也看看JFox的獨(dú)特之處。

          楊泳在接受InfoQ采訪時(shí)說的:“JFox主要的特點(diǎn),它可以包括三個(gè)部分,一個(gè)是輕量,另外一個(gè)就是實(shí)用,最后一個(gè)就是差異化。”

          按照楊泳的介紹:所謂比JBoss還輕的輕量是指JFox的內(nèi)嵌容器。相對(duì)于JBoss來說,JFox通過這種內(nèi)嵌EJB容器的方式,把整個(gè)JFox的容器包括它的內(nèi)核,它的容器,它的各種服務(wù),變成了一個(gè)WEBWar包進(jìn)行部署。使得開發(fā)人員在開發(fā)EJB應(yīng)用的時(shí)候,和傳統(tǒng)的開發(fā)Servlet,開發(fā)JSP這種WEB應(yīng)用,不會(huì)有太大的差別。所謂實(shí)用主要是指JFox集成了一些輕量的應(yīng)用框架(如Velocity)提供了一些實(shí)用的功能,如JFox內(nèi)置MVC框架,這些功能能與JFox內(nèi)核服務(wù)、容器的集成。所謂差異化是指提供了一些其它JavaEE應(yīng)用服務(wù)器所沒有的東西,比如提供了一個(gè)MVC框架供開發(fā)Web應(yīng)用,JPA的容器是在iBatis的基礎(chǔ)上,通過SQL Template來進(jìn)行設(shè)計(jì)的。

          除了技術(shù)上的升級(jí)及創(chuàng)新以外,一個(gè)更重要的是文檔質(zhì)量的升級(jí)。JFox以前的文檔都不完善,可以說是非常少,加上國人應(yīng)用心得也比較少,使得對(duì)JFox應(yīng)用推廣非常不利的。然而,每一次JFox的升級(jí),你都會(huì)看到文檔從數(shù)量及質(zhì)量都不斷升級(jí),從1.0時(shí)的一小段介紹文檔到2.0的幾頁說明文檔到3.0的幾十上百頁用戶指南,每一次升級(jí)都能看到非常明顯的進(jìn)步。

          JFox的代碼質(zhì)量比較高,基于接口編程、通用的命名規(guī)范,中文代碼注釋。所有這些都非常適合中國的java程序員學(xué)習(xí)及研究。


          一些不足

          用了一周的時(shí)間對(duì)JFox3進(jìn)行了研究,這里要提出一些認(rèn)為存在不足的地方。這也算是對(duì)JFox的發(fā)展所做的一點(diǎn)小小貢獻(xiàn)吧。當(dāng)然,由于本人水平有限,所以有一些見解有可能不對(duì)。

          1JNDI不能遠(yuǎn)程調(diào)用

          如果是開發(fā)Web應(yīng)用,如果要用到EJB,而又不能支持分布式,我們又為何還選擇EJBSpringJdonGuice甚至EasyJWeb這些框架里面都有包含了IOC容器。而且更加POJO,為何還要選擇用EJBJFox呢?因此,這一方面我不知道這樣的設(shè)計(jì)及限制是對(duì)JNDI的創(chuàng)新,還是因?yàn)?/span>JFox設(shè)計(jì)的局限性所導(dǎo)致。

          2JPA的支持

          可以說JFox只是實(shí)現(xiàn)了JPA1.0中的一小部分。JPA最核心的是什么?對(duì)象及關(guān)系映射,而難度最大的環(huán)節(jié)面向?qū)ο蟮牟樵?/span>(EJBQL)以及各種對(duì)象關(guān)系及表關(guān)聯(lián)的處理,比如OneToManyManyToMany。由于JFox是基于iBatis這樣一個(gè)sql mapping的框架實(shí)現(xiàn)的JPA容器,所以說功能上受到了一定限制。是直接寫面向數(shù)據(jù)庫的sql好還是直接寫面向?qū)ο蟮牟樵兒茫@是一個(gè)問題。另外像hibernate這樣的JPA實(shí)現(xiàn),他的優(yōu)化能力也是非常強(qiáng)的,JPA標(biāo)準(zhǔn)里面也提供了對(duì)原生sql的支持,所以性能不應(yīng)該成為SQL就比EJBQL好的理由。最關(guān)鍵的是,既然我們是一個(gè)按照JavaEE規(guī)范開發(fā)的應(yīng)用服務(wù)器,就要盡量遵循JavaEE的規(guī)范。

          3JFox中的MVC

          JFox中有一個(gè)不一樣的MVC框架,這對(duì)于其它應(yīng)用服務(wù)器來說創(chuàng)新,也就是楊泳所說的差異化。但對(duì)于企業(yè)應(yīng)用來說,JavaEE應(yīng)該更推的是JSF,而且JFox中的MVCJFox 本身存在比較嚴(yán)重的耦合,使用起來并不是非常方便,還有很多地方需要完善。最近看了國內(nèi)的operamaskseasyjweb兩個(gè)開源MVC框架,我覺得JFoxMVC部分可以跟這兩個(gè)框架進(jìn)行整合,通過operamasks增加JFox對(duì)JSF的支持,使用easyjweb替換現(xiàn)有的mvc框架或者借用其中的一些設(shè)計(jì)來改進(jìn)現(xiàn)有的MVC。把MVC中的驗(yàn)證框架、異常處理、多國語言處理等進(jìn)一步完善,減少Action對(duì)框架的依賴,這樣實(shí)用性才會(huì)更強(qiáng)。

          4、文檔及示例

          文檔在JFox3.0已經(jīng)完善得多了,但更應(yīng)該增加一些其它示例,要能充分體現(xiàn)出JFox的優(yōu)勢(shì),僅僅靠一個(gè)petstore是不夠的。

          5、其它

          除了前面提到的以外,JFox中還有很多東西,比如用來做任務(wù)管理的TimerService,數(shù)據(jù)訪問DAOSupport,安全相關(guān)的Sercurityt等等。但相對(duì)于Spring容器中提供的同樣實(shí)現(xiàn),這些功能都還有待加強(qiáng)。

          兩點(diǎn)遺憾

          如何活得更好

          huihoo成立到現(xiàn)在已經(jīng)有近7年了,7年可以發(fā)生很多事情,有人轉(zhuǎn)行了不當(dāng)程序員了、有人結(jié)婚了、有人生子了、有人又離婚了,一個(gè)公司要活上7年是非常不容易的,一個(gè)在中國做開源的團(tuán)隊(duì)能做了7年的開源仍然活著更加不容易。然而,僅僅有活著的勇氣及意志還不夠,還需要活得更好才行,huihoo發(fā)展到現(xiàn)在,存活的項(xiàng)目基本上只有JFox,而且代碼盡然基本上全部一人之手,這其實(shí)算是一個(gè)遺憾,為何沒有更多的人參與到其中來,畢竟一個(gè)人的能力是非常有限,這一點(diǎn)非常值得我們反思。

          應(yīng)用不廣泛

          在陳勇等核心人員的努力下,Huihoo的推廣做得很不錯(cuò),國內(nèi)的很多業(yè)內(nèi)的大腕都知道huihoo,如果你關(guān)注開源方面的java應(yīng)用服務(wù)器,也會(huì)發(fā)現(xiàn)JFox得到很多國外同行的認(rèn)可及推薦。但為什么JFox在市場(chǎng)上的應(yīng)用仍然是只聞?dòng)欣茁暎灰娪挈c(diǎn)呢?不知道國內(nèi)有多少公司使用JFox,也不知道國內(nèi)有多少JavaEE程序員的機(jī)器上安裝得有JFox。感覺是很少的,至少我沒見到幾個(gè)。這也是一個(gè)非常遺憾的。


          更多期待

          在新年鐘聲敲響前許愿的時(shí)候,我許了三個(gè)愿望。一個(gè)許給家人,希望孩子及老婆建康,希望我能帶給他們更多快樂;另外一個(gè)許給自己,希望自己今年能賺更多的錢,盡早把欠銀行的最后20萬早日還清;最后一個(gè)算是給祖國吧,希望在2008年中國除了在奧運(yùn)上拿更多的金牌以外,更希望看到開源領(lǐng)域里的斗士們能帶給我們更多的驚喜。

          huihoo如今已經(jīng)是進(jìn)入了第8個(gè)年頭,受N座大山壓迫的中國人民用了8個(gè)年頭取得抗日戰(zhàn)爭(zhēng)的勝利,也期待經(jīng)歷8年奮戰(zhàn)后huihoo能取得更加輝煌的戰(zhàn)績(jī)。

          版權(quán)聲明:本文版權(quán)由Blogjava小雨開源所有,受法律保護(hù)。歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)保留作者版權(quán)聲明及連接。

          posted on 2008-01-04 15:45 小雨開源 閱讀(3281) 評(píng)論(15)  編輯  收藏

          評(píng)論

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-04 16:31 cnodin

          不錯(cuò),樓主對(duì)國內(nèi)的開源了解得挺多的。huihoo團(tuán)隊(duì)的確是一個(gè)值得尊敬的團(tuán)隊(duì)  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-04 19:46 RoBeRt

          如果你有三年以上的J2EE開發(fā)經(jīng)驗(yàn),但不知道huihoo,那么你一定不是一個(gè)合格的J2EE程序員。

          夜郎自大  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-04 19:51 wǒ愛伱--咾婆

          呵呵.我有去過他們的網(wǎng)站.不過那時(shí)還不知道他們做嘛的  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-05 09:14 張氏兄弟

          的確值得尊敬!
          不過的確對(duì)于他們核心的項(xiàng)目居然是一個(gè)人寫出來的表示遺憾。
          其實(shí)中國很多的開源都是這樣,老大一個(gè)人寫。
          一幫兄弟跟著混,老大垮了,隊(duì)伍就散了。

          也就是很多人都想從這個(gè)隊(duì)伍中得到東西,但是沒有想到怎么付出!  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-05 10:11 wiflish

          支持開源。支持默默付出的你們  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-05 23:11 cssrain

          從學(xué)java到現(xiàn)在工作也就不到1年多。  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-07 09:33 深愛開源的人

          寫的很好。寫出了當(dāng)前中國開源的一些困惑和步履維艱。如何能夠讓JFox走的更好更遠(yuǎn),全靠楊泳一人之力是遠(yuǎn)遠(yuǎn)不夠,需要我們大家,所有熱愛開源的有志之士都能夠參與到JFox中,堅(jiān)持再堅(jiān)持。
          熱情和毅力是JFox能走到現(xiàn)在的關(guān)鍵。但是我們?nèi)砸此紴槭裁碕Fox通過七年的發(fā)展還是處于目前這種狀態(tài)。可能結(jié)合JBoss會(huì)給我們比較大的啟發(fā):
          1. JBoss有一個(gè)全職的有熱情的團(tuán)隊(duì)。
          2. JBoss有一個(gè)基金或大的公司如Redhat的大力支持,使得這些熱情能夠轉(zhuǎn)換成強(qiáng)大的生產(chǎn)力。
          3. 有大量的國內(nèi)外企業(yè)在使用它、支持它,使得它能夠在風(fēng)雨中勇往直前。
          4. 有數(shù)以萬計(jì)的用戶在宣傳它。典型的Java應(yīng)用提供商招聘時(shí)通常問“使用過Jboss嗎?”就是很好的佐證。

          因此,使得國內(nèi)開源特別是JFox走的更遠(yuǎn)的方式就是:
          1. 大家要積極的使用。
          2. 要宣傳它。
          3. 希望有實(shí)力的公司來支持它的發(fā)展。畢竟,人還是要生活的啊,呵呵。

          這是我對(duì)開源和JFox的一些看法。。。。。。。  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-07 09:43 iOpenSource

          國內(nèi)的開源之所以還沒有形成氣候,與開源發(fā)展的整條生態(tài)鏈不完善有關(guān)系,所以還有很長的路要走啊,希望huihoo和jfox能夠探索出來一條適合中國國情的發(fā)展之路,為他們默默加油吧。  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-07 11:03 敢于說真話的人

          我支持HUIHOO,但也希望HUIHOO的JFOX有大的改進(jìn),而不是單純?yōu)殚_源的理想而做一個(gè)自娛自樂的東西,開源的東西也要有社會(huì)價(jià)值和市場(chǎng)價(jià)值,希望HUIHOO眼光放長遠(yuǎn)點(diǎn)  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-07 11:12 敢于說真話的人

          使用easyjweb替換現(xiàn)有的mvc框架或者借用其中的一些設(shè)計(jì)來改進(jìn)現(xiàn)有的MVC,這個(gè)建議我看很好,HUIHOO與國內(nèi)優(yōu)秀WEB框架集成必然會(huì)為HUIHOO的普及和推廣帶來前所未有的進(jìn)步  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-07 11:26 敢于說真話的人

          當(dāng)然一個(gè)開源項(xiàng)目做了這么多年還未走入大家的心中,那么它的團(tuán)隊(duì)是不是要去深入思考,深入反思一些東西,堅(jiān)持是很好的精神,但多思考才能走向進(jìn)步,才有出路  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì)[未登錄] 2008-01-07 15:00 屹礫

          中國沒有開源的商業(yè)環(huán)境,所以中國的開源就等于工程師在業(yè)余時(shí)間的業(yè)余作品,當(dāng)然不能和歐美的開源相比。別人的開源是工作,而我們的開源是愛好。  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-01-12 19:33 草根網(wǎng)

          好文,收藏至20ju.com  回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-02-21 13:47 Anthony

          了解Huihoo是從2004年在一個(gè)項(xiàng)目中要選型工作流軟件開始的。當(dāng)時(shí)Huihoo的工作流項(xiàng)目是Robin他們發(fā)起的JFox Flow,可惜后來沒有搞下去。
          遺憾,于是只好自己在項(xiàng)目里寫了一個(gè)基于XML的能滿足項(xiàng)目需要的簡(jiǎn)單工作流引擎。
            回復(fù)  更多評(píng)論   

          # re: 第三只眼看huihoo-一個(gè)值得尊敬的團(tuán)隊(duì) 2008-05-23 21:47 xiaohuasuepr

          學(xué)java一年,現(xiàn)在是大三,支持jfox  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 堆龙德庆县| 皋兰县| 太湖县| 松滋市| 宁波市| 察雅县| 华亭县| 长丰县| 连州市| 个旧市| 宁阳县| 永嘉县| 哈尔滨市| 铁力市| 商都县| 清水河县| 遂昌县| 克东县| 吴忠市| 瓮安县| 公安县| 井冈山市| 林西县| 墨竹工卡县| 墨脱县| 湖南省| 涿州市| 贺州市| 大丰市| 宽城| 麻城市| 富民县| 尚志市| 洛扎县| 临海市| 汕尾市| 抚宁县| 土默特左旗| 浑源县| 额济纳旗| 应城市|