网站首页 > 技术教程 正文
当你在学习DDD、CQRS或时间溯源时,除了大量的学习资源(比如书籍和文章)之外,你还接触到了许多概念,这些资源只是在讨论理论问题。这很好,我们知道他们在说什么,但我们如何在一个真正的项目中使用他们呢?我们如何实现这些目标呢?
当您试图获取一些代码示例时,通常会发现一些简单的示例通过在仅包含一个实体的域中移动来演示这些复杂的概念,而该域通常包含一个实体,而该实体通常是消费者。
这些都是很好的例子,但是如果我们想在一个实际的应用程序项目中遵循它们,许多问题会引起我们的困惑!因为现实世界的挑战!
- 我们如何验证 X 以及在哪里验证?
- 我们如何从多个实体收集复杂的数据?
- X 在架构中的最佳位置在哪里?为什么?
还有许多其他问题,这些也是我的问题!
所以,如果你没有人问你的问题,也许你需要通过深入研究源代码来发现答案,它为你的挑战提供了一些解决方案。
但是没有多少开源项目可以让你深入研究,你会发现自己在为一个以上的源代码而挣扎,甚至会让你更加困惑。因为每个项目在某些概念上都有自己的方法。
所以,在克服了所有这些挑战之后,我决定制定一个独特的解决方案,现在我想谈谈TaskoMask!
什么是TaskoMask?
TaskoMask 是一个基于 .Net 的免费开源任务管理系统。你可以在 GitHub 上浏览它的源代码,每个人都可以作为团队成员或项目所有者使用它。但是这个项目的主要目标是展示我们如何通过以下方式清晰地实现软件技术和模式。因此,开发人员可以使用它来寻找具有真正挑战的真实示例项目。
源代码功能
这是项目涵盖的项目列表,我们尽量保持最新。
后端:
- .Net 6
- C#
- ASP.NET Web API
- ASP.NET MVC
- MongoDB
- Redis
- MediatR
- AutoMapper
- FluentValidation
- Swagger
- Serilog
- Seq
- xUnit with FluenAssertion and Moq
- MvcPagedList.Core
- RedisCache.Core
前端 :
- Blazor
- Blazor Server
- Cookie Authentication without ASP.NET Identity
- Working with APIs protected by JWT
- Comunication between components by messages
- .HTML
- CSS
- Java Script
- JQuery
- Bootstrap
- Jquery.noty
- Chart.js
模式、方法论、方法:
- Onion Architecture
- Unit Testing
- DDD
- Rich Domain Model (for core domain)
- Anemic Domain Model (for less important subdomains)
- Aggregate
- Value Object
- Domain Event
- Domain Service
- Always Valid Domain Model
- Invariants
- Specification
- Factory Method
- Optimistic Concurrency
- Separate Domain Model and Data Model
- CQRS
- Separate Read and Write Model
- Separate Read Side DB and Write Side DB
- Event Sourcing
- Repository
- Notification
一些技术特点:
- 使用管道模式缓存行为
- 使用管道模式进行验证( Fluent Validation 和 Data Annotation Validation)
- 使用流水线模式存储事件
- 域和应用程序异常处理程序
- 内存总线
- Cookie 身份验证
- Jwt认证
- 没有 ASP.NET 身份认证的的角色权限基础用户管理
- 支持 JWT 的 Swagger UI
文档
该项目有一些好的文档更有用,它有助于更多地了解架构、管道、域等。您可以在 GitHub 上的wiki页面中看到它们:
- 用户指南文档
- 域文档
- 建筑文档
- REST API 文档
翻译自:https://medium.com/@hamed.shirbandi/real-world-open-source-project-based-on-ddd-es-cqrs-af261cc24353
猜你喜欢
- 2024-10-19 Java 项目编译提示 javax.xml.bind.annotation does not exist 错误
- 2024-10-19 Android annotation包下常用的注解
- 2024-10-19 SpringMVC疑难一:mvc:annotation-dr
- 2024-10-19 Spring 中 AnnotationConfigUtils
- 2024-10-19 spring mvc 配置失效了?(springmvc的配置)
- 2024-10-19 为什么都爱着江南?黛瓦白墙,烟雨朦胧,是文人魂牵梦绕的故乡
- 2024-10-19 Spring框架系列之构造方法底层剖析01
- 2024-10-19 spring 中 AnnotationUtils 的常用方法
- 2024-10-19 SpringBoot实战4-Spring基础-IoC容器
- 2024-10-19 Intellij IDEA安装并使用阿里p3c代码规约插件
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)