从零开始编写自己的C#框架(5)——三层架构介绍

三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发。

 

  在这里为初学者们简单介绍一下三层架构:

  (下面内容摘自《趣味理解:三层架构与养猪—《.NET深入体验与实战精要》》,这是以前看到的关于三层架构介绍,觉得挺经典的,大家有时间的话认真看看)

   

  对比以上两图,我们可以看出:
  1)数据库好比猪圈 ,所有的猪有序地按区域或编号,存放在不同的猪栏里。
  2)DAL 好比是屠宰场 ,把猪从猪圈取出来进行(处理)屠杀,按要求取出相应的部位(字段),或者进行归类整理(统计),形成整箱的猪肉(数据集),传送给食品加工厂( BLL )。本来这里都是同一伙人既管抓猪,又管杀猪的,后来觉得效率太低了,就让一部分人出来专管抓猪了( DBUtility ),根据要求来抓取指定的猪。
  3)BLL 好比食品加工厂 ,将猪肉深加工成各种可以食用的食品(业务处理)。
  4)Web 好比商场 ,将食品包装成漂亮的可以销售的产品,展现给顾客( UI 表现层)。
  5)猪肉好比 Model ,无论是哪个厂(层),各个环节传递的本质都是猪肉,猪肉贯穿整个过程。
  6)通用类库 Common 相当于工人使用的各种工具,为各个厂(层)提供诸如杀猪刀、绳子、剪刀、包装箱、工具车等共用的常用工具(类)。其实,每个部门本来是可以自己制作自己的工具的,但是那样会使效率比较低,而且也不专业,并且很多工作都会是重复的。因此,就专门有人开了这样的工厂来制作这些工具,提供给各个工厂,有了这样的分工,工厂就可以专心做自己的事情了。

 

  我们的框架结构

  接下来要和大家一起开发的是基于SubSonic3.0 ORM插件的框架,关于SubSonic3.0的具体介绍将会在下一章节详细说明。

  在此要向大家声明的是,本框架主要应用于中小型项目,对于并发量非常大、对性能要求非常高的和有完美倾向的开发人员(如开发中必须统一使用一种开发结构,要求三层架构必须使用面向对象的朋友),请拐弯,因为本框架可能不符合你的审美观。

  本框架不会完全使用面向对象的方式来进行开发,本框架追求的思想是合适与快捷。即在合适的地方使用适的插件或技术,整个框架完成后添加新功能、做二次开发或维护时,能方便快捷(速度流)。

  比如该用存储过程实现的业务逻辑,就不用强制使用代码来实现,因为有些逻辑使用代码来实现,无论在开发时间、代码量、并发处理、性能上都与存储过程处理没法比;在需要使用ADO.NET来执行SQL语句时,就不会为了统一框架底层调用方法,强制使用SubSonic插件的相关方法来实现,如果你看到这种代码心理很不舒服的话,那只能说我们不在一个频道上,对于我这种实用型开发者来说,所追求的编程模式方向可能与你不同。

  下图是本框架的扩展结构发给大家参考一下,以后的章节重点讲解的是红框框住的几个项目,详细讲述本框架底层架构是怎么搭建的,指导初学者们一步步搭建好自己的框架构。

  

  对比前面的三层架构,大家可能会很奇怪,怎么没有看到Model层的?这是因为我们使用的SubSonic3.0插件所附带的效果,该插件附带的T4模板所生成的Model与DAL混合在一起,很难进行分开。SubSonic插件为了实现更新数据的时候,自动将它所生成的SQL语句剔除掉未赋值字段,只更新已赋值的字段内容,而对实体类的Set进行了改造(如下图)。(注:常见的SQL语句生成框架是没有这种过滤功能)

  

  这样处理将会减少更新数据长度,减少对实体类字段赋值操作(对使用默认值的字段不用再进行赋值操作),减少代码工作量。例如:有些订单表里有几十个字段,其中大部分在创建时使用默认值就可以了,这时只需要对需要的几个字段赋值即可。

 

  框架各项目功能说明

序号 名称 说明
1 Solution.Common 公共函数类
2 SubSonic.Core SubSonic3.0.0.4插件源码
3 Solution.DataAccess 数据访问层
4 Solution.Logic.Managers 业务逻辑层
5 Solution.Web.Managers UI层(后台管理系统)

 

 

 

 

 

 

 

  各层之间调用说明
  1)    Solution.Commom,主要存放系统要调用到的各种常用工具函数,给其他所有层调用。
  2)    SubSonic.Core,SubSonic3.0插件源码,主要负责与数据库进行交互,将业务转换成相应的SQL语句,对数据库进行各种增、删、改、查等操作;

  3)    Solution.DataAccess,主要存放T4模版生成的业务实体(Model)、数据库表结构、业务实体常用函数、存储过程调用函数,以及已封装好的各种数据库操作函数和ADO.NET数据库执行函数;
  4)    Solution.Logic.Managers,主要存放各种业务逻辑函数,其中SubSonic文件夹里的文件是由T4模版自动生成的常用逻辑函数(会将UI层所要用到的80%以上的函数自动生成出来)。这些逻辑函数主要是接收UI层的操作命令与参数,进行逻辑运算和处理后,提交给Solution.DataAccess层来处理,以实现对数据库表记录的增、删、改、查等操作;
  5)    Solution.Web.Managers层是UI层,用来展示管理系统的各个页面与功能。主要实现和用户的交互,接收用户请求或展示用户请求的数据结果。

 


    本文转自 AllEmpty 博客园博客,原文链接:http://www.cnblogs.com/EmptyFS/p/3636815.html,如需转载请自行联系原作者




优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/571569

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。