圣殿骑士
最近接手到一个已经成型的项目,然后我们的任务就是对它进行重构,这个项目是一个功能很齐全的WPF视频播放器(附带很多其他功能),在仔细研究了项目的背景和架构以后,初步做出了一下的重构方案:
目前现状:
虽然整个系统做得很漂亮,代码也写得不错,但仍有以下不足:
解决方案
UI: 功能模块使用时候,都会首先通过UI层次Security模块的安全验证(验证是通过Components模块里面的自定义的用于页面功能以及功能点验证的控件触发), Security模块会通过服务层获取用户身份数据,用于页面验证.
功能模块的实际功能实现,如果需要数据库支持,那么依然会通过服务层进行数据操作.整个架构基于MVVM模式。
Service:通过WCF做中间服务,使应用隔离开来,这样有利于扩展和维护,同事提高了整个应用程序的伸缩性。
Business Logic: 服务层内部之间的组合关系,主要体现再依赖和调用,由上往下调用,逐级依赖,最后Service底层边界Data Access模块将调用Framework中的Data模块,Data模块将调用MS.EntLib3中的Data,向数据服务器发送数据操作命令和数据.
Framework: 该层次提供许多基础的功能模块(七大块),分别提供给UI,Service层里面的模块直接或者间接的调用,同时也可以看到Framework层次内部各模块之间再运行时也有互相依赖调用的关系存在.该层次的部分模块会依赖和调用Ms.EntLib3中的模块,一般是按照两个层次里面的模块名称,产生关系的.
MS.EntLib3: 该层次的各个模块是整个系统框架中最底层的,只会在运行时被更高层次的模块依赖和调用,同时该层次内部各个模块之间也存在依赖和运行时调用关系.
整个架构采用迭代的方式进行开发,这样方便客户进行实时反馈,由于现在还没有开始,所以有很多时间进行准备,如果园子里有这方面经验的朋友,也可以畅所欲言,谢谢