一个适用于 .NET 的开源整洁架构项目模板
前言
项目架构模式在软件开发中扮演着至关重要的角色,它们为开发者提供了一套组织和管理代码的指导原则,以提高软件的可维护性、可扩展性、可重用性和可测试性。今天大姚给大家分享一个适用于 .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支持。
优秀项目和框架精选
该项目已收录到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
一个适用于 .NET 的开源整洁架构项目模板的更多相关文章
- Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总
原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...
- 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。
LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...
- Composite C1是一个.Net平台上开源专业的CMS开源项目
CompositeC1 4 发布 Composite C1是一个.Net平台上开源专业的CMS开源项目,很多的功能用户界面,面向任务的支持与各种工具协作.当编辑内容时在用户端体验很友好.编辑器与开发者 ...
- 推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架,快来试试它!
在SpringBoot项目直接使用okhttp.httpClient或者RestTemplate发起HTTP请求,既繁琐又不方便统一管理.因此,在这里推荐一个适用于SpringBoot项目的轻量级HT ...
- 准备开一个地图SDK的开源项目
最近有点空闲时间了, 准备开一个地图SDK的开源项目, 现在的地图SDK已经有很多了, 再做一个跟重新发明个轮子差不多, 但还想做的原因是想在别的轮子的基础上造个轮子... 初步设想是基于开源的地图渲 ...
- 我发起并创立了一个 Javascript 前端库 开源项目 jWebForm
在线演示地址: ( 在线演示 云平台 由 Kooboo 提供 https://www.kooboo.com/ ) 按钮: http://iwebform.kgeking.kooboo.si ...
- 如何结合整洁架构和MVP模式提升前端开发体验 - 整体架构篇
本文不详细介绍什么是整洁架构以及 MVP 模式,自行查看文章结尾相关链接文章. 整洁架构粗略介绍 下图为整洁架构最原始的结构图: Entities/Models:实体层,官方说法就是封装了企业里最通用 ...
- 如何结合整洁架构和MVP模式提升前端开发体验(二) - 代码实现篇
上一篇文章介绍了整体架构,接下来说说怎么按照上图的分层结构实现下面的增删改查的功能. 代码结构 vue userManage └── List ├── api.ts ├── EditModal │ ├ ...
- GitHub 上 57 款最流行的开源深度学习项目
转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...
- 【转】iOS超全开源框架、项目和学习资料汇总
iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...
随机推荐
- 基于微服务SDK框架与JavaAgent技术,低成本助力应用高效发布
本文分享自<华为云DTSE>第五期开源专刊,作者:聂子雄 华为云高级工程师.李来 华为云高级工程师. 微服务是一种用于构建应用的架构方案,可使应用的各个部分既能独立工作,又能协同配合,微服 ...
- 看图认识HTML5
教程: https://www.w3.org/TR/html52 https://www.w3cschool.cn/html5/ https://www.runoob.com/html/html5-i ...
- 基于常量值提取浅析elf文件结构
Elf(可执行和可链接文件)是一个永远也绕不开的话题,只要我们还在使用安卓手机/linux服务器,我们就需要了解elf的一些方方面面,现在就让我们从一个常量值提取的小需求出发,逐步解析elf文件结构吧 ...
- 关于MySQL表设计,测试人员可以关注哪些点
测试人员关注数据库表设计是"测试左移"的一种手段,可以把有关数据库的潜在bug消灭在系统测试之前,从而提高交付效率. 以MySQL为例,QA可从以下方面对数据库表设计做测试的左移: ...
- LVM 使用与扩容总结
转载请注明出处: LVM(Logical Volume Manager,逻辑卷管理器)是一个用于Linux系统的磁盘管理工具.它提供了一种更加灵活的存储管理机制,可以方便地进行磁盘的扩容.缩减.快照以 ...
- jmeter如何产生批量数据?
在使用jmeter时,若需要产生批量数据,可以通过连接数据库--执行相关sql进行操作,例如添加20条数据 步骤: 1.添加jdbc 数据库配置信息 2.添加循环控制器(循环次数20) 3.循环控制器 ...
- Navicat Premium 16下载与安装
1.可以通过以下两种方式下载 a.官网下载地址 https://www.navicat.com.cn/download/navicat-premium b.百度网盘下载地址 链接:https://pa ...
- c# is 和 as 浅看重制版
前言 当年写的比较差:https://www.cnblogs.com/aoximin/p/12965408.html,所以特来重新写一遍. 正文 首先为什么会出现is 和 as 呢? 因为是为了有需要 ...
- C# 获取系统盘符
1.使用.net管理对象(引入System.Management) public static List<string> getDisk() { WqlObjectQuery wmique ...
- Sealos Devbox 云开发框架使用教程
用过 Sealos 云开发的同学,想必都很熟悉函数式编程,喜欢 Sealos 云开发的那种完全不用关心路由,开发快,上线快,调试快,越用越简单越简单越用的感觉.它就像一个温柔的保姆,帮你打理好了所有的 ...