C#WPF實戰出真汁02--搭建項目三層架構

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;…