当前位置: 首页 > news >正文

C#WPF实战出真汁01--搭建项目三层架构

1、什么是三层架构

三层架构是一种软件设计模式,将应用程序划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL),以实现高内聚、低耦合的开发目标。
三层架构的核心组成‌
‌表示层(UI)‌:直接与用户交互,负责数据的展示和用户输入的接收,例如网页或客户端界面。‌‌
‌业务逻辑层(BLL)‌:处理核心业务规则和流程,如订单验证、数据加工等,是系统价值的集中体现。‌‌
‌数据访问层(DAL)‌:负责与数据库交互,执行数据的增删改查操作,确保数据持久化。‌‌
三层架构组成的‌设计目的与优势‌
‌高内聚低耦合‌:各层职责明确,修改某一层时不影响其他层,提升代码可维护性。‌‌
‌开发效率‌:分工明确,开发者可专注于特定层的实现,加快项目进度。‌‌
‌标准化与扩展性‌:支持模块化替换,例如更换表示层以适应不同设备(如Web转桌面应用)。‌‌
‌典型应用场景‌ 
适用于企业级应用开发,如电商系统、ERP等,需长期维护且业务逻辑复杂的项目

2、搭建C#项目的三层

1、创建项目

其中BLL和DAL是添加类库项目,而另外的COMM和MODEL也是添加的类库项目,但HQ.fResApp是WPF程序项目,其中的引入关系是:

HQ.fResApp引用BLL和COMM以及MODEL

BLL引用DAL和COMM和MODEL

DAL引用COMM和MODEL

在这里MODEL作为实体模型层,不是标准三层的部分,但它不可缺少,这层主要是映射数据库中表的实体记录,以及页面渲染时需要用到页面模型,COMM作为公共层,是有一些公共的工具类,帮助类等,比如配置类,日志类,字符串处理类等东西

 

2、添加ORM框架

本项目使用的是Sqlsugar这个ORM。SqlSugar是为.Net Core量身打造的轻量级ORM框架,简化了数据库操作,使开发者能够专注于业务逻辑。它支持多种数据库类型,并提供丰富的API接口和查询方式。SqlSugar的主要功能包括快速开发、多数据库支持、代码生成器、缓存机制、事务处理、动态SQL构建、良好的扩展性、异步编程支持和性能优化。通过清晰的实体关系映射,SqlSugar提升了查询效率并减轻了数据库服务器的负担,进而提高系统性能。具体使用可看官网https://www.donet5.com/,在.NET平ORM框架有多个,比如还有EF也是一个,这个sqlsugar是国产的,都是功能强大,使用快捷。如图所示:

另外数据库使用的是MYSQL,所以需要引用MYSQL,如图所示


 

3、数据库连接 

本项目使用的是mysql,数据库连接的参数信息及程序的基础配置信息都记录在这个文本文件中

4、引入UI框架

wpf是微软推出的CS版程序的UI技术,它可以象web界面那样通过CSS样式,Jquery响应等技术实现bs程序的效果,但wpf本身的渲染能力又不能做到完美,因此有人就在wpf渲染的基础上推出了wpf的UI框架,就象bootstrap是bs界面的UI框架一样,所以,本项目使用的是一个叫做“Panuon.UI.Silver”的前端技术,相比于直接使用原生WPF,通过Panuon.UI.Silver编写样式可以为你节省50%以上的前端开发时间。大多数情况下,只要添加几条属性就能解决UI问题。其前身是2018年首次发布的Panuon.UI,然后是2021年首次发布的Panuon.UI.Silver,但2021年的又被放弃了,升级成了Panuon.WPF.UI,Panuon的所有开源项目无偿向任何个人或机构提供。无论是个人还是商业项目,都无需为Panuon.WPF.UI付费。如果你喜欢自定义样式,那么Panuon.WPF.UI很可能是你的不二之选。引用方法如下:

在xaml设计页面中使用

项目中还使用了Material Design这个框架,用来配置图标的

Material Design (MD)是 Google 于2014年推出的设计语言,旨在通过“纸张和墨水”的灵感,结合现代科技理念,为移动、桌面等全平台提供统一的设计规范。其核心设计理念包括实体隐喻、光效、表面质感及有意义的动画效果,强调清晰布局、交互指引和连贯体验。 ‌ MaterialDesignThemes是一个为WPF应用提供现代化和美观用户界面设计的前端框架,基于Google的Material Design理念。本文将详细介绍框架特点、安装引用、使用方法、自定义与扩展、动画效果、性能优化和最佳实践。

在开始安装MaterialDesignThemes库之前,开发者需要确保他们的开发环境已经设置好,特别是需要.NET开发工具和包管理器NuGet。MaterialDesignThemes库是为WPF和UWP应用程序设计的,因此还需要Visual Studio 2017或更高版本,支持.NET Framework 4.6.1或.NET Core 3.0以上版本。 

                        
 

原创不易,打字截图不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,动动你的金手指,早日实现财务自由!

http://www.lryc.cn/news/621145.html

相关文章:

  • 计算机视觉第一课opencv(二)保姆级教
  • 【CLR via C#(第3版)阅读笔记】类型基础
  • (论文速读)DiffusionDet - 扩散模型在目标检测中的开创性应用
  • 【C#】跨平台创建你的WinForms窗体应用(WindowsUbuntu)
  • 从零开始的云计算生活——第四十三天,激流勇进,kubernetes模块之Pod资源对象
  • Ansible企业级实战
  • 设计模式(2)
  • sql的关键字 limit 和offset
  • 第16届蓝桥杯C++中高级选拔赛(STEMA)2024年10月20日真题
  • Ansys FreeFlow入门:对搅拌罐进行建模
  • pull request是啥意思
  • Serverless 架构核心解析与应用实践
  • 第三十一天(系统io)
  • 如何让手机访问本地服务器部署的网页?无公网IP内网主机应用,自定义外网地址,给任意网设备访问
  • 从0-1学习Java(三)快速了解字符串、数组、“==“与equals比较
  • 【框架】跨平台开发框架自用整理
  • 每日任务day0814:小小勇者成长记之钓鱼日记(字典推导式)
  • Steam移动游戏存储位置
  • 如何使用 AI 大语言模型解决生活中的实际小事情?
  • 《算法导论》第 25 章:所有结点对的最短路径问题
  • 深入解析 GitHub Actions 工作流文件编写:从入门到实战
  • flutter 开发 鸿蒙 App
  • 解决因取消VMware快照删除导致的虚拟机磁盘损坏问题
  • shellgpt
  • AI大模型+Meta分析:助力发表高水平SCI论文
  • 部署文件到受管主机
  • 远程影音访问:通过 cpolar 内网穿透服务使用 LibreTV
  • 高效TypeScript开发:VSCode终极配置指南
  • 莫队 + 离散化 Ann and Books
  • 浏览器面试题及详细答案 88道(34-44)