1.extjs採用gplv3帶來的問題
extjs是乙個優秀的js框架,可惜授權協議是gplv3。乙個類庫,用gpl授權是很不可取的。意味著你提供給客戶使用的程式,「修改了extjs的**」,你的程式就得開源。比如說,繼承ext.grid.panel類,是一種「修改」(指oop概念中的修改父類實現)。類庫應該使用apache,mit,bsd,lgpl等協議的,而提供給終端使用者直接使用的軟體產品(如linux系統),用gpl比較友好。
開源社群將不會積極貢獻**、bug、翻譯文件等等給extjs,因為你努力貢獻給他,他卻拿去賣錢了,因為他可以給別人商業授權。--而你,到頭來還得向他買許可。因此現在主要的開發人員是extjs公司自己。但話說回來,你用它的**,就得按它的規矩來,這沒什麼好說的。他們覺得這是更好的生存之道,但是對extjs產品來說,得不到開源社群的支援,將來的發展很有挑戰。gpl開源+商業許可授權,extjs庫和閉源軟體差不多了,只是打著開源的幌子罷了。
2.規避措施?
對於國內大部分extjs開發人員來說,這個影響不大。給別人定製開發一套系統,你就把**給他看吧,注釋全部去掉,開發文件也不給他,一般沒什麼的。國人很聰明,即使客戶拿到源**,程式也肯定跑不起來。
假如你開發了一款商業軟體,很牛,建議前後臺封裝好,前台extjs只是用來畫介面的,將它開源出去,免費。前後臺互動採用標準的rest,soap等協議,並公布出來。而後台**採用二進位制分發,單獨銷售。
假如你開發了乙個類庫,如operamasks之類的,本來主要功能就是做介面的,你可以開源出來,做技術支援掙錢;或者付給extjs授權費,然後向你的客戶收錢。--這樣的產品基本上不會存在,extjs基本上不需要這樣的封裝。
開發供公司內部使用的系統,不受gpl協議限制,可以隨便使用。就好像你只是學習extjs,開發軟體自己用,沒有人會限制你。
gpl(gnu general public license)我們很熟悉的linux就是採用了gpl。gpl協議和bsd, apache licence等鼓勵**重用的許可很不一樣。gpl的出發點是**的開源/免費使用和引用/修改/衍生**的開源/免費使用,但不允許修改後和衍生的**做為閉源的商業軟體發布和銷售。這也就是為什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商業軟體公司開發的免費軟體了。
gpl協議的主要內容是只要在乙個軟體中使用(「使用」指類庫引用,修改後的**或者衍生**)gpl 協議的產品,則該軟體產品必須也採用gpl協議,既必須也是開源和免費。這就是所謂的」傳染性」。gpl協議的產品作為乙個單獨的產品使用沒有任何問題,還可以享受免費的優勢。
由於gpl嚴格要求使用了gpl類庫的軟體產品必須使用gpl協議,對於使用gpl協議的開源**,商業軟體或者對**有保密要求的部門就不適合整合/採用作為類庫和二次開發的基礎。
其它細節如再發布的時候需要伴隨gpl協議等和bsd/apache等類似。
話說回來,如果你的那個專案不是很大的話 extjs 官方 幾乎不會太計較的,也沒那時間觀察
那麼多使用者的專案。
ExtJs4 問題總結
在用到ext grid的時候,如果後台計算量大或者返回的資料量過大導致載入資料時間超時,時間超時後會發現grid沒有資料顯示。解決的方法是把超時的時間設定大點,ext的ajax預設請求都是30秒。設定方法如下 ext.ajax.timeout 90000 一秒 1000毫秒。上面設定是把timeou...
學習Extjs4心得
其實,學習extjs4的過程中,經常的檢視api。因為一開始接觸這個,所以一開始不會檢視api,但後來玩久了,也就能夠很熟練的玩了。其實,不管事什麼開發語言還是框架,學會檢視api是我們必須要做的事 在開發過程中,最糾結的就是除錯,我用的是firefox,裡面有個firebug,是除錯js的神器,可...
ExtJs4 基礎必備
解壓有20多兆,別怕,真正執行的沒這麼大。認識下這個包的檔案結構吧。1.類的命名規範 2 原始檔的命名規則 3 方法和變數的命名規則 4 屬性的命名規則 onready 只有在ext框架全部載入完後才能在客戶端的 中使用ext,而ext的onready正是用來註冊在ext框架及頁面的html 載入完...