最后各个层中都可以依赖于公共基础设施层。
公共基础设施层可以包括Common通用模块,Logging日志模块,Exception异常模块,Configuration配置模块,DI依赖注入模块,单元测试模块以及第三方组件(例如NHibernate、Sprint.NET、Castle、Quartz计划任务等等)
最终图:
总结:项目类型、项目规模以及业务上的需求,都影响着系统架构的设计,系统架构并不是一层不变的,没有最好的架构,只有更好的架构,并且从项目中多思考系统的扩展性。文中对于架构的分析,只是从通常的角度上去考虑,在项目中,您还需要根据实际情况去做调整。