不是所有的系統都需要多層結構,其實我們在很多時候,系統簡化為錄入和查詢,也沒有非常強的擴充性的需要。甚至就是某幾張表加上幾個錄入介面。雖然.net已經很方便了,但是有時我們還是花很多時間在重複地產生介面,寫很簡單的邏輯(包括資料繫結)。
其實這個架構本身還是多層的設計(Web Page->Code Behind->Database),只是開發人員無需為了分層而進行特定的一些設計,不斷重複一些代碼。
當然複雜的系統,可能會設計到很多邏輯,非表現層的邏輯。這個架構就無法勝任了。
我在網上找到了一個CRUD的架構,叫Evolutility,地址是http://www.evolutility.org/,我覺得這就是我所要的。
Evolutility is an open source generic web UI for database applications. With it you can build CRUD (Create, Read, Update, Delete) web applications simply by providing the metadata describing your application UI and database mapping. No hand-coding is required.
簡單來說,這個架構通過一個XML檔案的定義,能夠為一個資料對象(資料庫中的一張表)來自動產生List,View,Edit,Delete,Search,Advance Search等視圖,而不用寫一行代碼。同時也暴露了很多元素來讓CSS進行控制。
我個人覺得對於簡單系統,這無疑是極大提高生產率的架構。這個架構的特點:
--學習起來很簡單很快。
--XML定義的 屬性還是非常豐富的。
--開源
--內建安全性,能夠按照記錄的所有者進行控制,粒度很小。
--具有CRUD的嚴謹性,又能夠自由地加Comments
當然缺點是明顯的:
--通用的擴充性不好,當然你可以加一些代碼去Hardcode一些邏輯,畢竟代碼都公開了。
--效率不是很高,組合而成的SQL語句都有這樣的毛病。
--只能綁定在MS SQL Server上 。