文章目錄
目錄
前言
環境
項目結構
總結
前沿
最近在學微軟的RX,這個基於非同步和事件的類庫。RX是由Observables+Linq+Schedulers 組成。它的優勢在於處理I/O操作的時候,能夠很好的處理非同步作業。
於是出於練習,做了一個進銷存系統,至於為什麼選進銷存系統。因為前段時間部落格園裡的園友都分享了一些進銷存的開源軟體。
環境
這個系統運用了 Autofac,Caliburn.micro,RXUI,NHibernate。用了Autofac來管理我的程式的生命週期(這邊占時簡單的運用了)。Caliburn.micro 管理ViewModel和View,主要是它的Screen Activation Lifecycle的思想概念很好。因為這個系統是基於WPF開發的我用了RXUI這個架構,它能夠很好的和MVVM模式結合,RXUI和Caliburn.Micro各自都有做對INotifyPropertyChanged變化的實現。這邊兩個一起用了 有點衝突了。NHibernate用來操作資料了。
項目結構
1、架構結構
Commom放了一些常用的類,這裡面實體屬性的INotifyPropertyChanged通過AOP來附加上去。Validate通過附加屬性和ViewModel邏輯判斷來驗證,使實體符合POCO,Model放Nhibernate實體物件和Mapping,Repositories負責對Nhibernate的資料進行的操作,Services是一些介面檔案。
2、AppBootstrapper
AppBootstrapper負責Register和Resolve對象的地方。其中Confirgure方法裡負責註冊對象。LoginSuccess成功之後載入對應許可權的模組。這裡把註冊和登入操作同時進行了。考慮到了Nhibernate配置有點慢。
3、登入介面
預設管理員是Admin密碼為空白。
4、Home
Home相當於Conductor,每個模組就是一個Screen。
總結
在這個系統中RXUI用的比較多。對RX比較感興趣的的園友們可以一起討論下。我想在Win8及以後的系統中,RX的發展空間還是挺大的。還有其他頁面看源碼這裡吧。