个人对于架构设计的理解

处在待业状态最适合做的事情就是对以前的工作和学习做一个总结。
  
   读过一些开源的架构,比如PetShop的架构,Nhibernate的架构,ibatis.net的架构。
  
   自己写过的架构,从最早的简单三层,到面向服务,面向对象,面向接口编程思想的架构的转变,顺便乘着空余时间做下总结,很分析。
  
   也希望得到高人指点,给初学者一些帮助。
  
   我个人不是太过喜欢于ORM框架,但如果在适合的时候或者对ORM有偏向的时候,我想我也会对架构做一个ORM设计,但目前不是。
  
   从整体来说,整个架构设计采用服务的思想,比如ObjectService继承于IObjectService接口。这个就是接口服务层和实现服务层的组成。
  
   接口服务层Company.Web.IService 实现服务层Company.Web.Service。
  
   在整个业务系统中包括业务层 Company.Web.Business,在业务层中做基类BaseDao,所有的业务DAO继承于BaseDao。
  
   业务系统模块还包括 实体层 Company.Web.Model,
  
   该实体层作用包括三个方面,Entity用来定义实体,Collect用来存放实体集合,Table用来规范数据库字段名称。
  
   对于接口与实现分离的衔接,通过服务适配器来实现,在boot.config中做接口和实现的配置,让适配器读取服务做缓存处理。
  
   对于数据库访问层可以通过DbProvider实现多数据库的通用性,通过如下配置以什么方式如何做数据库访问处理。
  
  
  
  
  <Service Type="Company.Web.IDbUtilities.IDbService, Company.Web.IDbUtilities" Driver="Company.Web.DbUtilities.SqlService, Company.Web.DbUtilities" />
  
  
  
   /// <summary>
   /// 数据库访问服务
   /// </summary>
   public static IDbService DbService
   {
   get
   {
   return (IDbService)ServiceManager.Instance.GetService(typeof(IDbService));
   }
   }
  
  
   在基于提供的基础服务中,除了DbUtilities,还包括Company.Web.IConfiguration,Company.Web.ICache服务。
  
   Configuration服务主要作用是记录基本客户信息和系统处理基础信息,必要时当然包括系统运行方式的选择比如基于Local,或者Remoting,或者WebService。
  
   业务层包括2块,是基于服务端的业务层和客户端的业务层。目前实现的方式是通过WebService。
  
   以下为架构截图

posted @ 2010-12-25 21:10  左正  阅读(347)  评论(0编辑  收藏  举报