我們經(jīng)常在對(duì)相同需求進(jìn)行著重復(fù)的設(shè)計(jì)和編碼,這使得開(kāi)發(fā)效率低,而且質(zhì)量也得不到保證,OpenExpressApp 就是抽取了信息系統(tǒng)的一些共性,用平臺(tái)的方式提供大粒度的重用,提高開(kāi)發(fā)效率和質(zhì)量。
在《信息系統(tǒng)開(kāi)發(fā)平臺(tái)openexpressapp 1.0發(fā)布》中提到過(guò),OpenExpressApp不會(huì)帶給大家創(chuàng)新性的技術(shù),而是將現(xiàn)有技術(shù)和產(chǎn)品中有價(jià)值的部分引入到一起,它要做的是整合別人已經(jīng)實(shí)踐的方法,提高我們自身的開(kāi)發(fā)能力,以求快速、高質(zhì)量的開(kāi)發(fā)產(chǎn)品。
下面我將通過(guò)對(duì)現(xiàn)有技術(shù)和產(chǎn)品的參考來(lái)講解OpenExpessApp的架構(gòu),理解這些參考技術(shù)的架構(gòu)是理解OpenExpressApp架構(gòu)的最好辦法。
為了提高產(chǎn)量和代碼質(zhì)量,我研究過(guò)一些產(chǎn)品和方法,而MetaEdit+是建立在DSM方法之上的工具,能夠比較好提高產(chǎn)量和質(zhì)量。
下面我先介紹一下MetaEdit+。
MetaEdit+是全球DSM領(lǐng)域內(nèi)著名的產(chǎn)品,它能夠帶來(lái)以下好處:
從上圖DSM方法知道模型和生成器是DSM的核心部分,而MetaEdit+的元模型比較好,所以O(shè)penExpressApp的建模工具中模型部分將參考MetaEdit+。(由于現(xiàn)在還沒(méi)有開(kāi)始這部分內(nèi)容,所以在這里就先不介紹了。)
從上圖可以看到領(lǐng)域框架也是重要部分,所以接下來(lái)我就需要去搜索比較好的框架來(lái)參考。在我參考一些框架之后,我覺(jué)得DevExpress eXpressApp Framework比較適合,它是.Net下的一個(gè)應(yīng)用框架。
DevExpress eXpressApp Framework是一種快速業(yè)務(wù)開(kāi)發(fā)平臺(tái),它可以通過(guò)一個(gè)模型同時(shí)支持C/S和B/S應(yīng)用。
OpenExpressApp名稱中的ExpressApp詞就來(lái)自這個(gè)應(yīng)用框架,所以也暗示著OpenExpressApp參考了很多XAF的思想(架構(gòu)、模塊化、AutoUI等)。
XAF的基礎(chǔ)類庫(kù)建立在OO的思想上,所以我還需要一個(gè)支持OO的框架。而CSLA可以很好的支持類庫(kù)開(kāi)發(fā)和應(yīng)用。
它包含如下功能:
信息系統(tǒng)應(yīng)用模塊和功能會(huì)比較多,所以框架支持模塊化就顯得比較重要。第一階段OpenExpressApp將實(shí)現(xiàn)基于WPF的應(yīng)用,而微軟模式小組編寫的Composite WPF and Silverlight除了支持WPF外,也可以很好的支持模塊化,所以我也使用了CompositeWPF and Silverlight。
XAF框架中不僅有類庫(kù),還有報(bào)表支持,而報(bào)表在信息系統(tǒng)中是不可缺少的,所以我還需要找到一個(gè)比較好的報(bào)表系統(tǒng)。我?guī)啄昵把芯窟^(guò)一陣子報(bào)表,潤(rùn)乾報(bào)表是我覺(jué)得模型最好的一個(gè)。感興趣的可以參考我以前寫的《研究潤(rùn)乾報(bào)表的實(shí)現(xiàn)》,在《軟件工廠方法(二):軟件工廠應(yīng)用》中我也介紹過(guò)研究的一些方法。
以上主要說(shuō)的是框架主要部分參考內(nèi)容,框架思路選定后還需要一個(gè)集成環(huán)境來(lái)開(kāi)發(fā),所以我又去找了幾個(gè)基于模型驅(qū)動(dòng)開(kāi)發(fā)的軟件平臺(tái),目前準(zhǔn)備參考Mendix 和Novulo
依據(jù)以上參考和個(gè)人經(jīng)驗(yàn),確定了如下一些架構(gòu)指導(dǎo)思想。這個(gè)在《OpenExpressApp架構(gòu)-一個(gè)信息系統(tǒng)開(kāi)發(fā)平臺(tái)》也有所介紹
以上對(duì)OpenExpressApp架構(gòu)的起源以及參考的現(xiàn)有產(chǎn)品進(jìn)行了簡(jiǎn)單介紹,后期我會(huì)對(duì)我如何使用這些產(chǎn)品或者采用這些產(chǎn)品思想分別進(jìn)行介紹。如果大家對(duì)OpenExpressApp內(nèi)部比較感興趣的話,則理解這些已有產(chǎn)品將會(huì)有很大幫助。
相關(guān)文章鏈接:
聯(lián)系客服