Tangram與軟體的組合構造

來源:互聯網
上載者:User
Tangram 與軟體的組合構造        Tangram是中文“七巧板”的英文對應物,大概老外們認為“七巧板”是唐朝人的睿智遊戲,而海外唐朝就象徵著中國。“七巧板”表現出明顯的樸素的構造化思想,以7個元素為基,盡情的造你能所造。最早開發Tangram的時候,這個系統取個什麼名字,頗費一番腦筋,好的創意一定得有相配的名字。七巧板的想法就是給一個軟體系統一個充分大的“基”,在這個“基”的基礎上允許你進行符合規則的構造。軟體功能的組合構造是一個十分有趣的問題,首先你必須提供組合構造的基礎,其次你必須制定組合構造的規則,然後你必須給出參與組合的成員元素之間的調度、互動方案。       HTML模型是一個很有趣的例子,通過提供一組控制項,你就可以構造多彩的頁面了,最早我就是通過驅動HTML的擴充介面來實現HTML模型與MFC、ATL等架構對接的,典型的做法是,設計一個IDispatch對象IExtDisp,這個對象能夠訪問你的物件模型,然後再想辦法將這個對象與HTML模型繫結,MSHTML庫提供了這個機制。通過如上的處理,你可以在你的HTML頁面中調用你的對象指令系統,一個典型的例子就是Visual Studio .NET的代碼嚮導(Wizard)的實現。儘管HTML指令可以擴充,但卻不是一個好的選擇,我最終將HTML作為一個更大的“基”的一個成員來對待,之所以如此,是因為HTML的表現力還嫌不足,因為畢竟這些東西不是程式或者不像程式。早期使用Delphi時,VCL中有一類Frame對象給我留下很好的印象,從形式上看,一個CFrameWnd與Delphi的Frame很像,但不是。一般來說,Delphi的對象是編譯前的,也就是說,(絕大多數)Delphi等系統的對象要經過編譯後才能使用,因此選擇Delphi為Tangram主體構造的可行性被排除了(事實上Delphi一樣可行,因為Delphi支援RTTI)。構造Tangram的時候,就想到要支援Delphi的Frame對象(現在實現的Tangram系統可以支援Delphi/BCB的ActiveForm)。最終選定MFC作為Tangram的底層基礎是因為MFC更好的支援RTTI(運行時類資訊),以及MFC有靈活的儲存機制(MFC的儲存機制簡陋但不失為強大!)。       讓我們看一個較為複雜的Frame表單:(一個合成的Frame視窗)上面的表單是由一個.NET Control、二個UserForm以及一個MFC View合成,Frame架構是由二個Splitter以及一個Excel風格的TabWnd構成。軟體的組合系指:先完成Frame架構,然後將上述對象(一個.NET Control、二個UserForm以及一個MFC View)“安裝”上去,構架的格局可能有多種,如果一個程式沒有內建設計引擎,程式員就辛苦了,使用者的定製能力也就極大地被限制了,Tangram的設計目標就是保證這一切可以“可視化”地完成!而且完成得足夠專業。一般來說,HTML不能滿足程式員的要求,而程式員又無法或很難具備HTML的靈活性,在這方面,Tangram給出一個折中的方案:具備HTML的可設計、編輯性,有具有程式介面的視覺。傳統的程式,由於被操作的對象大多駐留在程式內部,因此,可設計性被極大地限制了,Tangram立足於提供一個足夠廣泛的“軟體對象基”,使得可設計性成為事實,如果MFC View、ActiveX Ctrl/ActiveX Document、.NET Control、HTML、Flash等類型的元素成為一個超級“七巧板”中的原子成分,等待你的將是一個巨大無比、色彩斑斕的對象世界,掌握Tangram,你就控制了Microsoft的組件世界,你就擁有無限的串連能力……(內建VBA後的Form對象)(二次開發)(Form設計) 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.