AspNetCore-DDD
Full ASP.NET Core 10.0 LTS application with DDD, CQRS and Event Sourcing
File Explorer
Download Latest Version (.zip)- ci.yml
- container.yml
- release.yml
- sonar.yml
- dependabot.yml
- extensions.json
- launch.json
- settings.json
- tasks.json
- architecture.png
- code-flow.jpg
- custom-repo-versus-db-context.png
- dependencies.jpg
- flowchart.png
- overview.png
- project-dependencies.jpg
- deployment.yml
- service.yml
- GenerateDataBase.sql
- AutoMapperConfig.cs
- DomainToViewModelMappingProfile.cs
- ViewModelToDomainMappingProfile.cs
- CustomerHistory.cs
- CustomerHistoryData.cs
- ICustomerAppService.cs
- CustomerAppService.cs
- CustomerViewModel.cs
- DDD.Application.csproj
- 001_Create_Table_Person.sql
- 002_Drop_Table_Person.sql
- DDD.CLI.Migration.csproj
- Program.cs
- README.md
- CommandHandler.cs
- CustomerCommandHandler.cs
- CustomerCommand.cs
- RegisterNewCustomerCommand.cs
- RemoveCustomerCommand.cs
- UpdateCustomerCommand.cs
- GlobalConstant.cs
- EntityAlreadyExistsException.cs
- EntityNotFoundException.cs
- StringExtension.cs
- ThrowIf.cs
- CustomerEventHandler.cs
- CustomerRegisteredEvent.cs
- CustomerRemovedEvent.cs
- CustomerUpdatedEvent.cs
- ICustomerRepository.cs
- IRepository.cs
- ISpecification.cs
- IUnitOfWork.cs
- IUser.cs
- Customer.cs
- NotifyInactiveUserJob.cs
- CronProvider.cs
- ICronProvider.cs
- NotifyInactiveUserConsumerModel.cs
- HashingOptions.cs
- IPasswordHasher.cs
- PasswordHasher.cs
- HttpProvider.cs
- IFooClient.cs
- IHttpProvider.cs
- Response.cs
- INotificationHub.cs
- INotificationProvider.cs
- NotificationHub.cs
- NotificationItem.cs
- NotificationProvider.cs
- HubRoutes.cs
- IMailProvider.cs
- MailAddress.cs
- MailAttachment.cs
- MailMessage.cs
- MailProvider.cs
- ExcelFormat.cs
- IOfficeProvider.cs
- OfficeProvider.cs
- IWebhookProvider.cs
- WebhookProvider.cs
- .gitkeep
- BaseSpecification.cs
- CustomerFilterPaginatedSpecification.cs
- CustomerValidation.cs
- RegisterNewCustomerCommandValidation.cs
- RemoveCustomerCommandValidation.cs
- UpdateCustomerCommandValidation.cs
- DDD.Domain.csproj
- IMediatorHandler.cs
- Command.cs
- Event.cs
- IEventStore.cs
- IHandler.cs
- Message.cs
- StoredEvent.cs
- Entity.cs
- EntityAudit.cs
- ValueObject.cs
- DomainNotification.cs
- DomainNotificationHandler.cs
- DDD.Domain.Core.csproj
- DDD.Infra.CrossCutting.Bus.csproj
- InMemoryBus.cs
- ClaimRequirement.cs
- ClaimsRequirementHandler.cs
- JwtIssuerOptions.cs
- Roles.cs
- 00000000000000_CreateIdentitySchema.cs
- AuthDbContextModelSnapshot.cs
- AuthDbContext.cs
- EmailSenderExtensions.cs
- ExternalLoginViewModel.cs
- ForgotPasswordViewModel.cs
- LoginViewModel.cs
- LoginWith2faViewModel.cs
- LoginWithRecoveryCodeViewModel.cs
- RegisterViewModel.cs
- ResetPasswordViewModel.cs
- TokenViewModel.cs
- ChangePasswordViewModel.cs
- EnableAuthenticatorViewModel.cs
- ExternalLoginsViewModel.cs
- GenerateRecoveryCodesViewModel.cs
- IndexViewModel.cs
- RemoveLoginViewModel.cs
- SetPasswordViewModel.cs
- TwoFactorAuthenticationViewModel.cs
- CreateViewModel.cs
- ApplicationUser.cs
- AspNetUser.cs
- RefreshToken.cs
- AuthEmailMessageSender.cs
- AuthSMSMessageSender.cs
- IEmailSender.cs
- IJwtFactory.cs
- ISmsSender.cs
- JwtFactory.cs
- JwtToken.cs
- DDD.Infra.CrossCutting.Identity.csproj
- DDD.Infra.CrossCutting.IoC.csproj
- NativeInjectorBootStrapper.cs
- ApplicationDbContext.cs
- EventStoreSQLContext.cs
- SqlEventStore.cs
- CustomerMap.cs
- StoredEventMap.cs
- 20161213130520_Initial.cs
- EventStoreSQLContextModelSnapshot.cs
- 20161213130431_Initial.cs
- ApplicationDbContextModelSnapshot.cs
- EventStoreSQLRepository.cs
- IEventStoreRepository.cs
- CustomerRepository.cs
- Repository.cs
- SpecificationEvaluator.cs
- UnitOfWork.cs
- DDD.Infra.Data.csproj
- AddRequiredHeaderParameter.cs
- AutoMapperSetup.cs
- AccountController.cs
- CustomerController.cs
- RoleController.cs
- AccountController.cs
- ApiController.cs
- launchSettings.json
- AuthExtension.cs
- DatabaseExtension.cs
- ErrorHandlingExtension.cs
- HashingExtension.cs
- HealthCheckExtension.cs
- HttpExtension.cs
- QuartzExtensions.cs
- SignalRExtension.cs
- SwaggerExtension.cs
- appsettings.Development.json
- appsettings.json
- appsettings.Production.json
- appsettings.Staging.json
- DDD.Services.Api.csproj
- Program.cs
- include-throw-error-steps.yml
- CustomerAppServiceTests.cs
- DDD.Application.UnitTests.csproj
- WeatherForecastControllerIntegrationTests.cs.txt
- CustomWebApplicationFactory.cs
- DDD.Services.Api.IntegrationTests.csproj
- .dockerignore
- .editorconfig
- .gitattributes
- .gitignore
- api.http
- api.md
- azure-pipelines.yml
- Containerfile
- DDD.slnx
- Directory.Build.props
- Directory.Packages.props
- docker-compose.yml
- Dockerfile
- global.json
- LICENSE
- nuget.config
- omnisharp.json
- README.md
- stylecop.json
- StyleCop.ruleset
# Installation Guide
git clone https://github.com/ntxinh/AspNetCore-DDD
Downloads the entire project code from GitHub to your computer.
cd AspNetCore-DDD
Moves into the project folder you just downloaded.
2. Docker
Easy Recommended- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -t aspnetcore-docker-image .
Builds a runnable image based on the Dockerfile.
docker run -it --rm -p 3000:80 --name aspnetcore-docker-container aspnetcore-docker-image
Runs the built image as an actual container.
docker run -d -p 3000:80 --name aspnetcore-docker-container aspnetcore-docker-image
Runs the built image as an actual container.
docker compose up -d
Builds and starts all defined containers (server, database, etc.) at once, in the background.
docker compose ps
Runs the command against the services defined in the compose file.
Pulled directly from this repo's README.
3. .NET
Mediumdotnet build Src/DDD.Services.Api/DDD.Services.Api.csproj
Type this command into your terminal and run it.
dotnet run --project Src/DDD.Services.Api/DDD.Services.Api.csproj --launch-profile Dev
Builds the project and runs it immediately.
dotnet watch --project Src/DDD.Services.Api/DDD.Services.Api.csproj run
Type this command into your terminal and run it.
Pulled directly from this repo's README.
