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.pswp.cn/web/93149.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93149.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93149.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是费曼学习法?

什么是费曼学习法?一、费曼学习法的核心逻辑 费曼学习法(Feynman Technique)由诺贝尔物理学奖得主理查德费曼提出,核心思想是通过“以教促学”的方式,用输出倒逼输入,彻底理解知识。其本质是:当…

CVPR 2025 | 北大团队SLAM3R:单目RGB长视频实时重建,精度效率双杀!

北京大学陈宝权团队联合香港大学等推出的实时三维重建系统SLAM3R,首次实现从单目RGB长视频中实时且高质量重建场景稠密点云。该系统通过前馈神经网络无缝集成局部3D重建与全局坐标配准,提供端到端解决方案,使用消费级显卡(如4090D…

现代化水库运行管理矩阵建设的要点

2023年8月24日,水利部发布的水利部关于加快构建现代化水库运行管理矩阵的指导意见中指出,在全面推进水库工程标准化管理的基础上,强化数字赋能,加快构建以推进全覆盖、全要素、全天候、全周期“四全”管理,完善体制、机…

【工具】用于视频遮盖行人及车牌的工具,基于YOLO

最近录制数据时,为了保护隐私,我做了一个小工具:video-privacy-blur 在采集街景、测试视频时,经常会拍到人脸和车牌,这些信息在分享或存储前必须做匿名化处理。手动后期太耗时,于是我基于 Ultralytics YOLO…

EtherCAT概念介绍

一、EtherCAT 简介​EtherCAT(Ethernet Control Automation Technology)是一种工业以太网现场总线,它将计算机网络中的以太网技术应用于工业自动化领域,构成工业控制以太网(工业以太网、工业以太网现场总线&#xff09…

【LeetCode】4. 寻找两个正序数组的中位数

文章目录4. 寻找两个正序数组的中位数题目描述示例 1:示例 2:提示:解题思路算法分析问题本质分析二分查找分割算法详解分割策略可视化分割点计算过程边界情况处理算法流程图各种解法对比时间复杂度分析空间复杂度分析关键优化点实际应用场景测…

HarmonyOS 开发实战:搞定应用名字与图标更换,全流程可运行示例

好的,我帮你把这篇《HarmonyOS 开发实战:快速更改应用名字与图标的终极指南》扩展到约 4000 字,重点会放在代码示例和代码解释部分,并且保留你要的口语化、易读风格。 我会在原文的基础上增加: 更完整的目录结构演示&a…

Keep-Alive 的 “爱情故事”:HTTP 如何从 “短命” 变 “长情”?

🚀 揭秘HTTP Keep-Alive:前端面试不再“短”路! 引言:HTTP连接的“爱恨情仇” 各位前端的小伙伴们,在面试中,HTTP协议绝对是绕不开的话题。而其中一个看似简单却又暗藏玄机的知识点,就是HTTP的“…

仅需8W,无人机巡检系统落地 AI 低空智慧城市!可源码交付

一、项目介绍无人机管控系统是融合无人机技术、传感器技术、物联网及人工智能的智能化检测方案。依托先进无人机技术与前沿 AI 算法,该系统可替代传统人工巡检模式,针对高危、复杂或大面积区域实现高效、精准监测,为城市基础设施检查、安防监…

java-JVM详解

一、JVM 是什么? 定义: JVM(Java Virtual Machine)是一个虚拟计算机,为 Java 字节码提供运行环境。它是 Java “一次编写,到处运行”(Write Once, Run Anywhere)的核心基础&#xff…

QT中ARGB32转ARGB4444优化4K图像性能的实现方案(完整源码)

QT中ARGB32转ARGB4444优化4K图像性能的实现方案(完整源码) 一、问题背景 在QT界面项目中,4K图像采用QImage::Format_ARGB32格式(4字节/像素)时,因数据量大导致编解码叠加性能不足。底层framebuffer实际为AR…

反射在Spring IOC容器中的应用——动态创建Bean

今天在看Java八股文时,对这里产生了一些疑惑,因为在目前做的练手项目中还没有用到过除了new以外的新建对象方式,在请教了其他前辈后对此有了新的理解,所以专门记录以用于梳理思路和复习基础。这里着重讲解反射机制实现新建对象这里…

TRS(总收益互换)系统架构设计:多市场交易的技术实现分析

一、多市场交易环境的技术特征 1.1 市场机制差异(技术视角)技术维度典型实现差异交割周期T0/T1/T2等多种结算模式价格稳定机制部分市场存在波动率控制措施系统接入协议FIX 4.4/ITCH/OMD-C等协议族衍生品支持工具种类与中央对手方清算差异1.2 技术挑战分析…

深度学习-卷积神经网络CNN-批量归一化 BatchNorm

为什么需要批量规范化层呢?让我们来回顾一下训练神经网络时出现的一些实际挑战:首先,数据预处理的方式通常会对最终结果产生巨大影响。 回想一下我们应用多层感知机来预测房价的例子。使用真实数据时,我们的第一步是标准化输入特征…

机器学习-支持向量机器(SVM)

0.1 数字识别 from sklearn.svm import SVC from sklearn.metrics import silhouette_score import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.feature_extraction import DictVectorizer from sk…

昆山PCB板工厂有哪些?

在长三角电子信息产业版图中,昆山凭借完整的产业链配套和精湛的制造工艺,成为国内PCB(印制电路板)生产的重要基地。本文精选五家具有代表性的本土工厂,从技术实力到服务特色展开深度剖析,为行业客户提供精准…

rk3588 ubuntu20.04安装包经常出现的问题总结(chatgpt回复)

问题1 问题 我在rk3588 ubuntu20.04安装相关环境的时候经常出现下面类似的问题,如何系统的解决 The following packages have unmet dependencies : openssh-server : Depends: openssh-client ( 1:8.2p1-4ubuntu0.13) but 1:8.2p1-4ubuntu0.11 is to be installed …

从根源到生态:Apache Doris 与 StarRocks 的深度对比 —— 论开源基因与长期价值的优越性

在 OLAP 领域,Apache Doris 与 StarRocks 常被一同提及,两者有着深厚的技术渊源 ——StarRocks 源自 Apache Doris 的代码 Fork,却在后续发展中走向了不同的路径。本文将从代码根源、架构演进、社区生态、功能特性等多维度展开对比。 一、代…

【从零开始学习Redis】项目实战-黑马点评D1

项目实战-黑马点评 项目架构短信登录发送短信验证码 实现思路就是按照上图左一部分&#xff0c; 实现类如下 Slf4j Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {/*** 验证手机号发送验证码** param phone* pa…

自然语言处理的范式转变:从Seq2Seq模型到Transformer架构

Seq2Seq 定义 Seq2Seq是一个Encoder-Decoder结构的网络&#xff0c;它的输入是一个序列&#xff0c;输出也是一个序列&#xff0c; Encoder使用循环神经网络(RNN,GRU&#xff0c;LSTM等)&#xff0c;将一个可变长度的信号序列(输入句子)变为固定维度的向量编码表达&#xff0c;…