BridgingIT.DevKit.Common.Abstractions 9.0.1-preview.0.300

This is a prerelease version of BridgingIT.DevKit.Common.Abstractions.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package BridgingIT.DevKit.Common.Abstractions --version 9.0.1-preview.0.300
                    
NuGet\Install-Package BridgingIT.DevKit.Common.Abstractions -Version 9.0.1-preview.0.300
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BridgingIT.DevKit.Common.Abstractions" Version="9.0.1-preview.0.300" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BridgingIT.DevKit.Common.Abstractions" Version="9.0.1-preview.0.300" />
                    
Directory.Packages.props
<PackageReference Include="BridgingIT.DevKit.Common.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BridgingIT.DevKit.Common.Abstractions --version 9.0.1-preview.0.300
                    
#r "nuget: BridgingIT.DevKit.Common.Abstractions, 9.0.1-preview.0.300"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.1-preview.0.300&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Addin
#tool nuget:?package=BridgingIT.DevKit.Common.Abstractions&version=9.0.1-preview.0.300&prerelease
                    
Install BridgingIT.DevKit.Common.Abstractions as a Cake Tool

bITDevKit

Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles.

Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

This repository includes the complete source code for the bITDevKit, along with a variety of sample applications located in the ./examples folder within the solution. These samples serve as practical demonstrations of how to leverage the capabilities of the bITDevKit in real-world scenarios. All components are available as nuget packages.

For the latest updates and release notes, please refer to the RELEASES.

Join us in advancing the world of software development with the bITDevKit!


Result.cs Overview

The Result class encapsulates the outcome of an operation, promoting an expressive and error-tolerant way to handle success and failure states.

The Result class is a central component designed to encapsulate the outcome of an operation, providing a way to represent both successful and failed operations. This class promotes a more expressive and error-tolerant approach to handling operation results, encouraging the explicit declaration of success or failure states.

Returning a Result

To return a Result from a method, you typically define the method to return Result or Result<T>, where T is the type of the value returned in case of success. Here is an example method returning a Result:

public Result PerformOperation()
{
    // Your logic here
    
    if (success)
    {
        return Result.Success();
    }
    else
    {
        return Result.Failure(new Error("Operation Failed"));
    }
}

Handling a Result

When you receive a Result from a method, you can handle it by checking its success or failure state. Here's an example:

var result = PerformOperation();

if (result.IsSuccess)
{
    // Handle success
}
else
{
    // Handle failure
    var error = result.Error;
    Console.WriteLine(error.Message);
}

Using Typed Results

Sometimes, you may want to return a result with a value. This is where Result<T> comes in handy:

public Result<int> CalculateSum(int a, int b)
{
    if (a < 0 || b < 0)
    {
        return Result.Failure<int>(new Error("Inputs must be non-negative"));
    }

    return Result.Success(a + b);
}

Handling a Result<T> involves extracting the value if the operation was successful:

var result = CalculateSum(5, 10);

if (result.IsSuccess)
{
    int sum = result.Value;
    Console.WriteLine($"Sum: {sum}");
}
else
{
    Console.WriteLine(result.Error.Message);
}

Typed Errors

Typed errors provide a more specific and structured way to handle different error scenarios. For example, the EntityNotFoundResultError class can be used to represent an error where an entity is not found:

EntityNotFoundResultError.cs:
public class EntityNotFoundResultError : Error
{
    public EntityNotFoundResultError(string entityName, object key)
        : base($"Entity '{entityName}' with key '{key}' was not found.")
    {
    }
}

You can return this typed error as follows:

public Result GetEntity(int id)
{
    var entity = repository.FindById(id);

    if (entity == null)
    {
        return Result.Failure(new EntityNotFoundResultError("EntityName", id));
    }

    return Result.Success(entity);
}

When handling the result, you can check if the error is of a specific type:

var result = GetEntity(1);

if (result.IsSuccess)
{
    // Handle success
}
else if (result.Error is EntityNotFoundResultError)
{
    var error = (EntityNotFoundResultError)result.Error;
    Console.WriteLine(error.Message);
}
else
{
    // Handle other errors
}

Other available typed errors are:

By using typed errors, you can create more expressive and manageable error handling in your application.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (14)

Showing the top 5 NuGet packages that depend on BridgingIT.DevKit.Common.Abstractions:

Package Downloads
BridgingIT.DevKit.Common.Serialization

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Common.Utilities

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Domain

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Application.Storage

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

BridgingIT.DevKit.Application.Messaging

BridgingIT DevKit: Empowering developers with modular components for modern application development, centered around Domain-Driven Design principles. Our goal is to empower developers by offering modular components that can be easily integrated into your projects. Whether you're working with repositories, commands, queries, or other components, the bITDevKit provides flexible solutions that can adapt to your specific needs.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.0.1-preview.0.335 9 a day ago
9.0.1-preview.0.333 12 a day ago
9.0.1-preview.0.332 32 2 days ago
9.0.1-preview.0.331 31 2 days ago
9.0.1-preview.0.329 30 4 days ago
9.0.1-preview.0.326 42 4 days ago
9.0.1-preview.0.324 31 4 days ago
9.0.1-preview.0.323 36 4 days ago
9.0.1-preview.0.321 60 4 days ago
9.0.1-preview.0.319 42 4 days ago
9.0.1-preview.0.318 50 4 days ago
9.0.1-preview.0.317 58 4 days ago
9.0.1-preview.0.316 63 4 days ago
9.0.1-preview.0.315 83 4 days ago
9.0.1-preview.0.314 65 4 days ago
9.0.1-preview.0.312 71 4 days ago
9.0.1-preview.0.309 109 6 days ago
9.0.1-preview.0.302 110 13 days ago
9.0.1-preview.0.301 142 13 days ago
9.0.1-preview.0.300 109 13 days ago
9.0.1-preview.0.299 116 13 days ago
9.0.1-preview.0.297 111 13 days ago
9.0.1-preview.0.295 103 13 days ago
9.0.1-preview.0.294 114 13 days ago
9.0.1-preview.0.293 107 13 days ago
9.0.1-preview.0.290 116 15 days ago
9.0.1-preview.0.287 125 15 days ago
9.0.1-preview.0.286 210 19 days ago
9.0.1-preview.0.285 199 21 days ago
9.0.1-preview.0.279 193 21 days ago
9.0.1-preview.0.278 204 21 days ago
9.0.1-preview.0.277 198 21 days ago
9.0.1-preview.0.276 256 21 days ago
9.0.1-preview.0.274 114 15 days ago
9.0.1-preview.0.272 103 23 days ago
9.0.1-preview.0.271 102 23 days ago
9.0.1-preview.0.270 82 25 days ago
9.0.1-preview.0.267 109 a month ago
9.0.1-preview.0.266 110 a month ago
9.0.1-preview.0.265 113 a month ago
9.0.1-preview.0.264 163 a month ago
9.0.1-preview.0.263 109 a month ago
9.0.1-preview.0.262 113 a month ago
9.0.1-preview.0.261 119 a month ago
9.0.1-preview.0.258 469 a month ago
9.0.1-preview.0.255 81 25 days ago
9.0.1-preview.0.254 117 a month ago
9.0.1-preview.0.253 110 a month ago
9.0.1-preview.0.252 113 a month ago
9.0.1-preview.0.251 110 a month ago
9.0.1-preview.0.250 120 a month ago
9.0.1-preview.0.247 129 a month ago
9.0.1-preview.0.246 109 a month ago
9.0.1-preview.0.244 146 2 months ago
9.0.1-preview.0.243 220 2 months ago
9.0.1-preview.0.242 152 2 months ago
9.0.1-preview.0.241 149 2 months ago
9.0.1-preview.0.239 150 2 months ago
9.0.1-preview.0.238 247 2 months ago
9.0.1-preview.0.237 205 2 months ago
9.0.1-preview.0.236 142 2 months ago
9.0.1-preview.0.235 125 2 months ago
9.0.1-preview.0.234 137 2 months ago
9.0.1-preview.0.233 157 2 months ago
9.0.1-preview.0.232 123 2 months ago
9.0.1-preview.0.231 119 2 months ago
9.0.1-preview.0.230 177 2 months ago
9.0.1-preview.0.229 136 2 months ago
9.0.1-preview.0.228 141 2 months ago
9.0.1-preview.0.227 131 2 months ago
9.0.1-preview.0.226 127 2 months ago
9.0.1-preview.0.220 161 2 months ago
9.0.1-preview.0.219 116 2 months ago
9.0.1-preview.0.218 115 2 months ago
9.0.1-preview.0.217 175 2 months ago
9.0.1-preview.0.215 139 2 months ago
9.0.1-preview.0.214 121 2 months ago
9.0.1-preview.0.213 138 2 months ago
9.0.1-preview.0.212 143 2 months ago
9.0.1-preview.0.211 118 2 months ago
9.0.1-preview.0.210 123 2 months ago
9.0.1-preview.0.209 135 2 months ago
9.0.1-preview.0.208 139 2 months ago
9.0.1-preview.0.206 124 2 months ago
9.0.1-preview.0.205 129 2 months ago
9.0.1-preview.0.204 128 2 months ago
9.0.1-preview.0.202 119 2 months ago
9.0.1-preview.0.199 59 2 months ago
9.0.1-preview.0.198 98 2 months ago
9.0.1-preview.0.196 101 2 months ago
9.0.1-preview.0.193 95 2 months ago
9.0.1-preview.0.189 122 2 months ago
9.0.1-preview.0.188 451 2 months ago
9.0.1-preview.0.187 461 2 months ago
9.0.1-preview.0.186 449 2 months ago
9.0.1-preview.0.185 449 2 months ago
9.0.1-preview.0.184 449 2 months ago
9.0.1-preview.0.183 446 2 months ago
9.0.1-preview.0.182 59 2 months ago
9.0.1-preview.0.180 109 2 months ago
9.0.1-preview.0.179 117 2 months ago
9.0.1-preview.0.178 114 2 months ago
9.0.1-preview.0.175 116 2 months ago
9.0.1-preview.0.174 116 2 months ago
9.0.1-preview.0.173 130 2 months ago
9.0.1-preview.0.172 277 2 months ago
9.0.1-preview.0.171 115 3 months ago
9.0.1-preview.0.170 115 3 months ago
9.0.1-preview.0.165 112 3 months ago
9.0.1-preview.0.162 118 3 months ago
9.0.1-preview.0.160 115 3 months ago
9.0.1-preview.0.152 97 3 months ago
9.0.1-preview.0.148 133 3 months ago
9.0.1-preview.0.147 119 3 months ago
9.0.1-preview.0.146 116 3 months ago
9.0.1-preview.0.145 124 3 months ago
9.0.1-preview.0.141 125 3 months ago
9.0.1-preview.0.140 163 3 months ago
9.0.1-preview.0.139 122 3 months ago
9.0.1-preview.0.138 134 3 months ago
9.0.1-preview.0.137 116 3 months ago
9.0.1-preview.0.135 130 3 months ago
9.0.1-preview.0.134 169 3 months ago
9.0.1-preview.0.133 165 3 months ago
9.0.1-preview.0.132 162 3 months ago
9.0.1-preview.0.130 161 3 months ago
9.0.1-preview.0.129 214 3 months ago
9.0.1-preview.0.128 166 3 months ago
9.0.1-preview.0.127 170 3 months ago
9.0.1-preview.0.125 179 3 months ago
9.0.1-preview.0.119 76 3 months ago
9.0.1-preview.0.118 59 3 months ago
9.0.1-preview.0.116 65 3 months ago
9.0.1-preview.0.112 55 3 months ago
9.0.1-preview.0.111 60 3 months ago
9.0.1-preview.0.110 112 3 months ago
9.0.1-preview.0.107 63 3 months ago
9.0.1-preview.0.106 64 3 months ago
9.0.1-preview.0.105 65 3 months ago
9.0.1-preview.0.104 70 3 months ago
9.0.1-preview.0.103 88 3 months ago
9.0.1-preview.0.102 84 3 months ago
9.0.1-preview.0.100 55 3 months ago
9.0.1-preview.0.99 96 3 months ago
9.0.1-preview.0.97 66 3 months ago
9.0.1-preview.0.96 57 3 months ago
9.0.1-preview.0.94 61 3 months ago
9.0.1-preview.0.93 86 3 months ago
9.0.1-preview.0.92 61 3 months ago
9.0.1-preview.0.91 54 3 months ago
9.0.1-preview.0.88 55 3 months ago
9.0.1-preview.0.87 241 4 months ago
9.0.1-preview.0.85 261 4 months ago
9.0.1-preview.0.84 201 4 months ago
9.0.1-preview.0.82 160 4 months ago
9.0.1-preview.0.79 170 4 months ago
9.0.1-preview.0.78 188 4 months ago
9.0.1-preview.0.77 160 4 months ago
9.0.1-preview.0.76 203 4 months ago
9.0.1-preview.0.73 194 4 months ago
9.0.1-preview.0.71 134 4 months ago
9.0.1-preview.0.70 184 4 months ago
9.0.1-preview.0.69 172 4 months ago
9.0.1-preview.0.67 183 4 months ago
9.0.1-preview.0.62 165 4 months ago
9.0.1-preview.0.58 76 4 months ago
9.0.1-preview.0.56 63 4 months ago
9.0.1-preview.0.55 53 4 months ago
9.0.1-preview.0.54 57 4 months ago
9.0.1-preview.0.53 52 4 months ago
9.0.1-preview.0.52 55 4 months ago
9.0.1-preview.0.50 70 4 months ago
9.0.1-preview.0.49 90 4 months ago
9.0.1-preview.0.47 56 4 months ago
9.0.1-preview.0.45 58 4 months ago
9.0.1-preview.0.43 63 4 months ago
9.0.1-preview.0.42 59 4 months ago
9.0.1-preview.0.41 62 4 months ago
9.0.1-preview.0.35 61 4 months ago
9.0.1-preview.0.20 58 4 months ago
9.0.1-preview.0.19 54 4 months ago
9.0.1-preview.0.18 56 4 months ago
9.0.1-preview.0.14 57 4 months ago
9.0.1-preview.0.13 63 4 months ago
9.0.1-preview.0.11 51 4 months ago
9.0.1-preview.0.10 52 4 months ago
9.0.1-preview.0.9 56 4 months ago
9.0.1-preview.0.2 111 4 months ago
3.0.5-preview.0.2 120 2 months ago
3.0.5-preview.0.1 77 4 months ago
3.0.4 484 4 months ago
3.0.4-preview.0.38 66 4 months ago
3.0.4-preview.0.37 101 6 months ago
3.0.4-preview.0.36 192 6 months ago
3.0.4-preview.0.34 66 6 months ago
3.0.4-preview.0.32 67 6 months ago
3.0.4-preview.0.31 85 6 months ago
3.0.4-preview.0.30 64 6 months ago
3.0.4-preview.0.29 55 6 months ago
3.0.4-preview.0.28 116 6 months ago
3.0.4-preview.0.27 56 6 months ago
3.0.4-preview.0.23 59 6 months ago
3.0.4-preview.0.21 52 6 months ago
3.0.4-preview.0.20 55 7 months ago
3.0.4-preview.0.19 67 7 months ago
3.0.4-preview.0.18 52 7 months ago
3.0.4-preview.0.17 55 7 months ago
3.0.4-preview.0.16 56 7 months ago
3.0.4-preview.0.15 55 7 months ago
3.0.4-preview.0.14 72 7 months ago
3.0.4-preview.0.13 65 7 months ago
3.0.4-preview.0.12 61 7 months ago
3.0.4-preview.0.8 66 7 months ago
3.0.4-preview.0.7 64 7 months ago
3.0.4-preview.0.6 56 7 months ago
3.0.4-preview.0.5 66 7 months ago
3.0.4-preview.0.4 55 7 months ago
3.0.4-preview.0.3 58 7 months ago
3.0.4-preview.0.2 63 7 months ago
3.0.4-preview.0.1 200 8 months ago
3.0.3 385 8 months ago
3.0.3-preview.0.56 73 8 months ago
3.0.3-preview.0.55 68 8 months ago
3.0.3-preview.0.54 70 8 months ago
3.0.3-preview.0.50 66 8 months ago
3.0.3-preview.0.49 82 8 months ago
3.0.3-preview.0.44 89 8 months ago
3.0.3-preview.0.43 63 8 months ago
3.0.3-preview.0.42 64 8 months ago
3.0.3-preview.0.41 67 8 months ago
3.0.3-preview.0.40 95 8 months ago
3.0.3-preview.0.39 69 8 months ago
3.0.3-preview.0.38 65 8 months ago
3.0.3-preview.0.36 69 8 months ago
3.0.3-preview.0.35 80 8 months ago
3.0.3-preview.0.34 76 8 months ago
3.0.3-preview.0.33 63 8 months ago
3.0.3-preview.0.32 93 8 months ago
3.0.3-preview.0.31 737 9 months ago
3.0.3-preview.0.30 62 9 months ago
3.0.3-preview.0.29 61 9 months ago
3.0.3-preview.0.28 51 9 months ago
3.0.3-preview.0.27 72 9 months ago
3.0.3-preview.0.26 72 9 months ago
3.0.3-preview.0.25 61 9 months ago
3.0.3-preview.0.24 72 9 months ago
3.0.3-preview.0.23 85 9 months ago
3.0.3-preview.0.22 52 7/29/2024
3.0.3-preview.0.21 72 7/25/2024
3.0.3-preview.0.18 75 7/12/2024
3.0.3-preview.0.17 65 7/12/2024
3.0.3-preview.0.16 56 7/12/2024
3.0.3-preview.0.15 63 7/5/2024
3.0.3-preview.0.14 126 6/24/2024
3.0.3-preview.0.13 89 6/23/2024
3.0.3-preview.0.12 79 6/21/2024
3.0.3-preview.0.11 78 6/20/2024
3.0.3-preview.0.9 360 5/27/2024
3.0.3-preview.0.8 74 5/27/2024
3.0.3-preview.0.7 100 5/17/2024
3.0.3-preview.0.6 76 5/14/2024
3.0.3-preview.0.5 295 5/8/2024
3.0.3-preview.0.3 99 5/6/2024
3.0.3-preview.0.1 82 4/25/2024
3.0.2 1,318 4/25/2024
3.0.2-preview.0.4 95 4/25/2024
3.0.2-preview.0.3 148 4/25/2024
3.0.2-preview.0.2 99 4/25/2024
3.0.2-preview.0.1 76 4/25/2024
3.0.1 436 4/25/2024
3.0.1-preview.0.10 80 4/24/2024
3.0.1-preview.0.9 186 4/19/2024
3.0.1-preview.0.8 69 4/24/2024
3.0.1-preview.0.7 135 4/24/2024

## Release 3.0.1 [25.04.24]

- [N] Initial release

-----

- [N] New
- [M] Modified
- [B] Breaking