首页 > 其他分享 >[MDP.Net] 模組架構

[MDP.Net] 模組架構

时间:2023-08-12 15:11:38浏览次数:48  
标签:邏輯 介面 系統 模組 模組架構 資料 物件 MDP Net

MDP.Net遵循三層式架構,將模組開發切割為:系統展示、領域邏輯、資料存取三個分層,減少模組對於元件、平台、框架的直接依賴,提高模組自身的內聚力。

- 系統展示(Presentation):與目標客戶互動、與遠端系統通訊...等等的功能邏輯,會被歸類在系統展示。例如,使用MessageBox通知使用者處理結果、提供API給遠端系統使用。

- 領域邏輯(Domain):封裝商業知識的物件、流程、演算法...等等的功能邏輯,會被歸類在領域邏輯。例如,出勤系統的刷卡記錄物件、購物商城的折購計算規則。

- 資料存取(Accesses):資料庫的新增修改、遠端服務的呼叫調用...等等的功能邏輯,會被歸類在資料存取。例如,將資料存放到SQL Server、或者是從遠端API取得資料。

MDP.Net的模組程式遵循此分層,將每個模組拆解為三個專案,依序命名為:

- Module001.csproj:領域邏輯專案。

- Module001.WebAPI.csproj:系統展示專案。

- Module.Accesses.csproj:資料存取專案。

而在MDP.Net的領域邏輯(Domain)裡,也加入了下列設計,來進一步提升程式開發速度。

- Entity:DDD領域模型的實例物件(Class),用以定義資料物件的物件屬性,並可以封裝商業邏輯成為物件方法。

- Repository:資料庫存取的邊界介面(Interface),用來定義實例物件(Entity)進出資料庫的介面方法。

- Provider:遠端系統調用的邊界介面(Interface),用來定義實例物件(Entity)進出遠端系統的介面方法。

- Service:商業知識的流程即演算法的封裝物件(Class),封裝商業邏輯成為物件方法。也可以設計為邊界介面(Interface),將商業邏輯用實做注入的方式使用。

- Context:做為模組入口的根物件(Class),遵循Facade Pattern設計的原則,將上述四種物件與介面進行收整。除了做為模組被註冊、注入、使用的根物件之外,也可以封裝商業邏輯成為物件方法。

 

标签:邏輯,介面,系統,模組,模組架構,資料,物件,MDP,Net
From: https://www.cnblogs.com/clark159/p/17624828.html

相关文章

  • 7.7 通俗易懂详解稠密连接网络DenseNet & 手撕稠密连接网络DenseNet
    一.思想与ResNet的区别DenseNet这样拼接有什么好处?DenseNet优点对于每一层,使用前面所有层的特征映射作为输入,并且其自身的特征映射作为所有后续层的输入。DenseNet的优点:缓解了消失梯度问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量,改进了整个网络的信息流和梯度,这使得......
  • .NET后台任务-Worker services in .NET
    来自你的消息:怎么理解Workerservicesin.NET?来自ChatAI的消息:WorkerServices是.NETCore中的一个特性,它使开发人员能够轻松创建和托管长时间运行的后台任务或服务。WorkerServices使用.NETCore的异步编程模型和可扩展性,可以在不同的环境中运行,如Windows服务、Linux守......
  • AirNet使用笔记9
    摘要:音视频工具;1、合成通用音视频工具,工具支持将屏幕操作记录文件(.dat/.fdat)和语音回放文件(.wav)合成为通用视频格式文件(例如.mp4).dat是一种自定义的数据格式;.fdat是mp4格式;合并时候需要直接把fdat和wav进行合成(屏幕记录文件(.dat/.fdat)放入工具目录下的datafiles文件夹中;将音频文......
  • B3-1 NetGen6.1安装
    安装NetGen6.11、下载https://github.com/NGSolve/ngsolve/releases/download/v6.2.2008/NGSolve-6.2.2008-win64.msi2、配置与NetGen6.1版本匹配的python3.7,安装python并添加到环境目录。3、运行安装好之后运行netgen.exe如果运行不成功,大概率是python和conda版本冲突,或......
  • 使用ASP.NET Identity管理用户认证与授权
    当开发涉及用户认证与授权的网站或应用程序时,ASP.NETIdentity是一个强大的工具,可以帮助你管理用户的身份验证和授权需求。它提供了一套易于使用且高度可定制的功能,让你可以轻松地实现用户管理功能。在本博客中,我们将探讨如何使用ASP.NETIdentity来管理用户认证与授权。什么是......
  • .net core Fleck WebSocket使用笔记
    @@.netcoreFleck socket帮助类usingFleck;usingKOTL_EvidenceService.Model;usingSystem;usingSystem.Collections.Generic;namespaceKOTL_EvidenceService.Util{publicclassServerHelper{WebSocketS......
  • c# 不通过注册表,检测系统安装的.net版本
    ///<summary>///检测是否安裝4.7.2以上版本///</summary>///<returns></returns>boolCheckNet472(){//C:\Windows\Microsoft.NET\Frameworkstringnet="Micros......
  • README_network
    目录1、功能2、环境3、配置blog_url:blog_id:username:password4、运行5、添加快捷方式设置「右键→→发送到」的功能注意:Typora偏好设置——》图像设置1、功能一键拖拽上传默认“未发布”,可选择直接发布重复上传,提示是否更新博客2、环境(1)Python3安装pyyaml库:cmd中......
  • Ubuntu22-安装telnet远程
    前面讲了Centos如何安装telnet远程,这次分享Ubuntu系统如何安装远程telnet,作为咱们运维备用远程途径 一、下载和安装查看系统版本:Ubuntu22.04.1LTS 在线安装:aptinstalltelnettelnetdopenbsd-inetd 离线安装:离线安装需要先找到有外网系统的电脑缓存离线安装包......
  • 7.6 通俗易懂解读残差网络ResNet & 手撕ResNet
    一.举例通俗解释ResNet思想假设你正在学习如何骑自行车,并且想要骑到一个遥远的目的地。你可以选择直接骑到目的地,也可以选择在途中设置几个“中转站”,每个中转站都会告诉你如何朝着目的地前进。在传统的神经网络中,就好比只能选择直接骑到目的地。当你的目的地很远时,可能会出现骑不......