2019独角兽企业重金招聘Python工程师标准>>>

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

如果系统比较简单,三层可以放在同一台机器上;如果稍微复杂一些的,可以将表现层(UI)放在客户端,业务逻辑层(BLL)和数据访问层(DAL)放在服务器端,采用C/S或者B/S的方式部署;更复杂一些的,也可以将数据库再单独放在专用的服务器上,在服务器端增加缓存和负载平衡等部件。

转载于:https://my.oschina.net/u/265105/blog/806254

.NET应用三层架构分析相关推荐

  1. Django——WEB三层架构与MVC

    而我发此文的目的有二:一者,让初学者能够听到一家之言,是为解惑:二者,更希望抛砖引玉,得到专家的批判. 许多学生经常问我,MVC到底和WEB三层架构有啥关系? 开始时,我也只能给他们一些模糊的回答.时 ...

  2. 三层架构 || SpringMVC 和 Struts2 的优略分析

    我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器.在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发.那么在 B/S ...

  3. 三层架构(我了解并详细分析)

    三层架构已经学到了一些时间,一直想做一个比較完整.比較完美的总结.可是左思右想,不知道怎样下笔.都说万事开头难嘛.今天整理了一下凌乱的思路.哎,还是没整理好,想到哪就说到哪吧. 刚開始学习的人非常不理 ...

  4. 三层架构(我的理解及详细分析)

    三层架构已经学了一段时间,一直想做一个比较完整.比较完美的总结.但是左思右想,不知道如何下笔.都说万事开头难嘛,今天整理了一下凌乱的思路,哎,还是没整理好,想到哪就说到哪吧. 初学者很不理解: 1,什 ...

  5. 趣味理解:三层架构与养猪—《.NET深入体验与实战精要》

    为了更好地让初学者轻松入门,这里仍然采用趣味性的方式聊一些常用技术点,致力于.NET新手们的快速提高!知识都是普通的,关键是学习的思路.技术源于生活,技术原来可以这样学.抛砖引玉而已.  层次结构在现 ...

  6. 解析三层架构(1)---为什么要分层?

    随着分层设计的进行,对分层逐渐有了更深的了解.准备利用几篇文章,深度的分析一下分层设计. 我这里的题目之所以叫三层架构,不一定代表着系统就是三层.古语中三为多.这里的三层也可能是 四层,五层 或者更多 ...

  7. .从三层架构到MVC,MVP

    从三层架构到MVC,MVP http://www.cnblogs.com/daizhj/archive/2009/04/30/1447035.html 一. MVC是谁提出的 模型-视图-控制器(MV ...

  8. 也谈TDD,以及三层架构、设计模式、ORM……没有免费的午餐,选择了,必付出代价...

    想在园子里写点东西已经很久了,但一直没有落笔,忙着做 一起帮 的开发直播,还有些软文做推广,还要做奶爸带孩子,还要--好吧,我承认,真正的原因是: 太特么的难写了! 但再难写也要写啊,要等到" ...

  9. c#利用三层架构做一个简单的登录窗体

    就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...

最新文章

  1. eeglab教程系列(6)-提取数据epoch
  2. ITRON系统使用方法
  3. 多少分才能考上重庆计算机学校,重庆多少分能上985大学?重庆985院校分数线是多少?(2021年参考)...
  4. 使用LiveNVR实现将RTSP转RTMP、FLV、HLS,实现监控摄像头无插件直播
  5. 16位汇编 loop循环
  6. Linux破解系统管理员密码
  7. 确定最小的正整数n,使得n!的结尾恰好有1987个0
  8. C# SerialPort 读写三菱FX系列PLC
  9. uipath循环datatable_UiPath之DataTable转换为List和Array
  10. Alter操作(修改列名,修改列数据类型,增加列,删除列,增加列且设为主键及对默认值操作)
  11. 读《VBScript程序员参考手册》,做的笔记
  12. 个人总结 - JS逆向解析
  13. phaser3 之 this.add.add.image
  14. ‘couldn‘t find a common superview for 问题记录
  15. 提升自我的42个实用技巧
  16. ios 简单的单元测试
  17. Unity 3D模型展示之控制标注
  18. 微信ios上下拉网页禁止
  19. ZT 王国维先生“人生三大境界”的具体含义是什么?
  20. JavaScript slice( )、splice( )、split( )

热门文章

  1. 翻译翻译:什么叫架构?
  2. Git 2.25.0发布,支持部分clone、稀疏checkout
  3. Shell 开发在运维中的经验总结
  4. 没有银弹,微服务架构改造的一条不归路。。。
  5. fastjson又被发现漏洞,这次危害可导致服务瘫痪!
  6. 搞懂机器学习的常用评价指标!
  7. 鱼佬:我的数据挖掘之路!
  8. 智源计算所-互联网虚假新闻检测挑战赛(冠军)方案,开源分享
  9. 模型大十倍,性能提升几倍?谷歌研究员进行了一番研究
  10. 借助可视化,最直观理解梯度,以及偏导数、方向导数和法向量等