<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導入]銳道dorado

    Posted on 2006-04-02 14:57 canonical 閱讀(2181) 評論(2)  編輯  收藏 所屬分類: 軟件開發
    http://www.bstek.com/
    ??? 上海銳道的Dorado框架號稱是一個基于構件技術的、面向B/S和多層架構體系的web應用開發平臺, 其前身稱為Extra。從具體功能來看,如果將其看作是一個全功能的web應用開發平臺, 那它現在的功能集顯得就太單薄了一些, 其主要部分還是提供了一些前臺的界面控件, 其他如web框架部分,很像是struts的一個簡化版,沒有什么特異之處。
    ??? Dorado的技術特點是大量采用ajax技術來實現前臺控件. 其前后臺交互采用了自定義的基于xml格式的rpc方式, 而數據綁定使用了xml數據島,例如
    ??? <xml id="__datasetEmployee" >
    ??? <records>
    ??? <record isCurrent="true"? state="none" >
    ??? <new>,~73~73~73~73~73,~68~68,~44~31~32,true,true,295113600000,2034.0,,</new>
    ??? </record>
    ??? </xml>
    ??? record內部使用的是Dorado私有的編碼/解碼規則, 大概是為了壓縮數據量吧.
    ??? 從Dorado目前提供的界面來看還是比較豐富的,基本滿足了一般信息系統開發的需求, 但是其可擴展性似乎并不是很好. 它雖然號稱是組件式開發,但是其前臺和后臺引擎似乎都沒有提供完善的組件模型支持, 只是實現了一些既定的界面組件而已.
    ??? 1. 其前臺的js函數中存在著大量針對數據類型的switch語句,似乎其所能夠支持的控件類型已經內置在前臺引擎中, 如果我們要增加一種新的界面組件大概需要在各處修改引擎代碼, 缺乏一種抽象機制.
    ??? 2. 后臺ViewModel模型似乎是想構造出一個Component架構來, 但這個模型目前看起來明顯沒有Echo2這樣的組件模型精致, 似乎缺乏一種一致的組件重組機制.? Dorado的ViewModel是有狀態的, 通過RPC機制, 它實際上可以獨立于系統web層與前臺控件交互.
    ??? 3. Dataset是Dorado中最重要的數據供體接口, 從它所提供的方法 getField,deleteRecord, insertRecord, movePrev, moveNext, getPageSize等可以看出, 這明顯是綁定到了可分頁表格的數據模型上. 實際上整個系統設計似乎都隱含假定了一個Table模型, 例如Validator接口中具有一個函數 ViewField getField(), 這里明確假定了validate只能針對單個字段進行, 而不是屬于某個整體組件的.
    ??? 4. Dorado中所有組件的界面代碼生成都是以程序方式進行的, 沒有模板機制. 因而增加新的控件的實現時, 需要在后臺通過java代碼輸出一部分界面, 在前臺通過js腳本動態更新界面, 工作量相當大.
    ??? 5. Dorado中界面輸出應該是通過Outputter接口來進行
    ????? public interface Outputter{
    ??????? public String getStartOutput(HttpServletRequest req, Object o)throws Exception;
    ??????? public String getEndOutput(HttpServletRequest req, Object o) throws Exception;
    ????? }
    ????? 這里一方面與web層形成了綁定,另一方面它必須在內部完整的生成界面代碼之后一次性傳入response, 這無疑加重了后臺的內存壓力. 輸出分成了StartOutput和EndOutput大概是為了支持布局組件等容器類組件, 相當于是組件內部可以有一個洞, 這與Jsp Tag模型是匹配的, 但是這種方式很難以高效率實現界面上的結構融合.
    ??? 7. Dorado似乎沒有直接提供組件的再封裝機制, 在現有組件中作局部修正往往需要通過代碼方式來進行.例如表格中的性別字段需要顯示圖片而不是文字, 則需要在Column的onRefresh事件中寫入下代碼,
    ??????????? if (record.getValue("sex")){
    ??????? cell.innerHTML = "<img src='images/man.gif'>";
    ??????? }
    ??????? else{
    ??????? cell.innerHTML = "<img src='images/woman.gif'>";
    ??????? }
    ??? 這明顯已經不是可配置的內容了. 如果我所需要增加的代碼是一個復雜的組件, 這里就很難進行處理了.
    ??? 6. Dorado的技術綁定在了IE瀏覽器上, 無法兼容其它瀏覽器, 這有些偏離目前的標準化方向.

    ??? 目前的快速開發平臺的一個共同特點是集中在單表的CRUD(Create Read Update Delete)上, 可以快速完成單表或主從表的增刪改查. 這本也是正確方向,畢竟目前系統開發中的大量工作都是重復性的簡單勞動, 但是一般系統設計中為了支持單表操作而在建模的時候引入了對表格模型過強的依賴,? 大大降低了系統的可擴展性. 另外現在一般web組件框架的設計往往是模仿桌面開發領域的組件模式, 希望提供完全黑箱式的組件調用方式, 這其實是放棄了web開發的優勢.? 實際上借助于xml格式的規范性和簡單性, 我們完全可以提供更加強大的結構組件, 并把組件封裝的能力開放給普通程序員.

    Feedback

    # re: [導入]銳道dorado  回復  更多評論   

    2006-04-02 21:47 by BlueDavy
    同意canonical的看法:
    "實際上借助于xml格式的規范性和簡單性, 我們完全可以提供更加強大的結構組件, 并把組件封裝的能力開放給普通程序員"

    在此之上封裝一些項目中使用的通用組件,那么就很爽了,其實也就是說象Dorado這樣的東西重要的一個問題就在于缺乏一種擴展機制的設計,而在評判一個框架時,擴展性是其基本要素..

    # re: [導入]銳道dorado  回復  更多評論   

    2006-04-04 09:13 by wfeng007
    我們公司有個部門 就使用這個作為界面基礎的。。。。不過。。。性能好像有點問題。。。
    主站蜘蛛池模板: 亚洲天堂中文字幕| 亚洲熟妇av一区二区三区漫画| 亚洲高清在线mv| 88xx成人永久免费观看| 亚洲av网址在线观看| 99视频精品全部免费观看| 亚洲第一福利视频| 最近高清中文字幕免费| 亚洲视频一区在线播放| 美女视频黄的全免费视频网站| 国产99在线|亚洲| 日韩毛片无码永久免费看| 美女视频黄频a免费| 国产性爱在线观看亚洲黄色一级片| 国产99久久久久久免费看| 亚洲狠狠久久综合一区77777| 777成影片免费观看| 亚洲国产精品成人综合色在线| 国产极品美女高潮抽搐免费网站| 免费一级毛suv好看的国产网站| 久久久久一级精品亚洲国产成人综合AV区| a级毛片免费观看网站| 中文字幕亚洲综合久久| 妞干网免费观看视频| 一级做a爰片久久毛片免费看| 国产精品亚洲片在线| 91短视频免费在线观看| 亚洲AV无码之国产精品| 亚洲日韩av无码| 黄+色+性+人免费| 国产成人va亚洲电影| 亚洲国产精品无码中文字| 成人免费福利电影| 久久成人18免费网站| 日韩亚洲产在线观看| 亚洲精品无码你懂的网站| 免费一级毛片无毒不卡| 亚洲欧美日韩中文字幕一区二区三区 | 蜜桃传媒一区二区亚洲AV| 国内精品久久久久久久亚洲| jjizz全部免费看片|