ModularSystem.Core 1.14.7

There is a newer version of this package available.
See the version list below for details.
dotnet add package ModularSystem.Core --version 1.14.7
NuGet\Install-Package ModularSystem.Core -Version 1.14.7
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="ModularSystem.Core" Version="1.14.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ModularSystem.Core --version 1.14.7
#r "nuget: ModularSystem.Core, 1.14.7"
#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.
// Install ModularSystem.Core as a Cake Addin
#addin nuget:?package=ModularSystem.Core&version=1.14.7

// Install ModularSystem.Core as a Cake Tool
#tool nuget:?package=ModularSystem.Core&version=1.14.7

ModularSystem Core (under development)

Build a solid basic CRUD within minutes

A library that takes care of the basic and boring stuff about creating web servers. The Modular System seeks to create a simple and modular way to automate the repetitive aspects of creating a regular web application.

Overview

This library is a group of usefull classes for daily delevopment, the goal is to always use the same code abstraction of a concept or idea, that way two diferent servers can communicate without using much, or any, specific adaptation layer. The interface exposed by one server can be parsed and understood without the need to map, type and adapt the data from the output, and that is only possible to do having a stable API model to use, that is what ModularSystem does. The 'Modular' comes from the idea to create specific modules to add functionalities to the application based on this stable interface model; the core library has some modules to add aditional features and code resusability. N|Solid

CRUD

  • Create and insert into database a new instance of a class
  • Get one document by ID or or many by search with filters
  • Update one document or many with one or multiple updates
  • Delete one document by ID

Generic Typing

The entity interface works with a generic type T where T inherts from a base class, that way the library can apply the dynamic CRUD to any class. Some methods are required to be implemented or overriten, that is where the application specific logic can be wired, such as validation and presentation.

Entity Interface

The entity interface is the CRUD foundation, it contains references to all the other interfaces and it wires everything together to create the methods exposed by the entity.

  • To start you need to create the data structure that will be the entity model. It is important that this model inherts from the QueryableBase class.

Example:

using ModularSystem.Core;

public class User : QueryableBase
{
    public string Email { get; set; }
    public string Password { get; set; }
}

The QueryableBase adds an Id interface to be used by the rest of the library, so don't forget to do that.

  • A presented type for this model is also required, this presented type is what the library will use as external input and output representation of the entity.

Example:

//...
public class PresentedUser 
{
    public string Email { get; set; }
}

Now you are all set to create the entity for this model.

  • The entity class must implement the IAppEntity<Data, PresentedData> interface

Example:

using ModularSystem.Core;

public class UserEntity : IAppEntity<User, PresentedUser>
{
    // ...
}

But it is a lot easier to inhert from the AppEntity<Data, PresentedData> class, this way it is not required to implement all the methods from the interface because most of them are already implemented.

using ModularSystem.Core;

public class UserEntity : AppEntity<User, PresentedUser>
{
    // ...
}

Data Access Object Interface (IDAO)

// README NOT FINISHED YET

Example:

using ModularSystem.Core;

public class UserDAO : IDAO<User>
{
    // ...
}
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ModularSystem.Core:

Package Downloads
PlataformaOmega.IntegrationLibrary

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.40.0-prerelease.8 103 1/10/2024
1.40.0-prerelease.7 121 11/14/2023
1.40.0-prerelease.6 71 11/2/2023
1.40.0-prerelease.5 65 10/20/2023
1.40.0-prerelease.4 56 10/16/2023
1.40.0-prerelease.3 57 10/16/2023
1.40.0-prerelease.2 58 10/16/2023
1.40.0-prerelease.1 58 10/15/2023
1.39.1 164 9/28/2023
1.39.0 110 9/28/2023
1.38.2 109 9/27/2023
1.38.1 115 9/25/2023
1.38.0 120 9/19/2023
1.37.3 115 9/18/2023
1.37.2 84 9/18/2023
1.37.1 103 9/18/2023
1.37.0 134 9/13/2023
1.36.0 135 9/12/2023
1.35.6 124 9/12/2023
1.35.5 122 9/12/2023
1.35.4 132 9/11/2023
1.35.3 124 9/7/2023
1.35.2 107 9/6/2023
1.35.1 131 9/6/2023
1.35.0 130 9/6/2023
1.35.0-prerelease.42 78 8/31/2023
1.35.0-prerelease.41 67 8/31/2023
1.35.0-prerelease.40 80 8/30/2023
1.35.0-prerelease.39 71 8/30/2023
1.35.0-prerelease.38 79 8/29/2023
1.35.0-prerelease.37 78 8/27/2023
1.35.0-prerelease.36 72 8/26/2023
1.35.0-prerelease.35 66 8/26/2023
1.35.0-prerelease.34 70 8/26/2023
1.35.0-prerelease.33 63 8/26/2023
1.35.0-prerelease.32 70 8/25/2023
1.35.0-prerelease.31 80 8/25/2023
1.35.0-prerelease.30 65 8/25/2023
1.35.0-prerelease.29 71 8/25/2023
1.35.0-prerelease.28 70 8/25/2023
1.35.0-prerelease.27 65 8/25/2023
1.35.0-prerelease.26 68 8/25/2023
1.35.0-prerelease.25 66 8/25/2023
1.35.0-prerelease.24 71 8/25/2023
1.35.0-prerelease.23 74 8/24/2023
1.35.0-prerelease.22 71 8/24/2023
1.35.0-prerelease.21 71 8/23/2023
1.35.0-prerelease.20 66 8/23/2023
1.35.0-prerelease.19 65 8/23/2023
1.35.0-prerelease.18 74 8/19/2023
1.35.0-prerelease.17 66 8/19/2023
1.35.0-prerelease.16 73 8/19/2023
1.35.0-prerelease.15 67 8/18/2023
1.35.0-prerelease.14 72 8/16/2023
1.35.0-prerelease.13 71 8/16/2023
1.35.0-prerelease.12 74 8/15/2023
1.35.0-prerelease.11 81 8/14/2023
1.35.0-prerelease.10 81 8/13/2023
1.35.0-prerelease.9 76 8/13/2023
1.35.0-prerelease.8 86 8/9/2023
1.35.0-prerelease.7 87 8/2/2023
1.35.0-prerelease.6 84 8/2/2023
1.35.0-prerelease.5 84 8/2/2023
1.35.0-prerelease.4 71 8/2/2023
1.35.0-prerelease.2 110 8/1/2023
1.35.0-prerelease.1 90 7/25/2023
1.34.3 159 7/14/2023
1.34.2 172 7/11/2023
1.34.1 153 7/11/2023
1.34.0 121 7/11/2023
1.33.1 151 7/6/2023
1.33.0 156 7/6/2023
1.32.7 162 5/31/2023
1.32.6 206 5/31/2023
1.32.5 155 5/31/2023
1.32.4 150 5/31/2023
1.32.3 159 5/30/2023
1.32.2 200 5/30/2023
1.32.1 195 5/30/2023
1.32.0 143 5/26/2023
1.31.6 181 4/25/2023
1.31.5 178 4/25/2023
1.31.4 250 4/24/2023
1.31.3 189 4/21/2023
1.31.2 163 4/20/2023
1.31.1 114 4/14/2023
1.31.0 166 4/6/2023
1.30.0 113 4/4/2023
1.29.18 403 3/18/2023
1.29.17 307 3/18/2023
1.29.16 241 3/16/2023
1.29.15 241 3/16/2023
1.29.14 231 3/14/2023
1.29.13 493 3/9/2023
1.29.12 479 3/6/2023
1.29.11 250 3/3/2023
1.29.10 235 3/3/2023
1.29.9 326 3/2/2023
1.29.8 322 3/2/2023
1.29.7 567 3/1/2023
1.29.6 242 3/1/2023
1.29.5 321 2/27/2023
1.29.4 246 2/27/2023
1.29.3 258 2/25/2023
1.29.2 266 2/24/2023
1.29.1 278 2/24/2023
1.29.0 261 2/24/2023
1.28.4 246 2/22/2023
1.28.3 337 2/18/2023
1.28.2 260 2/18/2023
1.28.1 271 2/17/2023
1.28.0 408 2/16/2023
1.27.0 276 2/8/2023
1.26.3 274 2/7/2023
1.26.2 276 2/7/2023
1.26.1 272 2/7/2023
1.26.0 278 2/6/2023
1.25.21 282 2/4/2023
1.25.20 383 2/4/2023
1.25.19 283 2/4/2023
1.25.18 274 2/4/2023
1.25.17 266 2/3/2023
1.25.16 297 2/3/2023
1.25.15 278 1/28/2023
1.25.14 284 1/28/2023
1.25.13 303 1/27/2023
1.25.12 313 1/27/2023
1.25.11 440 1/27/2023
1.25.10 303 1/27/2023
1.25.9 385 1/20/2023
1.25.8 320 1/20/2023
1.25.7 318 1/20/2023
1.25.6 331 1/20/2023
1.25.5 307 1/20/2023
1.25.4 378 1/20/2023
1.25.3 321 1/20/2023
1.25.2 306 1/20/2023
1.25.1 309 1/19/2023
1.25.0 330 1/19/2023
1.24.4 533 1/13/2023
1.24.3 335 1/13/2023
1.24.2 313 1/13/2023
1.24.1 333 1/13/2023
1.24.0 320 1/13/2023
1.23.0 575 9/14/2022
1.22.0 471 8/27/2022
1.21.0 470 8/16/2022
1.20.1 489 8/4/2022
1.20.0 602 7/23/2022
1.19.3 513 7/8/2022
1.19.2 509 7/8/2022
1.19.1 911 7/7/2022
1.19.0 483 7/7/2022
1.18.10 630 7/6/2022
1.18.9 904 7/2/2022
1.18.8 483 7/2/2022
1.18.7 512 7/2/2022
1.18.6 507 7/2/2022
1.18.5 498 7/2/2022
1.18.4 487 7/2/2022
1.18.3 483 7/1/2022
1.18.2 507 6/28/2022
1.18.1 533 6/28/2022
1.18.0 479 6/27/2022
1.17.0 506 6/27/2022
1.16.8 536 5/16/2022
1.16.7 530 5/12/2022
1.16.6 543 5/10/2022
1.16.5 559 5/10/2022
1.16.4 529 5/10/2022
1.16.3 527 5/10/2022
1.16.2 554 4/30/2022
1.16.1 540 4/30/2022
1.16.0 538 4/30/2022
1.15.2 563 4/28/2022
1.15.1 533 4/27/2022
1.15.0 1,451 4/27/2022
1.14.8 554 4/1/2022
1.14.7 564 4/1/2022
1.14.6 564 4/1/2022
1.14.5 541 4/1/2022
1.14.4 587 3/27/2022
1.14.3 555 3/26/2022
1.14.2 561 3/25/2022
1.14.1 965 3/23/2022
1.14.0 534 3/23/2022
1.13.1 572 3/22/2022
1.13.0 547 3/22/2022
1.12.2 548 3/22/2022
1.12.1 732 3/22/2022
1.12.0 545 3/22/2022
1.11.2 579 3/11/2022
1.11.1 571 3/10/2022
1.11.0 551 3/10/2022
1.10.0 698 3/7/2022
1.9.2 593 3/3/2022
1.9.1 567 3/3/2022
1.9.0 1,629 2/26/2022
1.8.3 561 2/26/2022
1.8.2 574 2/1/2022
1.8.1 584 1/24/2022
1.8.0 586 1/24/2022
1.7.1 629 1/19/2022
1.7.0 589 1/19/2022
1.6.0 586 1/19/2022
1.5.0 603 1/19/2022
1.4.3 483 1/14/2022
1.4.2 496 1/14/2022
1.4.1 606 1/13/2022
1.4.0 487 1/13/2022
1.3.0 626 1/12/2022
1.2.0 486 1/11/2022
1.1.3 497 1/11/2022
1.1.2 475 1/11/2022
1.1.1 490 1/11/2022
1.1.0 487 1/11/2022

Added an override interface