DDD-starter-dotnet
Sample implementation and comparison of various approaches to building DDD applications. Useful as a baseline to quickly start a DDD dot net project.
File Explorer
Download Latest Version (.zip)- cast-imaging-analyzer.yml
- generate-p3-docs.yaml
- ca.crt
- es01.crt
- es01.pem
- es02.crt
- es02.pem
- es03.crt
- es03.pem
- kibana01.crt
- kibana01.pem
- CertsTargets.cs
- DockerComposeTargets.cs
- infrastructure-compose.development.yml
- infrastructure-compose.yml
- DotNetTargets.cs
- EntityFrameworkTargets.cs
- create_elastic_users.sh
- ElasticSettings.cs
- ElasticTargets.cs
- EnumerationExtensions.cs
- PostgresSettings.cs
- PostgresTasks.cs
- AssemblyInfo.cs
- Build.cs
- Build.Parameters.cs
- Build.Targets.cs
- Environment.cs
- Nuke.csproj
- Nuke.csproj.DotSettings
- Paths.cs
- Settings.cs
- settings.development.json
- settings.json
- AssemblyInfo.cs
- DockerComposeDownSettings.cs
- DockerComposeLogsSettings.cs
- DockerComposeSettings.cs
- DockerComposeSettingsExtensions.cs
- DockerComposeTasks.cs
- DockerComposeUpSettings.cs
- DockerComposeUpSettingsExtensions.cs
- Nuke.DockerCompose.csproj
- CompaniesController.cs
- NamespaceInfo.cs
- CompaniesAddressController.cs
- CompaniesController.cs
- CompaniesGroupsController.cs
- CompaniesTagsController.cs
- NamespaceInfo.cs
- Address.cs
- Company.cs
- CompanyGroup.cs
- CompanyTag.cs
- Phone.cs
- 20220831085231_Initial.cs
- 20220831085231_Initial.Designer.cs
- ContactsDbContextModelSnapshot.cs
- ContactsDbContext.cs
- NamespaceInfo.cs
- GroupsController.cs
- NamespaceInfo.cs
- GroupsController.cs
- GroupsTagsController.cs
- NamespaceInfo.cs
- Group.cs
- GroupTag.cs
- NamespaceInfo.cs
- TagsController.cs
- NamespaceInfo.cs
- TagsController.cs
- Tag.cs
- Contacts.csproj
- ContactsCrudOperations.cs
- ContactsEfDao.cs
- ContactsModuleInfo.cs
- Contacts.cs
- Sales.cs
- ConventionBasedRegistrations.cs
- CrossCuttingConcerns.cs
- Kafka.cs
- FakeMessageConsumer.cs
- MainECommerceDb.cs
- launchSettings.json
- app.config
- appsettings.Development.json
- appsettings.json
- Monolith.Startup.csproj
- Program.cs
- Payments.Adapters.Api.csproj
- PaymentsAdaptersApiLayerInfo.cs
- Payments.Adapters.Out.csproj
- PaymentsAdaptersOutLayerInfo.cs
- Payments.DeepModel.csproj
- PaymentsDeepModelLayerInfo.cs
- PaymentRequestFulfilled.cs
- RequestPayment.cs
- RequestPaymentHandler.cs
- PaymentProcess.cs
- Payments.ProcessModel.csproj
- PaymentsProcessModelLayerInfo.cs
- PaymentModelInfo.json
- ProductsDelivery.Adapters.Api.csproj
- ProductsDeliveryAdaptersApiLayerInfo.cs
- ProductsDelivery.Adapters.Out.csproj
- ProductsDeliveryProcessModelLayerInfo.cs
- ProductsDelivery.DeepModel.csproj
- ProductsDeliveryDeepModelLayerInfo.cs
- RequestDelivery.cs
- RequestDeliveryHandler.cs
- ProductsDelivery.ProcessModel.csproj
- ProductsDeliveryProcess.cs
- ProductsDeliveryProcessModelLayerInfo.cs
- ProductsDeliveryModelInfo.json
- RiskManagement.Adapters.Api.csproj
- RiskManagementAdaptersApiLayerInfo.cs
- RiskManagement.Adapters.Out.csproj
- RiskManagementAdaptersOutLayerInfo.cs
- RiskManagement.DeepModel.csproj
- RiskManagementDeepModelLayerInfo.cs
- RiskScoreCalculationProcess.cs
- GetRiskScore.cs
- GetRiskScoreHandler.cs
- RiskScorePublicationProcess.cs
- GetMaxAmount.cs
- RiskManagement.ProcessModel.csproj
- RiskManagementProcess.cs
- RiskManagementProcessModelLayerInfo.cs
- RiskManagementModelInfo.json
- ClientSqlRepository.cs
- DbOrder.cs
- 20221229083720_Initial.cs
- 20221229083720_Initial.Designer.cs
- SalesDbContextModelSnapshot.cs
- DbOrder.cs
- SalesDbContext.cs
- DbOrder.cs
- DbOrderItem.cs
- ForexViaHttp.cs
- PaymentsInMemoryCalls.cs
- RiskManagementInMemoryCalls.cs
- FakeOrderEventOutbox.cs
- InPLaceOrderEventsOutbox.cs
- KafkaOrderEventsOutbox.cs
- OrderDetailsSqlRepository.cs
- OrderSqlRepository.cs
- OrderSqlRepository.Document.cs
- OrderSqlRepository.EF.cs
- OrderSqlRepository.EventsSourcing.cs
- OrderSqlRepository.EventsSourcing.Data.cs
- OrderSqlRepository.Raw.cs
- OrderSqlRepository.Raw.Data.cs
- DiscountsSqlRepository.cs
- PriceListSqlRepository.cs
- SystemClock.cs
- FakeMessageBroker.cs
- Sales.Adapters.csproj
- SalesAdaptersLayerInfo.cs
- SalesCrudEfDao.cs
- ClientId.cs
- ClientRepository.cs
- ClientStatus.cs
- Currency.cs
- Money.cs
- Percentage.cs
- TaxId.cs
- ExchangeRate.cs
- ExchangeRateProvider.cs
- RiskManagementIntegration.cs
- AllowAnyPriceChanges.cs
- AllowPriceChangesIfTotalPriceIsLower.cs
- PriceChangesPolicies.cs
- PriceChangesPolicy.cs
- AllOrderDetails.cs
- InvoicingDetails.cs
- Order.cs
- Order.Data.cs
- Order.Events.cs
- Order.Factory.cs
- Order.Item.cs
- Order.md
- Order.PriceAgreement.cs
- Order.Repository.cs
- OrderHeader.cs
- OrderId.cs
- OrderItemDetails.cs
- OrderNote.cs
- PriceAgreementType.cs
- ClientLevelDiscounts.cs
- Discount.cs
- DiscountsRepository.cs
- PercentageDiscount.cs
- ProductDiscount.cs
- ProductLevelDiscounts.cs
- ValueDiscount.cs
- BasePrice.cs
- BasePrices.cs
- PriceListRepository.cs
- EverySecondBoxForHalfPrice.cs
- SpecialOffer.cs
- ThreeForTwo.cs
- CalculatePrices.cs
- IndividualSalesConditions.cs
- Offer.cs
- OfferModifier.cs
- OfferModifiers.cs
- OfferRequest.cs
- PriceModifier.cs
- Quote.cs
- QuoteModifier.cs
- README.md
- Amount.cs
- AmountUnit.cs
- ProductAmount.cs
- ProductId.cs
- ProductUnit.cs
- SalesChannel.cs
- Clock.cs
- Sales.DeepModel.csproj
- SalesDeepModelLayerInfo.cs
- MoneyTests.cs
- Sales.DeepModel.Tests.csproj
- launchSettings.json
- AddOrderTables.cs
- appsettings.Development.json
- Program.cs
- Sales.FluentMigrations.csproj
- FakePriceChangesPolicy.cs
- OrderSqlRepositoryTests.cs
- Sales.IntegrationTests.csproj
- FulfillmentProcess.cs
- OrderPlacedHandler.cs
- RequestOrderAcceptance.cs
- PaymentRequestFulfilled.cs
- PaymentsModule.cs
- ProductsDeliveryModule.cs
- CartItemDto.cs
- CartPriced.cs
- DtoMapping.cs
- OnlineOrderingProcess.cs
- OrderDetails.cs
- OrderDetailsFinder.cs
- OrderPlaced.cs
- PlaceOrder.cs
- PlaceOrderHandler.cs
- PriceCart.cs
- PriceCartHandler.cs
- QuoteDto.cs
- AddedToOrder.cs
- AddToOrder.cs
- AddToOrderHandler.cs
- ConfirmOffer.cs
- ConfirmOfferHandler.cs
- CreateOrder.cs
- CreateOrderHandler.cs
- DtoMapping.cs
- GetOffer.cs
- GetOfferHandler.cs
- GetQuickQuote.cs
- GetQuickQuoteHandler.cs
- OfferCalculated.cs
- OfferConfirmed.cs
- OrderCreated.cs
- OrderDetailsFinder.cs
- OrderPlaced.cs
- PlaceOrder.cs
- PlaceOrderHandler.cs
- QuickQuoteCalculated.cs
- QuoteDto.cs
- WholesaleOrderingProcess.cs
- Actors.cs
- OrderEvent.cs
- OrderEventsOutbox.cs
- SaleProcess.cs
- Sales.ProcessModel.csproj
- SalesCrudOperations.cs
- SalesProcessModelLayerInfo.cs
- Sales.ProcessModel.Tests.csproj
- OffersController.cs
- OrdersController.cs
- OrdersConfirmedOfferController.cs
- OrdersController.cs
- OrdersCurrentOfferController.cs
- OrdersHeaderController.cs
- OrdersHeaderNotesController.cs
- OrdersItemsController.cs
- OrdersPlacementController.cs
- QuotesController.cs
- Sales.RestApi.csproj
- SalesRestApiLayerInfo.cs
- SalesDomainModelInfo.json
- SearchProductsApi.cs
- Search.Api.csproj
- SearchApiLayerInfo.cs
- ProductElasticRepository.cs
- ProductRepository.cs
- Search.Infrastructure.csproj
- SearchDb.cs
- SearchInfrastructureLayerInfo.cs
- SearchModelInfo.json
- launchSettings.json
- appsettings.Development.json
- appsettings.json
- Program.cs
- Search.Startup.csproj
- ValueObject.cs
- ValueObjectExtensions.cs
- ValueObjectMeta.cs
- AssemblyInfo.cs
- CorruptedDataError.cs
- DataEquals.cs
- DesignError.cs
- DomainError.cs
- EnumExtensions.cs
- EqualsExtensions.cs
- HashCodeExtensions.cs
- InfrastructureError.cs
- PermanentInfrastructureError.cs
- TechnicalStuff.csproj
- TemporaryInfrastructureError.cs
- ApiVersionDocumentOptions.cs
- EndpointVersioningProcessor.cs
- VersioningServiceCollectionExtensions.cs
- AssemblyInfo.cs
- TechnicalStuff.Api.csproj
- Created.cs
- CrudResult.cs
- Deleted.cs
- Updated.cs
- CrudOperations.cs
- DeletePolicy.cs
- QueryableExtensions.cs
- QueryConfig.cs
- AssemblyInfo.cs
- CrudEntity.cs
- CrudEntityNotFound.cs
- TechnicalStuff.Crud.csproj
- AssemblyInfo.cs
- CrudControllerExtensions.cs
- TechnicalStuff.Crud.Api.csproj
- AssemblyInfo.cs
- EfCrudDao.cs
- TechnicalStuff.Crud.Ef.csproj
- ValueObjectConverter.cs
- AssemblyInfo.cs
- TechnicalStuff.Ef.csproj
- DecimalValueObjectJsonConverter.cs
- GuidValueObjectJsonConverter.cs
- LongValueObjectJsonConverter.cs
- StringValueObjectJsonConverter.cs
- ValueObjectJsonConverterFactory.cs
- AssemblyInfo.cs
- TechnicalStuff.Json.csproj
- AssemblyInfo.cs
- KafkaMessage.cs
- KafkaMessageProducer.cs
- KafkaProducerResult.cs
- TechnicalStuff.Kafka.csproj
- AssemblyInfo.cs
- LightweightSessionFactory.cs
- TechnicalStuff.Marten.csproj
- AssemblyInfo.cs
- BatchProcessingResult.cs
- InPlaceOutboxMessageProcessor.cs
- InPlaceTransactionalOutbox.cs
- MessageProcessingResult.cs
- NonTransactionalMessageSendingDecorator.cs
- NonTransactionalOutbox.cs
- NonTransactionalOutboxes.cs
- OutboxMessage.cs
- OutboxMessageProcessor.cs
- OutboxMessageProcessors.cs
- TechnicalStuff.Outbox.csproj
- TransactionalMessageSendingDecorator.cs
- TransactionalOutbox.cs
- TransactionalOutboxes.cs
- TransactionalOutboxProcessor.cs
- TransactionalOutboxRepository.cs
- AssemblyInfo.cs
- KafkaOutboxMessageProcessor.cs
- NonTransactionalKafkaOutbox.cs
- OutboxMessageProcessors.cs
- TechnicalStuff.Outbox.Kafka.csproj
- TransactionalKafkaOutbox.cs
- AssemblyInfo.cs
- Batch.cs
- PostgresOutboxProcessor.cs
- PostgresOutboxProcessorSettings.cs
- PostgresOutboxRepository.cs
- TechnicalStuff.Outbox.Postgres.csproj
- AssemblyInfo.cs
- OutboxBackgroundServiceSettings.cs
- OutboxJob.cs
- TechnicalStuff.Outbox.Quartz.csproj
- AssemblyInfo.cs
- DbConnectionProvider.cs
- DbTransactionProvider.cs
- MainDb.cs
- OptimisticLockException.cs
- TechnicalStuff.Persistence.csproj
- TrackedSet.cs
- AssemblyInfo.cs
- DbRootEntity.cs
- RootEntityData.cs
- TechnicalStuff.Persistence.RepoDb.csproj
- AssemblyInfo.cs
- PostgresConnectionProvider.cs
- PostgresTransactionProvider.cs
- TechnicalStuff.Postgres.csproj
- AssemblyInfo.cs
- Command.cs
- CommandHandler.cs
- DomainEvent.cs
- DomainEventHandler.cs
- Message.cs
- MessageHandler.cs
- MessageTypes.cs
- Query.cs
- QueryHandler.cs
- TechnicalStuff.ProcessModel.csproj
- AmbientTransactionDecorator.cs
- AssemblyInfo.cs
- ExplicitTransactionDecorator.cs
- TechnicalStuff.Transactions.csproj
- DomainVisionStatement.md
- .gitignore
- build.cmd
- build.ps1
- build.sh
- LICENSE
- MyCompany.Crm.sln.DotSettings
- MyCompany.ECommerce.sln
- MyCompany.ECommerce.sln.DotSettings
- Projects-and-Namespaces.md
- README.md
# Installation Guide
1. Get the code
git clone https://github.com/itlibrium/DDD-starter-dotnet
Downloads the entire project code from GitHub to your computer.
cd DDD-starter-dotnet
Moves into the project folder you just downloaded.
2. .NET
Medium RecommendedPrerequisites
cd Build/Nuke.DockerCompose
This project's files live in a subfolder, so move into it first.
dotnet restore
Downloads the packages the project depends on.
dotnet run
Builds the project and runs it immediately.
After dotnet run, check the message or address shown in the terminal.
// repository documentation
Was this content helpful?
(0 ratings)
