近来在作一个.NET的项目,使用C#进行开发。项目采用经常使用的三层架构,稍微调查了一下,发现所接触到的.NET的项目基本都是采用这种架构,因而也来分析一下这种常见的三层架构的含义、特色以及优缺点。
.NET中的三层架构,一般是指表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL),
偶尔也会加上实体类库(Model)。
表现层(UI)有时也会成为视图(VIEW),主要包括数据的呈现、UI的控制等,不涉及具体的业务逻辑,仅负责单纯的表示。业务逻辑层(BLL)主要负责业务逻辑和数据的编辑处理,复杂的业务处理主要放在这一层。数据访问层(DAL)则是负责对数据源进行访问和修改等处理,并将取得的数据返回到业务逻辑层(BLL)。
三层架构的推出,有如下的目标。
1、修改维护的简便性。
一些修改或者变动,能够集中在其中一层进行,进行局部而不是全局的修改,能够尽可能将影响范围缩小。
2、处理的分布式处理。
处理分红三层了,结构也就能够分散了,能够在一台机器上运行,也能够分布在多台机器上运行,
有利于灵活部署系统。
正是三层架构的这种针对性的目标,也便有了随之而来的优缺点。
优势
一、便于做业分割,开发人员能够只关注整个结构中的其中某一层;
二、便于处理的替换,能够很容易的用新的实现来替换原有层次的实现;
三、便于逻辑的解耦,能够下降层与层之间的依赖;
四、便于各层逻辑的复用;
五、便于修改维护,下降了维护成本和维护时间。
缺点
一、下降了系统的性能。原本能够直接访问数据的处理,如今须要经过中间层进行。
二、有时会致使级联的修改。在表现层须要增长一个功能,可能也要增长逻辑层和数据访问层的代码。
三、一般会有不少重复性的代码。数据库
若是系统比较简单,三层能够放在同一台机器上;若是稍微复杂一些的,能够将表现层(UI)放在客户端,业务逻辑层(BLL)和数据访问层(DAL)放在服务器端,采用C/S或者B/S的方式部署;更复杂一些的,也能够将数据库再单独放在专用的服务器上,在服务器端增长缓存和负载平衡等部件。
缓存