winform开发框架,基础的分层模式,可以分为UI层(User Interface)、BLL层(Business Logic Layer 业务逻辑层)、DAL层( Data Access Layer 数据访问层)。

业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。

在各层上可以采用工厂模式,把逻辑与实现相分离,所以还可以有:IDAL层(IDAL只是一个接口层,里面封状了要完成的一些业务逻辑,而具体的实现则交给DAL去实现)、Entity层(实体层,一般用于数据结构的映射,可以有外延属性和方法,方便具体编程中应用)、公用类库层等等。

IDAL是DAL层的类要实现的接口。DAL层的各类需要完成对数据库的访问,但是不同的数据库需要使用不同的DAL对象,这样对于BLL层来说无法实现数据库无关性。为了实现数据库无关性,可以将DAL对象转化为他所实现的接口类型,这样就和具体的数据库访问对象无关了。也就是说:DAL对象是实现IDAL接口的上层程序,在使用时不直接DAL对象,而是使用IDAL接口。

这个分层,在Web项目或者WInform项目(包括WPF项目)这些分层都是可以重用的,这样我们就不用重复处理界面一下的逻辑,针对性的开发我们需要的界面层即可。

DAL层根据不同的需要,扩展支持不同的数据库类型,每个数据库类型,对应一个数据库访问实现层即可,它们实现IDAL层的接口,称之为数据库访问接口实现层。

如果我们选择开发混合型开发应用,我们可能还会有一些WCF的服务逻辑层、WCF服务层、客户端调用层、界面层(后面再介绍)等方面,如下的项目结构所示。

winform开发框架常见的分层模式相关推荐

  1. Winform开发框架中实现多种数据库类型切换以及分拆数据库的支持

    Winform开发框架中实现多种数据库类型切换以及分拆数据库的支持 在很多应用系统里面,虽然一般采用一种数据库运行,但是由于各种情况的需要,可能业务系统会部署在不同类型的数据库上,如果开发的系统能够很 ...

  2. Winform开发框架之混合型框架的实现

    我在之前一篇文章<Winform开发框架之框架演化>中,介绍了传统Winform开发框架.传统WCF开发框架.离线式WCF开发框架.混合式WCF开发框架,其中前面两种就是大家比较熟悉的框架 ...

  3. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

    由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于 ...

  4. Winform开发框架的业务对象统一调用方式

    在这个纷繁的社会里面,统一性的特点能够带来很多高效的产出.牢固的记忆,这种特征无论对于企业.个人的开发工作,知识的传承都有着非常重要的作用,Winfrom框架本身就是基于这个理念而生,从统一的数据库设 ...

  5. Winform开发框架中工作流模块的业务表单开发

    在我们开发工作流的时候,往往需要设计到具体业务表单信息的编辑,有些是采用动态编辑的,有些则是在开发过程中处理的,各有各的优点,动态编辑的则方便维护各种各样的表单,但是数据的绑定及处理则比较麻烦,而自定 ...

  6. Winform开发框架之系统重新登录、自动登录实现

    在业务系统的操作过程中,有时候,用户需要切换用户进行重新登录,这种情况有时候是因为一个人管理多个用户账号,希望通过不同的账号登录进行管理不同的资料,另一种情况是酒店的换班操作,另一个人接替前面的人进行 ...

  7. Winform开发框架之通用人员信息管理实现代码介绍

    我在上一篇<Winform开发框架之通用人员信息管理>随笔中介绍了这个通用人员信息管理的大致实现界面和思路,本篇就其中的实现细节做进一步的分析和共享,希望大家对其中的实现代码进行一个了解, ...

  8. Winform开发框架重构总结

    最近一直致力于Winform开发框架的重构工作,因为发现要维护传统Winform开发框架.WCF开发框架.混合式开发框架,以及相关的模块,包括权限管理.字典管理模块.附件管理.人员管理等一些辅助模块, ...

  9. C# winform DataGridView 常见属性

    C# winform DataGridView 常见属性 C# winform DataGridView 属性说明 ① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判 ...

最新文章

  1. Android数据持久化:文件存储
  2. mysql計劃任務_MySQL計劃任務 | 學步園
  3. JVM class加载机制的总结 收藏
  4. Docker(二):Dockerfile 使用介绍
  5. 职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(4)
  6. spark上运行xgboost-scala接口
  7. ImageView缩放选项
  8. LeetCode 1131. 绝对值表达式的最大值(数学 绝对值展开)
  9. linux cp后文件变大,使用 rsync 复制大文件的一些误解 | Linux 中国
  10. Java中的数组,java开发面试笔试题
  11. 参数化命令相关知识点之==================防止SQl的注入
  12. java用 拼接字符串的原理_Java String 拼接字符串原理详解
  13. 使用Arduino和水流传感器进行流速和流量测量
  14. DELL_R820服务器安装 server2008 R2x64缺少所需的CDDVD驱动器设备驱动解决方法
  15. SSM框架整合步骤思路及案例分析
  16. FMEA-MSR步骤五:风险分析(二)
  17. 老鱼Python数据分析——篇十五:“选股宝”使用API下载JSON格式数据
  18. 人才辈出各领风骚 中国股市十大操盘手排行榜
  19. 华为语音解锁设置_华为手机该怎么实现语音翻译?其实超级简单,这里教你
  20. 《王道计算机组成原理》学习笔记和总目录导航

热门文章

  1. 使用easyUI datagrid分页
  2. 浅谈如何利用PERFORM打造高绩效团队
  3. 这些有用的网站,你知道吗?
  4. 直线导轨的更换使用手册
  5. Android安全防护/检查root/检查Xposed/反调试/应用多开/模拟器检测(持续更新1.0.5)
  6. 2021年初级会计如何去学习?
  7. 使用imwrite调整保存的图片质量
  8. 计算机专业指南考试,计算机专业指南考试题.doc
  9. [深入研究4G/5G/6G专题-37]: URLLC-8-《3GPP URLLC相关协议、规范、技术原理深度解读》-2-网络架构、时延分析与URLLC载波部署形态
  10. 最优化模型:线性代数模型、凸优化模型及应用