首页 > 其他分享 >[笔记]如何在 .NET中实现洁净架构?

[笔记]如何在 .NET中实现洁净架构?

时间:2024-02-23 18:01:04浏览次数:23  
标签:类库 洁净 Infrastructure 架构 项目 应用程序 Application ToDoApp NET

原文地址:https://mp.weixin.qq.com/s/8SMduU_1pAXJY0YO9KQLuA

现在让我们看看如何使用洁净架构设计模式实现一个 ASP.NET Core Web API 项目。我们将检查不同的层次以及需要在每个层次中放什么代码。

让我们通过为应用程序创建一个新的解决方案来开始:

 

首先,我们创建一个名为 ToDoApp 的解决方案,它有三个文件夹 - CoreInfrastructure, 和 Presentation。然后,我们在其中添加以下项目:

  • • ToDoApp.Domain – 这是一个类库项目,代表应用程序的 Domain 层。

  • • ToDoApp.Application – 这也是一个类库项目,代表应用程序的 Application 层。这个项目只参考 ToDoApp.Domain 项目。

  • • ToDoApp.Infrastructure – 这是另一个用于表示应用程序的 Infrastructure 层的类库项目。理想情况下,它只应依赖于 ToDoApp.Application 项目。

  • • ToDoApp.Persistence – 这也是一个类库项目,是 Infrastructure 层的一部分。这是专门用于处理应用程序的数据持久性。这也只依赖于 ToDoApp.Application 项目。

  • • ToDoApp.API – 这是一个 ASP.NET Web API 项目,代表应用程序的 Presentation 层。理想情况下,它只应依赖于 ToDoApp.Application 项目。但是,对于依赖注入,我们需要添加对 ToDoApp.Infrastructure 和 ToDoApp.Persistence 的引用。但请记住,那些应该是运行时依赖,我们不应该与这些层创建任何编译时间的依赖。

注意我们在 Core 文件夹中组织 Domain 和 Application 项目。同样,Infrastructure 和 Persistence 项目进入 Infrastructure 文件夹。然而, API 项目进入 Presentation 文件夹。这样做,我们将有一个遵循洁净架构原则的解决方案结构。

标签:类库,洁净,Infrastructure,架构,项目,应用程序,Application,ToDoApp,NET
From: https://www.cnblogs.com/bluedoctor/p/18030113

相关文章

  • Linear-Time Graph Neural Networks for Scalable Recommendations
    目录概符号说明MotivationLTGNN代码ZhangJ.,XueR.,FanW.,XuX.,LiQ.,PeiJ.andLiuX.Linear-timegraphneuralnetworksforscalablerecommendations.WWW,2024.概在大图上的一种高效的训练方式.符号说明\(\mathcal{V}\),nodeset;\(\mathcal{E}\),edg......
  • netstat
    netstat-anp:显示系统端口使用情况netstat-nupl:UDP类型的端口netstat-ntpl:TCP类型的端口netstat-na|grepESTABLISHED|wc-l:统计已连接上的,状态为"established"netstat-l:只显示所有监听端口netstat-lt:只显示所有监听tcp端口  -r:--route,显示路由表信息-g:--groups,显示多重......
  • .net短信登陆之后端代码
    1.申请腾讯云账号2.在产品中搜索“短信” 3.点击免费试用,可免费试用100条  4.创建签名和模板  5.在云API中搜索短信 6.点击发送短信,点击APIExplorer  7.就可以调用了,调用成功后可以生成调用的代码,复制到VS中即可(项目要先在nuget中安装“TencentClou......
  • Kubernetes leader election 源码分析
    0.前言Kubernetes:kube-scheduler源码分析介绍了kube-scheduler调度Pod的逻辑。文中有一点未提的是,在Kubernetes集群中,kube-scheduler组件是多副本,单实例运行。仅有一个副本作为leader运行,当发生故障时,其它副本会抢占为leader继续运行。这种机制通过leaderelect......
  • WiMinet 评说1.3:模拟式UDP中继技术缺陷
        在《WiMinet评说1.2:多跳无线网络的现状》一文中,我们提到:在室外长距离的无线自组织网络中,由于节点之间的链路损耗较大,其链路预算相对不足,其包误码率PER会相应升高,也就是丢包概率p会比较大;而在一个大规模网络中,某些分支节点的通讯链路又会比较深,也就是网络跳数n比......
  • 开源:Taurus.DistributedLock 分布式锁框架,支持 .Net 和 .Net Core 双系列版本
    前言:在经过漫长的技术沉淀,终于又为.Net及.NetCore的微服务系列框架贡献当中的一个重要组件。Taurus.DistributedLockisadistributedlockfor.netor.netcore.【支持:Redis、MemCache、Database、Local、File五类锁】1、开源地址:https://github.com/cyq1162/Taurus......
  • 9.Polly在NET中的使用,重试、熔断、超时、降级、限流简单用法
    Polly是一个.NET弹性和瞬态故障处理库,允许开发人员以Fluent和线程安全的方式来实现重试、断路、超时、隔离、限流和降级策略。文档: https://gitee.com/hubo/Polly重试(Retry)出现故障自动重试,这个是很常见的场景,如:当发生请求异常、网络错误、服务暂时不可用时,就应该重试。......
  • .Net Core Unit of Work 基于Entity Framework Core 封装的多数据源操作 (MySql版本)
    先说一下UnitofWork是什么:UnitofWork(工作单元)是一种设计模式,通常用于管理数据库事务和持久化操作。它有助于确保数据操作的一致性和完整性,同时减少不必要的数据库操作,提高性能。在软件开发中,UnitofWork模式通常与Repository模式一起使用。下面是UnitofWork模式的......
  • R语言弹性网络Elastic Net正则化惩罚回归模型交叉验证可视化
    原文链接:http://tecdat.cn/?p=26158原文出处:拓端数据部落公众号 弹性网络正则化同时应用L1范数和L2范数正则化来惩罚回归模型中的系数。为了在R中应用弹性网络正则化。在 LASSO回归中,我们为alpha参数设置一个'1'值,并且在岭回归中,我们将'0'值设置为其alpha参数......
  • Mamba详细介绍和RNN、Transformer的架构可视化对比
    Transformer体系结构已经成为大型语言模型(llm)成功的主要组成部分。为了进一步改进llm,人们正在研发可能优于Transformer体系结构的新体系结构。其中一种方法是Mamba(一种状态空间模型)。Mamba:Linear-TimeSequenceModelingwithSelectiveStateSpaces一文中提出了Mamba,我们......