日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

分享一个基于.NET6包含DDD,ES,CQRS等概念的开源项目

發(fā)布時間:2023/12/4 asp.net 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享一个基于.NET6包含DDD,ES,CQRS等概念的开源项目 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當你在學習DDD、CQRS或時間溯源時,除了大量的學習資源(比如書籍和文章)之外,你還接觸到了許多概念,這些資源只是在討論理論問題。這很好,我們知道他們在說什么,但我們?nèi)绾卧谝粋€真正的項目中使用他們呢?我們?nèi)绾螌崿F(xiàn)這些目標呢?

當您試圖獲取一些代碼示例時,通常會發(fā)現(xiàn)一些簡單的示例通過在僅包含一個實體的域中移動來演示這些復雜的概念,而該域通常包含一個實體,而該實體通常是消費者。

這些都是很好的例子,但是如果我們想在一個實際的應用程序項目中遵循它們,許多問題會引起我們的困惑!因為現(xiàn)實世界的挑戰(zhàn)!

  • 我們?nèi)绾悟炞C X 以及在哪里驗證?

  • 我們?nèi)绾螐亩鄠€實體收集復雜的數(shù)據(jù)?

  • X 在架構中的最佳位置在哪里?為什么?

還有許多其他問題,這些也是我的問題!

所以,如果你沒有人問你的問題,也許你需要通過深入研究源代碼來發(fā)現(xiàn)答案,它為你的挑戰(zhàn)提供了一些解決方案。

但是沒有多少開源項目可以讓你深入研究,你會發(fā)現(xiàn)自己在為一個以上的源代碼而掙扎,甚至會讓你更加困惑。因為每個項目在某些概念上都有自己的方法。

所以,在克服了所有這些挑戰(zhàn)之后,我決定制定一個獨特的解決方案,現(xiàn)在我想談談TaskoMask!

什么是TaskoMask?

TaskoMask 是一個基于 .Net 的免費開源任務管理系統(tǒng)。你可以在 GitHub 上瀏覽它的源代碼,每個人都可以作為團隊成員或項目所有者使用它。但是這個項目的主要目標是展示我們?nèi)绾瓮ㄟ^以下方式清晰地實現(xiàn)軟件技術和模式。因此,開發(fā)人員可以使用它來尋找具有真正挑戰(zhàn)的真實示例項目。

源代碼功能

這是項目涵蓋的項目列表,我們盡量保持最新。

后端:

  • .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)

  • 使用流水線模式存儲事件

  • 域和應用程序異常處理程序

  • 內(nèi)存總線

  • 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

若有收獲,就點個贊吧

總結

以上是生活随笔為你收集整理的分享一个基于.NET6包含DDD,ES,CQRS等概念的开源项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。