目錄
前言
環境
項目結構
總結
前沿
最近在學微軟的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的發展空間還是挺大的。還有其他頁面看源碼這里吧。