前言

项目架构模式在软件开发中扮演着至关重要的角色,它们为开发者提供了一套组织和管理代码的指导原则,以提高软件的可维护性、可扩展性、可重用性和可测试性。今天大姚给大家分享一个适用于 .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推荐或自荐(让优秀的项目和框架不被埋没)。

 

一个适用于 .NET 的开源整洁架构项目模板的更多相关文章

  1. Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总

    原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...

  2. 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。

    LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...

  3. Composite C1是一个.Net平台上开源专业的CMS开源项目

    CompositeC1 4 发布 Composite C1是一个.Net平台上开源专业的CMS开源项目,很多的功能用户界面,面向任务的支持与各种工具协作.当编辑内容时在用户端体验很友好.编辑器与开发者 ...

  4. 推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架,快来试试它!

    在SpringBoot项目直接使用okhttp.httpClient或者RestTemplate发起HTTP请求,既繁琐又不方便统一管理.因此,在这里推荐一个适用于SpringBoot项目的轻量级HT ...

  5. 准备开一个地图SDK的开源项目

    最近有点空闲时间了, 准备开一个地图SDK的开源项目, 现在的地图SDK已经有很多了, 再做一个跟重新发明个轮子差不多, 但还想做的原因是想在别的轮子的基础上造个轮子... 初步设想是基于开源的地图渲 ...

  6. 我发起并创立了一个 Javascript 前端库 开源项目 jWebForm

    在线演示地址: ( 在线演示 云平台 由 Kooboo 提供  https://www.kooboo.com/ ) 按钮:      http://iwebform.kgeking.kooboo.si ...

  7. 如何结合整洁架构和MVP模式提升前端开发体验 - 整体架构篇

    本文不详细介绍什么是整洁架构以及 MVP 模式,自行查看文章结尾相关链接文章. 整洁架构粗略介绍 下图为整洁架构最原始的结构图: Entities/Models:实体层,官方说法就是封装了企业里最通用 ...

  8. 如何结合整洁架构和MVP模式提升前端开发体验(二) - 代码实现篇

    上一篇文章介绍了整体架构,接下来说说怎么按照上图的分层结构实现下面的增删改查的功能. 代码结构 vue userManage └── List ├── api.ts ├── EditModal │ ├ ...

  9. GitHub 上 57 款最流行的开源深度学习项目

    转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...

  10. 【转】iOS超全开源框架、项目和学习资料汇总

    iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...

随机推荐

  1. C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  2. QT Creator项目路径设置

    1.一些中间文件的生成路径的设置 MOC_DIR = temp/moc RCC_DIR = temp/rcc UI_DIR = temp/ui OBJECTS_DIR = temp/obj 这样设置之 ...

  3. 3.20 什么是环境变量,Linux环境变量有哪些?

    变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值.在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME).邮件存放 ...

  4. Spring AI + ollama 本地搭建聊天 AI

    Spring AI + ollama 本地搭建聊天 AI 不知道怎么搭建 ollama 的可以查看上一篇Spring AI 初学. 项目可以查看gitee 前期准备 添加依赖 创建 SpringBoo ...

  5. 知识分享:Air780E软件之UDP应用示例

    一.UDP概述 UDP(用户数据报协议,UserDatagramProtocol)是一种无连接的.不可靠的传输层协议,主要用于实现网络中的快速通讯.以下是UDP通讯的主要特点: 1.1 无连接通讯: ...

  6. 干货分享:Air700ECQ的硬件设计,第二部分

    ​ 接下来分享第二部分. 3.10. 功能管脚 3.10.1. MAIN_RI 管脚名 类型 序号 电压域 作用 MAIN_RI DO 5 LDOAON 振铃信号,唤醒输出管脚,用于唤醒AP 表格 1 ...

  7. NZOJ 模拟赛6

    T1 叉叉 现在有一个字符串,每个字母出现的次数均为偶数.接下来我们把第一次出现的字母a和第二次出现的a连一条线,第三次出现的和四次出现的字母a连一条线,第五次出现的和六次出现的字母a连一条线...对 ...

  8. 强化学习算法中log_det_jacobian的影响是否需要考虑

    相关: 人形机器人-强化学习算法-PPO算法的实现细节是否会对算法性能有大的影响. https://openi.pcl.ac.cn/devilmaycry812839668/google_brax_p ...

  9. golang读取文件

    golang 按行读取文件 file, err := os.Open("app-2019-06-01.log") if err != nil { log.Fatal(err) } ...

  10. yum之镜像加速

    有没有遇到使用yum安装软件慢如龟,默认的系统使用的是centos的镜像源,我们可以修改为国内镜像源加速软件安装 163)http://mirrors.163.com/.help/centos.htm ...