目录
前言
环境
项目结构
总结
前沿
最近在学微软的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的发展空间还是挺大的。还有其他页面看源码这里吧。