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