DotnetBaseKit.Components.Domain.MongoDb
3.0.0
dotnet add package DotnetBaseKit.Components.Domain.MongoDb --version 3.0.0
NuGet\Install-Package DotnetBaseKit.Components.Domain.MongoDb -Version 3.0.0
<PackageReference Include="DotnetBaseKit.Components.Domain.MongoDb" Version="3.0.0" />
paket add DotnetBaseKit.Components.Domain.MongoDb --version 3.0.0
#r "nuget: DotnetBaseKit.Components.Domain.MongoDb, 3.0.0"
// Install DotnetBaseKit.Components.Domain.MongoDb as a Cake Addin
#addin nuget:?package=DotnetBaseKit.Components.Domain.MongoDb&version=3.0.0
// Install DotnetBaseKit.Components.Domain.MongoDb as a Cake Tool
#tool nuget:?package=DotnetBaseKit.Components.Domain.MongoDb&version=3.0.0
DotnetBaseKit.Components.Domain.MongoDB Documentation
This documentation provides an overview of the purpose, and usage for the DotnetBaseKit.Components.Domain.MongoDB
package.
<details open>
<summary>Table of Contents</summary>
</details>
Overview
The DotnetBaseKit.Components.Domain.MongoDB
package provides essential base classes for building .NET applications using MongoDB as a database. It includes base Dtos, base Entities, and base Repositories to expedite domain-driven development.
Usage
First, you have to install this package via Nuget or .NET CLI.
If you're using Package Manager Console:
Install-Package DotnetBaseKit.Components.Domain.MongoDb
Or if you're using the .NET CLI:
dotnet add package DotnetBaseKit.Components.Domain.MongoDb
Now, in your Program.cs
file, add the dependency for the repository interfaces:
var builder = WebApplication.CreateBuilder(args);
var configuration = builder.Configuration;
// other dependencies
builder.Services.AddMongoDb(configuration);
Or if you have a Startup.cs
file, add in your Configure Services method:
// other dependencies
services.AddMongoDb(Configuration);
If you having trouble, see the TestApi Playground Startup.cs for more details.
Now, in your appsettings.json add the MongoDB settings
"MongoSettings": {
"DatabaseName": "your-database-name",
"ConnectionString": "your-database-connection-string"
},
You are now able to use the package.
BaseDto
To create a domain-specific Dto, inherit from BaseDto and implement the Validate() method to perform custom validation for the Dto.
using DotnetBaseKit.Components.Domain.MongoDb.Dtos.Base;
public class TestDto : BaseDto
{
public string TestString { get; set; }
public override void Validate()
{
if(string.IsNullOrEmpty(TestString))
{
AddNotification("Error", "TestString is required.");
}
}
}
If you prefer (I do), you can call an Abstract Validator class on the Validate method
public class TestDtoContract : AbstractValidator<TestDto>
{
public TestDtoContract()
{
RuleFor(dto => dto.TestString)
.NotEmpty()
.WithMessage("Cannot be null or empty");
}
}
public class TestDto : BaseDto
{
public string TestString { get; set; }
public override void Validate()
{
var contract = new TestDtoContract();
var validationResult = contract.Validate(this);
AddNotifications(validationResult);
}
}
BaseEntity
To create a domain-specific Entity, inherit from BaseEntity and implement the Validate() method to perform a custom validation.
using DotnetBaseKit.Components.Domain.MongoDb.Entities.Base;
namespace TestApi.Domain.Entities
{
public class Test : BaseEntity
{
public Test(string testString)
{
TestString = testString;
}
public string TestString { get; private set; }
public override void Validate()
{
// Validation like BaseDto above
}
}
}
BaseRepository
To create domain-specific repository interfaces for MongoDB, inherit from IBaseWriteRepository<TEntity> or BaseReadRepository<TEntity> depending of your needs. Implement any specific repository methods and logic as needed.
public interface ITestApiWriteRepository : IBaseWriteRepository<Test>
{
// other methods
}
public interface ITestApiReadRepository : IBaseReadRepository<Test>
{
// other methods
}
Conclusion
The DotnetBaseKit.Components.Domain.MongoDB
package provides a set of essential base classes and interfaces to streamline the development of .NET applications that use MongoDB as a database. This package is designed to expedite domain-driven development by offering foundational components for building data transfer objects (DTOs), domain entities, and MongoDB repositories.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- DotnetBaseKit.Components.Shared (>= 3.1.0)
- FluentValidation (>= 11.5.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DotnetBaseKit.Components.Domain.MongoDb:
Package | Downloads |
---|---|
DotnetBaseKit.Components.Infra.MongoDb
Creates base configurations for MongoDB in Infra Layer |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.0.0 | 106 | 4/1/2024 |