{"id":13432241,"url":"https://github.com/cesarcastrocuba/nlayerappv3","last_synced_at":"2025-03-16T23:30:58.665Z","repository":{"id":201493608,"uuid":"93953557","full_name":"cesarcastrocuba/nlayerappv3","owner":"cesarcastrocuba","description":"Domain Driven Design (DDD) N-LayeredArchitecture with .Net Core 2","archived":false,"fork":false,"pushed_at":"2018-08-23T14:09:46.000Z","size":205,"stargazers_count":155,"open_issues_count":2,"forks_count":53,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-10-27T11:50:13.573Z","etag":null,"topics":["architectural-patterns","asp-net-core","ddd","ddd-architecture","ddd-patterns","ddd-sample","domain-driven-design","dotnet-core","dotnetcore","nlayer","sample-code"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cesarcastrocuba.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-06-10T17:00:46.000Z","updated_at":"2024-10-02T16:22:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"9da335cf-2741-4842-9826-d28b720af336","html_url":"https://github.com/cesarcastrocuba/nlayerappv3","commit_stats":null,"previous_names":["cesarcastrocuba/nlayerappv3"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cesarcastrocuba%2Fnlayerappv3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cesarcastrocuba%2Fnlayerappv3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cesarcastrocuba%2Fnlayerappv3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cesarcastrocuba%2Fnlayerappv3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cesarcastrocuba","download_url":"https://codeload.github.com/cesarcastrocuba/nlayerappv3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243949864,"owners_count":20373653,"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":["architectural-patterns","asp-net-core","ddd","ddd-architecture","ddd-patterns","ddd-sample","domain-driven-design","dotnet-core","dotnetcore","nlayer","sample-code"],"created_at":"2024-07-31T02:01:09.679Z","updated_at":"2025-03-16T23:30:58.215Z","avatar_url":"https://github.com/cesarcastrocuba.png","language":"C#","funding_links":[],"categories":["Sample Projects","例子"],"sub_categories":["Workflow","工作流",".NET (C#/F#)"],"readme":"# NLayerAppV3\n\nThis N-Layered Architecture with .Net Core 2.1 project (NLayerAppV3) is retro rebuild new code project based on DDD N-LayeredArchitecture Version 2.\nIt contains all DDD Layers where the developer and software architect may reuse to implement a .Net Core WebApi (Version 2.1) for Banking and Blog Contexts.\nWhy to use .NET Core 2.1? We need to use this version because of EF Core Complex Types - Value Object implementation (OwnsOne) and TransactionScope implementation using in Application Layer.\nThis project is a tribute to the recent visit to Madrid of Cesar de la Torre in order to give us an amazing conference called 'Microservices Architectures' [https://geeks.ms/plainnews/2017/05/04/microservices-architectures/].\n\n## Demo\n\n- Main Bounded Context [http://nlayerappv3mainboundedcontext.azurewebsites.net]\n- Blog Bounded Context [http://nlayerappv3blogboundedcontext.azurewebsites.net]\n\n## Getting Started\n\nInstall the .NET Core 2.1 runtime for your host environment from [https://www.microsoft.com/net/core/] (https://www.microsoft.com/net/core/)\n\nIn a terminal, navigate to the folder of this project and type the following to restore the dependencies:\n\n```\ndotnet restore\n```\n\nTo start the API, navigate to the 'DistributedServices.MainBoundedContext' folder and type:\n\n```\ndotnet run\n```\n\nBrowse to http://localhost:5000/ to see the result.\n\n\nTo run the tests, navigate to the 'DistributedServices.MainBoundedContext.Tests' or antoher test project folder and type:\n\n```\ndotnet test\n```\n\n## Code Overview\n\nThe solution consists of sixteen projects: the API, Application, Domain and infrastructure projects.\n\n- DistributedServices.MainBoundedContext\n- DistributedServices.MainBoundedContext.Tests\n- Application.Seedwork\n- Application.MainBoundedContext\n- Application.MainBoundedContext.DTO\n- Application.MainBoundedContext.Tests\n- Domain.Seedwork\n- Domain.Seedwork.Tests\n- Domain.MainBoundedContext\n- Domain.MainBoundedContext.Tests\n- Infrastructure.Data.Seedwork\n- Infrastructure.Data.MainBoundedContext\n- Infrastructure.Data.MainBoundedContext.Tests\n- Infrastructure.Crosscutting\n- Infrastructure.Crosscutting.NetFramework\n- Infrastructure.Crosscutting.Tests\n\n### DistributedServices.MainBoundedContext\n\nThis project contains the API controllers (sync and async methods).\n\n#### Dependencies\n- Microsoft.NETCore.App: A set of .NET API's that are included in the default .NET Core application model. \n\n### DistributedServices.MainBoundedContext.Tests\n\nThis project contains the integration and unit tests.\n\n#### Dependencies\n- TestHost: for in-process API testing\n- xUnit: as the testing framework\n- Newtonsoft.Json: for JSON deserialization\n- FluentAssertions: to write beautiful assertions with Should().\n- Moq: Moq is intended to be simple to use, strongly typed and minimalistic (while still fully functional!).\n\n### Application.Seedwork\n\nThis project contains Error Exceptions and Projections Extensions.\n\n#### Dependencies\n- Microsoft.NETCore.App: A set of .NET API's that are included in the default .NET Core application model. \n\n### Application.MainBoundedContext\n\nThis project contains the modules and an anemic generic application common service.\n\n#### Dependencies\n- Microsoft.Extensions.Logging: Logging. \n\n### Application.MainBoundedContext.DTO\n\nThis project contains the DTOs, profiles and validations.\n\n#### Dependencies\n- Automapper: A convention-based object-object mapper\n- Fluent Validation: A small validation library for .NET\n- Newtonsoft.Json: for JSON deserialization\n\n### Application.MainBoundedContext.Tests\n\nThis project contains the adapters and application services tests.\n\n#### Dependencies\n- xUnit: as the testing framework\n- Moq: Moq is intended to be simple to use, strongly typed and minimalistic (while still fully functional!).\n\n### Domain.Seedwork\n\nThis project contains the base entities with guid, int and string identities, value object and auditable classes.\n\n#### Dependencies\n- Microsoft.NETCore.App: A set of .NET API's that are included in the default .NET Core application model. \n\n### Domain.Seedwork.Tests\n\nThis project contains unit tests.\n\n#### Dependencies\n- xUnit: as the testing framework\n\n### Domain.MainBoundedContext\n\nThis project contains the aggregates, domains entities, value objects, factories, specifications and the repositories interfaces.\n\n#### Dependencies\n- Microsoft.NETCore.App: A set of .NET API's that are included in the default .NET Core application model. \n\n### Domain.MainBoundedContext.Tests\n\nThis project contains unit tests of the domain entities, value objects, ....\n\n#### Dependencies\n- xUnit: as the testing framework\n\n### Infrastructure.Data.Seedwork\n\nThis project contains the Repository base class and some interfaces.\n\n#### Dependencies\n- Microsoft.EntityFrameworkCore.InMemory: In-memory database provider for Entity Framework Core (to be used for testing purposes). \n\n### Infrastructure.Data.MainBoundedContext\n\nThis project contains the repositories.\n\n#### Dependencies\n- Microsoft.EntityFrameworkCore.InMemory: In-memory database provider for Entity Framework Core (to be used for testing purposes).\n- System.Security.Claims: Provides classes that implement claims-based identity.\n\n### Infrastructure.Data.MainBoundedContext.Tests\n\nThis project contains the repository unit tests.\n\n#### Dependencies\n- xUnit: as the testing framework\n\n### Infrastructure.Crosscutting\n\nThis project contains the Adapters, Localization and Validator Crosscutting definitions.\n\n#### Dependencies\n- Microsoft.NETCore.App: A set of .NET API's that are included in the default .NET Core application model. \n\n### Infrastructure.Crosscutting.NetFramework\n\nThis project contains the Adapters, Localization and Validator Crosscutting factory implementations.\n\n#### Dependencies\n- Microsoft.NETCore.App: A set of .NET API's that are included in the default .NET Core application model. \n\n### Infrastructure.Crosscutting.Tests\n\nThis project contains the crosscutting unit tests.\n\n#### Dependencies\n- xUnit: as the testing framework\n\n## Documentation\n\n- Announcing .NET Core 2.0: [https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/](https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/)\n- .NET Core 2.0 Preview 2 Release Notes: [https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview2.md](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview2.md)\n- 2.0.0 Preview 2 Known Issues: [https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview2-known-issues.md](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview2-known-issues.md)\n- .NET Core Roadmap: [https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview1-known-issues.md](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview1-known-issues.md)\n- .NET Core 2.0 Changes – Things to Know: [https://stackify.com/net-core-2-0-changes/](https://stackify.com/net-core-2-0-changes/)\n- Our brand-new ‘DDD N-Layered .NET 4.0 Architecture Guide’ book and Sample-App in CODEPLEX: [https://blogs.msdn.microsoft.com/cesardelatorre/2010/03/25/our-brand-new-ddd-n-layered-net-4-0-architecture-guide-book-and-sample-app-in-codeplex/](https://blogs.msdn.microsoft.com/cesardelatorre/2010/03/25/our-brand-new-ddd-n-layered-net-4-0-architecture-guide-book-and-sample-app-in-codeplex/)\n\n## Things to improve\n\n- .Net Core Localization.\n- Docker.\n- FrontEnd implementation with Angular.\n- More tests.\n- Store Procedures execution with ef core.\n- Versioning.\n- Security with Identity Server4.\n- Cache.\n\n## Feedback\n\nFeedback about this project is greatly appreciated.\n\n## Copyright\n\n2017 César Castro and Microsoft Corporation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcesarcastrocuba%2Fnlayerappv3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcesarcastrocuba%2Fnlayerappv3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcesarcastrocuba%2Fnlayerappv3/lists"}