一个适用于 .NET 的开源整洁架构项目模板

news/2025/1/10 13:20:27/文章来源:https://www.cnblogs.com/Can-daydayup/p/18663796

前言

项目架构模式在软件开发中扮演着至关重要的角色,它们为开发者提供了一套组织和管理代码的指导原则,以提高软件的可维护性、可扩展性、可重用性和可测试性。今天大姚给大家分享一个适用于 .NET 的开源整洁架构项目模板。

.NET常见的几种项目架构模式

https://mp.weixin.qq.com/s/kr1vlt4tj3dSyXyRv-GqOw

整洁架构

整洁架构(Clean Architecture)是一种软件架构设计原则,由罗伯特·C·马丁(Robert C. Martin)提出,它旨在使软件系统更加灵活、可维护和可测试,其核心目标是构建一种简洁、灵活且易于维护的系统结构。

分层职责

  • 实体层(Entities):实体层代表了系统中的核心业务概念和对象。这一层包含了那些在整个系统的生命周期中持续存在且具有明确业务含义的实体。
  • 用例层(Use Cases):用例层包含了系统的具体业务逻辑和用例。它协调实体层和其他层之间的交互,以实现特定的业务功能。
  • 接口适配器层(Interface Adapters):接口适配器层将用例层与外部系统(如数据库、用户界面、外部服务等)进行连接。它将外部系统的接口转换为用例层可以理解的形式,并将用例层的输出转换为适合外部系统的格式。
  • 框架与驱动层(Frameworks and Drivers):框架与驱动层包含了外部的框架和工具,如数据库、Web 框架、消息队列等。这一层通常是由具体的技术实现组成,为上层提供基础设施支持。

.NET 整洁架构模板

CleanArchitecture是一个适用于 .NET 的开源整洁架构项目模板,此模板的目标是利用 Clean Architecture 和 ASP.NET Core 的强大功能,为企业应用程序开发提供一种简单而有效的方法。使用此模板,您可以毫不费力地使用 ASP.NET Core 和 Angular 或 React 创建单页应用程序 (SPA),同时遵守 Clean Architecture 的原则。入门非常简单,只需安装 .NET 模板。

项目源代码

环境准备

.NET 9.0 SDK

  • https://dotnet.microsoft.com/zh-cn/download/dotnet/9.0

Node.js

  • https://nodejs.org

.NET 整洁架构模板安装

Clean.Architecture.Solution.Template:

  • https://www.nuget.org/packages/Clean.Architecture.Solution.Template
dotnet new install Clean.Architecture.Solution.Template::9.0.8

整洁架构模板安装后,使用模板创建新的解决方案。您可以选择使用 Angular、React 或创建仅限 Web API 的解决方案。使用 -cf 或 --client-framework 选项指定客户端框架,并提供将在其中创建项目的输出目录。以下是一些示例:

要使用 Angular 和 ASP.NET Core 创建单页应用程序 (SPA):

dotnet new ca-sln --client-framework Angular --output YourProjectName

要使用 React 和 ASP.NET Core 创建 SPA,请执行以下操作:

dotnet new ca-sln -cf React -o YourProjectName

若要创建仅限 ASP.NET Core Web API 的解决方案,请执行以下操作:

dotnet new ca-sln -cf None -o YourProjectName

启动应用程序:

cd src/Web
dotnet run

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

  • GitHub开源地址:https://github.com/jasontaylordev/CleanArchitecture

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
  • Gitee开源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867112.html

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

相关文章

ETL之kettle版本安装包免费下载地址

想真正学习或者提升自己的ETL领域知识的朋友欢迎进群,一起学习,共同进步。由于群内人员较多无法直接扫描进入,公众号后台加我微信入群,备注kettle/hop。 1、群里经常有小伙伴询问kettle安装包或者私下找我要,今天群里的三倍镜大佬分享了一个kettle全家桶版本,今天我整理下…

Win电脑日历、日程表怎么固定到桌面显示?

使用Win电脑办公,想要随时查看今天的待办任务怎么办?如何快速记录临时安排的工作事项呢?如果能够把日历、日程表固定到电脑桌面上显示就很方便了! 那么Win电脑桌面日历/日程表,怎么固定到桌面显示呢?其实用敬业签就可以轻松实现! 它是一款能一直悬挂在Win桌面上显示的便…

【每日一题】20250110

可人生就是要不断地做选择啊。总不能因为怕选择,就永远停留在原地吧。【每日一题】从区间 \([0,1]\) 随机抽取 \(2n\) 个数 \(x_1,x_2,\ldots,x_n,y_1,y_2,\ldots,y_n\),构成 \(n\) 个数对 \(( x_1, y_1)\), \(( x_2, y_2) , \ldots\), \(( x_n, y_n)\),其中两数的平方和小于…

龙哥量化:文华8程序化名词解释WH8程序化交易:支持一开一平的信号过滤模型,也支持多次开仓多次平仓的加减仓模型;支持一根K线一个信号的模型,也支持一根K线多个信号的模型。

如果您需要代写技术指标公式, 请联系我。 龙哥QQ:591438821 龙哥微信:Long622889 也可以把您的通达信,文华技术指标改成TB交易开拓者、金字塔、文华8的自动交易量化策略 WH8程序化交易:支持一开一平的信号过滤模型,也支持多次开仓多次平仓的加减仓模型;支持一根K线一个信…

2024年终总结-gxngxngxn

2024年终总结-gxngxngxn 引言 原本应该早就写完这一篇年终总结的,但由于期末和一些琐事,一直没时间,一拖再拖。到了最近放假了,才得空下笔。 想写年终总结的想法起源于去年的这个时候,也就是2024年的一月份左右。 那时我如往常一样打开收藏的大佬们的博客,映入眼帘的便是…

AI正在悄悄接管互联网:超过半数内容已是 AI 生成!

序言:这个世界任何时候都会因为利益冲突而变得精彩,人工智能写作是不是一种侵权行为,美国人内部闹得很欢,人工智能对人类的模仿到底算不算侵权? 如果法律裁定这种行为就是侵权,那也将是划时代的,因为:模仿不付费将会犯罪,那这个世界会不会就因此停滞发展呢?因为人类的…

【模拟电子技术】04-二极管的直流等效电路

【模拟电子技术】04-二极管的直流等效电路 上节提到PN结形成到二极管,并且了解到二极管V-A特性曲线每一段都能利用,并且可以规定电流路径。使用二极管的时候需要关注它的主要参数这四个参数中的每一个在使用的时候都需要考虑,如果没有选择好规格的话,使用时就可能烧坏。不难…

详解GaussDB事务和并发控制机制,提升事务并发处理效率

本文着重介绍了GaussDB的事务管理和并发控制机制,GaussDB采用多版本并发控制和两阶段锁相结合的机制。摘要:本文着重介绍了GaussDB的事务管理和并发控制机制,GaussDB采用多版本并发控制和两阶段锁相结合的机制。本文分享自华为云社区《华为云开发者云主机体验【玩转华为云】…

php NFA灾难回溯

php NFA灾难回溯正则分为NFA和DFA两种,而php中使用的是NFA.php通过pcre.backtrack_limit来限制回溯次数,如果超过了这个限制,就会返回false.pcre.backtrack_limit默认值是100万. 因此我们可以通过传入大量的垃圾字符或是触发灾难性回溯来超过限制,从而绕过preg_match. 除此以外…

如何构建适合MCN团队的文档管理系统

一、MCN团队运营中的文档管理痛点 每到年末,MCN团队都会面临一场“信息战”。团队成员需要汇总全年合作数据、内容产出情况、以及运营数据报表。这些繁重的任务中,文档管理是最基础但也最容易被忽视的一环。 痛点包括:文件分布零散:不同项目成员习惯使用不同的存储方式,难…

CDS标准视图:一次性账户的客户行项目 I_ONETIMEACCOUNTCUSTOMER

视图名称:一次性账户的客户行项目 视图类型:基础 视图代码:点击查看代码 @EndUserText.label: One-Time Account Data for Customer Items @Analytics: { dataCategory:#DIMENSION} @Analytics.internalName:#LOCAL @VDM.viewType: #BASIC @AbapCatalog.sqlViewName: IONETI…