1.MAF架构
1) 优点
a) 可靠。使用单独应用域进行隔离,加载卸载均在各自独立域内进行。
b) 多版本支持。修改接口即可,向后支持。
c) 支持第三方插件。
2) 缺点
a) 复杂。6层协议。
b) 加载耗时。需要进行管线构建,序列化和反序列化的转换。
2. MEF 架构
1) 优点
a) 灵活,根据需要组合部件。
b) 反应速度快,Import/Export模式。
c) 简单,Import/Export/Interface规定属性即可实现代码。
2) 缺点
a) 不能向后支持。
b) 需要定义Typeof(interface)属性。
c) 格式固定。
3) 未知
a) 插件与宿主通信。
b) 安全性,据说可以自动对资源的释放,但有些文章仍描述其会导致内存泄漏,需要考虑。
3. 思路。
1) 从目前来看MAF加载WPF窗口资源速度过慢,尤其当WPF窗口资源控件非常多时,通过反射查找实例化后序列反序列会加重整个MAF系统架构的负担,将会导致软件加载减速。
2) MEF通过Import/Export/Interface可以很好的解决这个问题,加载速度与正常启动模式基本一致。
3) 对于目前窗口显示在于速度,而底层数据在于安全保障,所以MEF架构将运用于WPF窗口加载,MAF架构用于底层数据安全保障。