"圖形化的Struts"——Web開發框架WebPage3
(原作在
www.webpagev.com)
WebPage3是基于組件的、可視化的、輕量級的Web層開發
框架。WebPage3開放組件設計接口,可以
自由開發能在WebPage3中使用的組件,而且開發組件非常簡單。WebPage3能大大提高Web層的開發速度。
有人戲稱WebPage3為“圖形化的Struts”,也有人說是簡化版的Struts + 圖形化的Tapestry。
WebPage3基于MVC模式,重點解決View的部分,達到可以可視化開發和最大限度的復用。
對整個Web層開發提供全方位的開發幫助,做到:
(1)Web層開發可視化,簡單化
(2)Web層開發組件化,重用化
(3)Web層開發通用化,通用功能的封裝
(4)開放式框架,結合和集成更多的功能
從而構建簡單易用、功能強大、可視化開發、最大限度重用的Web層開發平臺,大大提升Web層開發的效率。
WebPage3基于標準技術,有極好的穩定性和可擴展性。主要使用:Java、Jsp、Servlet、Html、Javascript、Xml等技術,
不使用TagLib技術,簡單易用。
特色功能
1:基于組件的Web開發框架
2:可視化開發,所見即所得
3:頁面和邏輯完全分離
4:開放組件接口,開發新組件非常簡單
5:組件基于Java,功能更強大,運行更穩定
6:已有大量常用組件
7:同時支持廋客戶端和富客戶端
8:支持無刷新數據交換
9:自動生成基本主界面、基本子表界面、基本查詢界面、基本列表界面
10:支持多界面組合
技術特點
1:完全B/S結構,簡單易用
2:采用MVC模式構建,界面操作和處理邏輯相分離
3:動態的數據類型解析技術
4:動態的界面組裝技術
5:頁面及時生成技術
6:功能模板動態實例化技術
WebPage3對開發提供哪些幫助
WebPage3對整個Web層開發提供全方位的開發幫助,具體的開發過程請參見《如何選擇Web開發框架》 |
1:通過WebPage3的界面設計工具,定義好數據結構后,WebPage3提供自動生成初始化頁面。 |
2:然后可以可視化的選擇組件,界面的具體表現形式由組件自行提供,WebPage3還提供可視化的布局。 |
3:頁面基本表現形式設計好過后,就要具體設計每個組件的屬性,WebPage3提供可視化的配置, |
提供訪問其他組件的方式。 |
4:對組件數據來源,提供多種方式,目前有:從數據庫中取值,從request的參數中取值,從request的 |
屬性中取值,從session中取值,從程序運行中取值。 |
5:頁面上的權限控制,WebPage3提供可視化的配置,可以指定組件是否顯示、是否可修改、是否 |
只讀模式、是否被刪除等等 |
6:頁面取值和頁面權限控制也提供編程式控制,可以在程序里面動態的控制頁面組件的值,也可以動態 |
控制組件的權限,如:可編輯或是不可編輯。 |
7:頁面提交或是頁面事件觸發,提供客戶端事件處理,提供客戶端數據檢測等的客戶端控制 |
8:數據提交到后臺,WebPage3提供把數據從request里面封裝到任意的數據model的工具,同時根據請求 |
的ActionCommand來選擇合適的Action響應。 |
9:邏輯層處理完成后,WebPage3提供統一的控制方式,把數據傳遞到客戶端,并根據邏輯數據,進行 |
客戶端事件響應和新的頁面展示 |
10:WebPage3還提供預實現的增刪改查等功能,包括主子表的操作等,可以輔助進行快速開發。 |
11:WebPage3對應用中需要提示的例外信息,或是操作提示等,提供統一的消息服務,可以通過配置 |
消息文件來改變這些信息。 |
12:WebPage提供通用的數據操作功能,再加上可視化的開發方式,使得WebPage可以從討論用戶需求時 |
開始使用。一邊跟用戶討論,一邊進行基本頁面開發,可以更深入的理解用戶需求。由于用戶能夠直觀 |
的看到軟件界面,更容易確定和準確提出真實的需求,從而大大減少后期的需求變更。我們的使用經驗 |
是需求討論完畢,基本的程序功能界面就都有了,而且是經過用戶確認的。 |
|
|
WebPage3.0的定位、理念、目標
一:WebPage3.0的定位 |
開放的、輕量級、基于組件的Web開發框架 |
解決目前Web開發,尤其是功能頁面開發中,出現的問題。目前Web開發方面的問題主要集中在: |
開發工作量大,重復勞動多,開發效率低下、維護困難、頁面和邏輯相混雜等。 |
二:WebPage3.0的理念 |
讓Web開發更簡單、更快捷、更高效 |
三:WebPage3.0的目標 |
成為Web開發框架的主流,為更多的Web應用提供簡單、高效的解決方案。 |
四:WebPage3設計的特點 |
1:WebPage3基于MVC模式,但又不死板的報著MVC不放,通過改良和輔助工具類,提供更靈活的架構 |
和更多的開發幫助。 |
2:完全基于組件,開放式框架,框架本身沒有任何組件,所有的組件都是按照組件定義的規范來開 |
發,然后加入到框架中使用。這樣就使得組件功能可以隨意的擴展,而且對組件所使用的技術沒有多少 |
限制,所有現在Web層能用的技術都可以在組件里面使用。也就是WebPage3框架找組件,然后組件自運 |
行。這使得WebPage3具有更強的生命力,可以兼容已有的技術積累,也能使用最新的開發技術。 |
3:WebPage3對Web開發的客戶端和服務端都提供相應的幫助,全方位的為Web層開發的各個環節 |
提供幫助 |
4:關于可視化設計器,目前是基于IE來開發的,它只是用來加快開發的速度。事實上,完全可以 |
手工的配置WebPage3框架所需要的資源,當然,也可以開發Swing版的IDE。 |
WebPage3.0與JSF、TapeStry的異同和優勢
基于組件的Web開發框架,是下一代Web開發框架的主流,目前國際上有名的基于組件的Web開發框架 |
有JSF和TapeStry。 |
WebPage3.0也是基于組件的可視化Web開發框架,所以這里重點比較一下與JSF和TapeStry的異同, |
主要從技術實現上面進行比較: |
比較項
|
JSF
|
TapeStry4
|
WebPage3.0
|
結論
|
頁面開發
|
TagLib標簽技術
|
Html+TapeStry屬性
|
純粹的Html
|
WebPage3.0更簡單,更通用,更容易與美工等結合
|
Java編程模型
|
在JSF應用中沒有頁面定義文件,它只有一個全局的配置文件,命名為:faces-config.xml,里面通常都定義了一堆"managed beans"。這些managed beans都是帶有屬性和事件監聽器的定義良好的java bean。在faces-config.xml中定義的后端bean都有三個參數:一個標識符、一個java類名、一個bean的生存周期,生存周期可以是request、session、application中的一種。
|
主要是三個部分:用于顯示的頁面模板(一般就是html),帶有相關屬性和方法的java類,用于定義頁面模板上的控制元素和java類的關系的頁面定義文件
|
分做服務端和客戶端,在服務端主要是三個部分:用于顯示的頁面模板(純粹的Html,可視化開發,不需要手工寫)、頁面數據模型定義(自動生成,不需要手工寫)、頁面事件響應Action類(如果使用自動數據處理,不需要寫。否則相當于Struts中的Action,自行寫處理代碼)
在客戶端:每個頁面對應的script文件
|
WebPage3.0的編程模型更全面,考慮到Web開發的特殊性和實現的合理性,全面考慮,提供客戶端模型和服務端模型。
在服務端模型結合了多種框架的優點,同時還提供了一些通用的功能實現,為快速開發提供幫助。
|
請求生命周期控制
|
單一的生命周期模型
|
生命周期依賴于調用的引擎服務,同時可以自己定制生命周期
|
同TapeStry4
|
WebPage3和TapeStry4的生命周期控制更靈活
|
頁面導航
|
必須同時利用代碼和配置文件來控制頁面跳轉流程
|
頁面跳轉邏輯定義在代碼中,而不是寫在配置文件中
|
頁面跳轉邏輯定義在頁面組件的屬性中或者在代碼中
|
頁面跳轉邏輯是跟邏輯結果相關的,WebPage3的實現方式能更好的兼顧配置和代碼定義的實現
|
易用性
|
十分困難
|
困難
|
十分簡單
|
WebPage3.0的易用性是最好的
|
學習曲線
|
高
|
較高
|
十分低
|
WebPage3.0只需要基本的Java開發和基本的Javascript和基本的Html技術即可。一個Web開發人員1-2天內即可以掌握
|
與其它技術的包容性(如結合AJAX)
|
十分困難
|
困難
|
十分簡單
|
WebPage3.0是一個純粹的組件框架,對組件的技術實現限定非常小,通常只需要實現一個抽象父類即可,其它技術任意加
|
對已有資源的利用上(如:每個公司在多年的開發中已經有了很多的實現積累,想要把他們包裝成組件進行使用)
|
沒有好辦法,基本上需要重新按照JSF的框架重新做
|
沒有好辦法,基本上需要重新按照TapeStry的框架重新做
|
非常容易,可以很簡單的包裝成一個可在WebPage3.0中使用的組件
|
WebPage3.0充分考慮到與已有實現的結合,能夠有效保護已有的知識積累
|
技術支持
|
困難
|
十分困難
|
容易
|
WebPage3.0的開發團隊可以隨時為您提供技術指導、技術資源、技術培訓、技術服務
|
|
|
|