{"id":26461335,"url":"https://github.com/netcorepal/netcorepal-cloud-framework","last_synced_at":"2025-05-15T01:07:08.835Z","repository":{"id":40438198,"uuid":"425171838","full_name":"netcorepal/netcorepal-cloud-framework","owner":"netcorepal","description":"一个基于ASP.NET Core实现的整洁领域驱动设计落地战术框架。  A tactical framework for Clean Domain-Driven Design based on ASP.NET Core.","archived":false,"fork":false,"pushed_at":"2025-05-08T13:12:54.000Z","size":4624,"stargazers_count":233,"open_issues_count":15,"forks_count":55,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-05-08T14:27:25.656Z","etag":null,"topics":["clean-code","clean-ddd","cqrs","csharp","ddd","domain-driven-design","dotnet","event-driven","testable"],"latest_commit_sha":null,"homepage":"https://netcorepal.github.io/netcorepal-cloud-framework/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netcorepal.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-06T06:21:27.000Z","updated_at":"2025-04-24T13:57:34.000Z","dependencies_parsed_at":"2024-01-13T14:12:56.820Z","dependency_job_id":"f6a9ff33-ec60-4fb4-acd1-5c49d58f0c26","html_url":"https://github.com/netcorepal/netcorepal-cloud-framework","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netcorepal%2Fnetcorepal-cloud-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netcorepal%2Fnetcorepal-cloud-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netcorepal%2Fnetcorepal-cloud-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netcorepal%2Fnetcorepal-cloud-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netcorepal","download_url":"https://codeload.github.com/netcorepal/netcorepal-cloud-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254041,"owners_count":22039792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-code","clean-ddd","cqrs","csharp","ddd","domain-driven-design","dotnet","event-driven","testable"],"created_at":"2025-03-19T04:20:56.597Z","updated_at":"2025-05-15T01:07:03.816Z","avatar_url":"https://github.com/netcorepal.png","language":"C#","funding_links":[],"categories":["C\\#","C# #"],"sub_categories":[],"readme":"# netcorepal-cloud-framework　　　　　　　　　　[中文](https://github.com/netcorepal/netcorepal-cloud-framework/blob/main/README.md)\n\n[![Release Build](https://img.shields.io/github/actions/workflow/status/netcorepal/netcorepal-cloud-framework/release.yml?label=release%20build)](https://github.com/netcorepal/netcorepal-cloud-framework/actions/workflows/release.yml)\n[![Preview Build](https://img.shields.io/github/actions/workflow/status/netcorepal/netcorepal-cloud-framework/dotnet.yml?label=preview%20build)](https://github.com/netcorepal/netcorepal-cloud-framework/actions/workflows/dotnet.yml)\n[![NuGet](https://img.shields.io/nuget/v/NetCorePal.Extensions.AspNetCore.svg)](https://www.nuget.org/packages/NetCorePal.Extensions.AspNetCore)\n[![MyGet Preview](https://img.shields.io/myget/netcorepal/vpre/NetCorePal.Extensions.AspNetCore?label=preview)](https://www.myget.org/feed/netcorepal/package/nuget/NetCorePal.Extensions.AspNetCore)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/netcorepal/netcorepal-cloud-framework/blob/main/LICENSE)\n\nA `tactical` framework for `Domain-Driven Design` based on `ASP.NET Core`.\n\nCore features:\n+ Domain-Driven Design practice support\n+ CQRS\n+ Event Driven\n+ Distributed transactions (eventual consistency of event handling)\n+ Multi-tenant\n+ Multi-environment (canary release)\n\n## How to use\n\n### Using the template tool\n\nCreate a project using the `NetCorePal.Template` template tool:\n\n```cmd\n# Install the template tool\ndotnet new -i NetCorePal.Template\n# Create a project\ndotnet new netcorepal-web -n My.Project.Name\n```\n\nTemplate tool source code: \u003chttps://github.com/netcorepal/netcorepal-cloud-template\u003e\n\n### Quick start documentation\n\n+ [Create a project](https://netcorepal.github.io/netcorepal-cloud-framework/en/getting-started/getting-started/)\n+ [Project structure](https://netcorepal.github.io/netcorepal-cloud-framework/en/getting-started/project-structure/)\n+ [Development process](https://netcorepal.github.io/netcorepal-cloud-framework/en/getting-started/development-process/)\n\n### Complete documentation\n\n\u003chttps://netcorepal.github.io/netcorepal-cloud-framework/en\u003e\n\n## Vision\n\nWith the development of the .NET technology ecosystem, its microservice architecture in the cloud-native era has become very mature, and the implementation of Domain-Driven Design has also received very good support. At the same time, with the increasing demand for informatization and digitalization in various industries, more enterprises and teams are beginning to pay attention to how to effectively organize R\u0026D teams and realize their business architecture.\n\nThe core purpose of this project is to help enterprises quickly build a technical implementation framework based on Domain-Driven Design, while accumulating and discussing the methodology of Domain-Driven Design, so that more enterprises and teams can benefit.\n\n## Roadmap\n\nPlanned capabilities\n\n+ [x] Support for flexible configuration and deployment of gateways\n+ [x] Rapid development framework based on `ASP.NET Core` and open-source components\n+ [x] Provide code template project scaffolding for Domain-Driven Design implementation\n+ [x] Implement a business-extensible overall canary release solution\n+ [x] Implement business-extensible tenant capabilities\n+ [x] Microservice architecture practice based on Domain-Driven Design\n+ [x] Modular design, can be used and replaced as needed\n+ [x] Provide detailed documentation\n+ [x] Provide microservice infrastructure with a visual operation interface\n    + [x] Based on .NET Aspire\n\n## Component description\n\n+ [x] Context Passing\n    + [x] AspNetCore (HTTP Request)\n    + [x] HttpClient\n    + [x] RabbitMQ (Based on DotNetCore.CAP)\n+ [x] Domain\n    + [x] Entity\n    + [x] StronglyTypedId (With Source Generator)\n    + [x] AggregateRoot\n    + [x] DomainEvent\n+ [x] Repository (Based On EntityFrameworkCore)\n+ [x] Transaction\n    + [x] UnitOfWork\n    + [x] Distributed Transaction\n        + [x] Outbox (Based on DotNetCore.CAP)\n+ [x] IdGeneration\n    + [x] Snowflake\n        + [x] Snowflake with Etcd\n        + [x] Snowflake with Redis\n        + [x] Snowflake with Consul\n+ [x] Primitives\n    + [x] Exception Handling\n    + [x] Clock\n+ [x] Service Discovery\n    + [x] Microsoft Service Discovery (Aspire)\n    + [x] Service Discovery Kubernetes\n+ [x] Multi Tenant\n+ [x] Multi Environment\n    + [x] Gray Environment\n\n## Referenced projects\n\n+ [AspNetCore](https://github.com/dotnet/aspnetcore)\n+ [EntityFrameworkCore](https://github.com/dotnet/efcore)\n+ [MediatR](https://github.com/jbogard/MediatR)\n+ [DotNetCore.CAP](https://github.com/dotnetcore/CAP)\n+ [KubernetesClient](https://github.com/kubernetes-client/csharp)\n+ [DistributedLock.Redis](https://github.com/madelson/DistributedLock)\n\n## About collaboration\n\nWe have an open mindset and welcome anyone to provide opinions and suggestions, and also welcome anyone to contribute code.\n\n## Development and debugging\n\n1. Install `.NET 9.0 SDK` or higher.\n\n   SDK download address: \u003chttps://dot.net/download\u003e\n\n2. Have a `Docker` environment for automated unit testing and integration testing.\n\n   `Docker Desktop` download address: \u003chttps://www.docker.com/products/docker-desktop/\u003e\n\n3. Build the project\n\n    ```shell\n    dotnet build\n    ```\n\n4. Run tests\n\n    ```shell\n    dotnet test\n    ```\n\n5. Other optional dependencies\n\n   Install `skywalking`\n\n    ```shell\n    # Install oap\n    docker run --name oap -p 11800:11800 -p 12800:12800 --restart always -d apache/skywalking-oap-server:9.0.0\n\n    # Install oap-ui\n    export version=9.0.0\n    docker run --name oap-ui -p 8080:8080 -d --link oap -e SW_OAP_ADDRESS=http://oap:12800  apache/skywalking-ui:$version\n    ```\n\n## Preview source\n\n```\nhttps://www.myget.org/F/netcorepal/api/v3/index.json\n```\n\n## Focus points\n\n+ Beginner-friendly\n    + Comprehensive documentation\n    + Supporting tutorials\n+ Modeling-friendly\n    + Direct support for Domain-Driven Design modeling\n+ Extension-friendly\n    + Modular design\n    + Support for module integration or replacement\n    + Encourage customization and modification based on source code\n+ Deployment-friendly\n    + Support Docker\n    + Support Helm\n+ Testing-friendly\n    + Emphasize support for unit testing and integration testing\n+ AI-friendly\n    + Continuously explore support for AI automated code generation with large language models\n\n## Some principles\n\nWe do not reinvent the wheel, but rather organically organize excellent infrastructure to achieve our goals through good architectural conventions.\n\nWe continuously focus on collaboration efficiency. The architectural design of this project will continuously focus on the impact of the architecture on team collaboration and continuously improve.\n\nWe continuously focus on robustness and the quality of project code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcorepal%2Fnetcorepal-cloud-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcorepal%2Fnetcorepal-cloud-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcorepal%2Fnetcorepal-cloud-framework/lists"}