天天看點

OpenCms 使用初步印象

1.所有的資源,包括圖檔、HTML 檔案、JSP 檔案、XML 内容、文本内容、element、CSS、Javascript 等等,都放在資料庫中,在資料庫中維護一個虛拟的樹形目錄結構,這樣所有的資源都有建立、修改、删除、移動、複制等操作----好的設計。

2.頁面布局、修改、上傳、内容釋出等等,都在 offline 項目中進行,開發、測試、預覽都在offline 項目中。當全部測試完成,使用一個按鈕 publish 就可以将所有的修改内容一次性轉移到 online 項目中。外部 Web 通路者隻能看到 online 項目内容,publish 可以每次處理單個資源,也可一次處理多個資源。這樣開發調試可以直接在正式的伺服器上面進行,而不影響外部 Web 通路----好的設計。

3.版面布局 template 可以通過内置的 templateone 從幾個頁面上修改一些參數進行,也可以通過建立一個 jsp 檔案進行。

内置的 templateone 最多可以将頁面分成 4*2  表格,每個表格單元格可以自行定義,并且可以在此基礎上在上下左右各加一個子產品;JSP 可以調用 OpenCms 的 jsp taglib 進行----不好的設計。

Templateone 可以滿足大多數需求,但是不是所有。JSP template 需要二次開發,需要開發者懂 HTML 美工、Java、JSP、JSP taglib,這樣的限制,導緻懂的人必然少,另外上手時間也長,畢竟 OpenCms 的 jsp taglib 也不是一兩天就能精通的。

4. 使用 JSP template 的時候,如果想将某個目錄的 template 屬性指定為某個版本布局的 template,有時候目錄裡面的檔案沒有用上布局的 template,似乎有 bug。

5. 可以使用 export 将動态頁面生成靜态頁面,不錯。動态頁面可以設定多種級别的緩沖,極大地提高性能,不錯。

6. 除了内容釋出、版面定制、直接在 Web 上排版、内置了Apache Lucene 搜尋引擎、資料可以從 Web 上進行備份、使用者權限管理、子產品管理等常見的内容管理軟體都有的功能之外,隻增加了 task 定時提醒,資源的版本管理,連結的錯誤檢查,廣告資訊釋出,内容釋出的多語言支援等幾個功能。其他 CMS 的一些額外功能,比如 PHPNuke 的投票,調查,通路統計,論壇,廣告管理,每個使用者自定義網頁風格等等,OpenCms 都沒有提供。真是一個純粹的 CMS。憑借這個 OpenCms 來架設網站,似乎不夠好。

7. 隻使用了最基本的 J2EE 技術,比如 JSP, servlet, JDBC,沒有使用其他亂七八糟的技術,這樣的代碼看懂的人更多----好的設計。

8. 使用繼承的方法,通過 JSP taglib 來實作模仿 Windows 的 Web dialog,是很好的創新思路,代碼也很簡潔,但是使用 taglib 對于系統的排版改動,似乎不好 ---- 這也是很多人反對使用 taglib 的原因,taglib 實際上将 HTML 寫在 Java 類中,不好進行排版。使用繼承的方法來設計 GUI,以前隻見過 Power Builder 推薦這樣做,其他語言都不怎麼推薦這樣做,很另類----不好的設計。

9. 使用 Javascript 開發出類似 Windows 的檔案管理器界面來進行資源管理,包括資源類型、大小、最後修改日期等等,讓人佩服。Javascript 水準真高----好的設計。

10.其他 CMS,包括 PHPNuke 都可以對頁面進行簡單的劃分區塊,并且可以通過 Web 界面進行簡單的操作,将某個區塊做上下左右調整,OpenCms 這方面的功能不好----差的設計。

繼續閱讀