上個周末我去了一個技術的沙龍,主要的內容是關于 開源 軟件框架應用與軟件架構。很有意思的一個講座以后還要再去聽。目前我國的軟件有很多的平臺和編程" name="description" />
在o/r mapping的層面上,有幾個比較好的開源的工具,比如說jdo,caster,hibernate,這些東西相比較Entity Bean來說是比較light-weight的,比較簡單。在這個層面上我們有很多的選擇,很多中間件和平臺都有這方面的產品。比如我們的bv平臺,他就是使用ContentManager,ContentList,Content,BVI_GenericDBManager這樣的東西來進行我們的最底層的數據庫操作的。其實說白了,這些東西就是語言中的抽象出來的object和relationship database之間的互操作。最最常用的就是直接使用sql語言,在此之上,我們人為的對于系統進行分級,這數據庫和對象之間的操作很自然的就是這一級。我們在定一個類的時候,比如一個Person類,我們同時定義她的PersonManager和PersonContainer這樣子的類,我們在manager里面可以抽象出Person的增刪改等等操作,比如添加一個person到數據庫,我們直接調用p.Save();就可以了,甚至我們可以對它進行更加深層次的抽象,這時候就需要我們放棄對于數據庫的概念,這時候數據庫對于編程序的人就是透明的了,程序人員只用調用相應的函數就好了。這時候數據庫就是一個更大規模的Container,container.Add(person);就可以了。其實,我們還可以有很多其他的Container,這些container都是裝載在內存中的,可以形成各自相應的集合,相互之間是無關的,這些只是初步。我們可以繼承Person類,甚至可以定義一個IPerson的接口,這樣對于我們實現其多態來還是比較有益的。在這樣的基礎上我們就能實現更加面向對象,更加抽象的環境。
一個同學告訴我,在.net的比較簡單的應用中,沒有data representation layer這個層次的東西了,都用aspx直接調用存儲過程。。。各村有個村的高招。