ModularSystem.Core
1.14.0
See the version list below for details.
dotnet add package ModularSystem.Core --version 1.14.0
NuGet\Install-Package ModularSystem.Core -Version 1.14.0
<PackageReference Include="ModularSystem.Core" Version="1.14.0" />
paket add ModularSystem.Core --version 1.14.0
#r "nuget: ModularSystem.Core, 1.14.0"
// Install ModularSystem.Core as a Cake Addin #addin nuget:?package=ModularSystem.Core&version=1.14.0 // Install ModularSystem.Core as a Cake Tool #tool nuget:?package=ModularSystem.Core&version=1.14.0
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.
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 | 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
- Microsoft.AspNetCore (>= 2.2.0)
- Microsoft.AspNetCore.Hosting (>= 2.2.7)
- Microsoft.AspNetCore.Mvc (>= 2.2.0)
- MongoDB.Driver (>= 2.14.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on ModularSystem.Core:
Package | Downloads |
---|---|
PlataformaOmega.IntegrationLibrary
Package Description |
|
Webql
... |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.40.0-prerelease.8 | 120 | 1/10/2024 |
1.40.0-prerelease.7 | 137 | 11/14/2023 |
1.40.0-prerelease.6 | 83 | 11/2/2023 |
1.40.0-prerelease.5 | 83 | 10/20/2023 |
1.40.0-prerelease.4 | 75 | 10/16/2023 |
1.40.0-prerelease.3 | 75 | 10/16/2023 |
1.40.0-prerelease.2 | 78 | 10/16/2023 |
1.40.0-prerelease.1 | 70 | 10/15/2023 |
1.39.1 | 201 | 9/28/2023 |
1.39.0 | 144 | 9/28/2023 |
1.38.2 | 131 | 9/27/2023 |
1.38.1 | 145 | 9/25/2023 |
1.38.0 | 132 | 9/19/2023 |
1.37.3 | 160 | 9/18/2023 |
1.37.2 | 108 | 9/18/2023 |
1.37.1 | 129 | 9/18/2023 |
1.37.0 | 164 | 9/13/2023 |
1.36.0 | 177 | 9/12/2023 |
1.35.6 | 157 | 9/12/2023 |
1.35.5 | 159 | 9/12/2023 |
1.35.4 | 165 | 9/11/2023 |
1.35.3 | 156 | 9/7/2023 |
1.35.2 | 140 | 9/6/2023 |
1.35.1 | 158 | 9/6/2023 |
1.35.0 | 163 | 9/6/2023 |
1.35.0-prerelease.42 | 98 | 8/31/2023 |
1.35.0-prerelease.41 | 78 | 8/31/2023 |
1.35.0-prerelease.40 | 99 | 8/30/2023 |
1.35.0-prerelease.39 | 92 | 8/30/2023 |
1.35.0-prerelease.38 | 98 | 8/29/2023 |
1.35.0-prerelease.37 | 89 | 8/27/2023 |
1.35.0-prerelease.36 | 84 | 8/26/2023 |
1.35.0-prerelease.35 | 84 | 8/26/2023 |
1.35.0-prerelease.34 | 81 | 8/26/2023 |
1.35.0-prerelease.33 | 80 | 8/26/2023 |
1.35.0-prerelease.32 | 87 | 8/25/2023 |
1.35.0-prerelease.31 | 98 | 8/25/2023 |
1.35.0-prerelease.30 | 89 | 8/25/2023 |
1.35.0-prerelease.29 | 88 | 8/25/2023 |
1.35.0-prerelease.28 | 82 | 8/25/2023 |
1.35.0-prerelease.27 | 86 | 8/25/2023 |
1.35.0-prerelease.26 | 78 | 8/25/2023 |
1.35.0-prerelease.25 | 85 | 8/25/2023 |
1.35.0-prerelease.24 | 84 | 8/25/2023 |
1.35.0-prerelease.23 | 91 | 8/24/2023 |
1.35.0-prerelease.22 | 89 | 8/24/2023 |
1.35.0-prerelease.21 | 82 | 8/23/2023 |
1.35.0-prerelease.20 | 80 | 8/23/2023 |
1.35.0-prerelease.19 | 78 | 8/23/2023 |
1.35.0-prerelease.18 | 91 | 8/19/2023 |
1.35.0-prerelease.17 | 84 | 8/19/2023 |
1.35.0-prerelease.16 | 93 | 8/19/2023 |
1.35.0-prerelease.15 | 78 | 8/18/2023 |
1.35.0-prerelease.14 | 84 | 8/16/2023 |
1.35.0-prerelease.13 | 81 | 8/16/2023 |
1.35.0-prerelease.12 | 85 | 8/15/2023 |
1.35.0-prerelease.11 | 93 | 8/14/2023 |
1.35.0-prerelease.10 | 92 | 8/13/2023 |
1.35.0-prerelease.9 | 92 | 8/13/2023 |
1.35.0-prerelease.8 | 96 | 8/9/2023 |
1.35.0-prerelease.7 | 107 | 8/2/2023 |
1.35.0-prerelease.6 | 94 | 8/2/2023 |
1.35.0-prerelease.5 | 101 | 8/2/2023 |
1.35.0-prerelease.4 | 86 | 8/2/2023 |
1.35.0-prerelease.2 | 126 | 8/1/2023 |
1.35.0-prerelease.1 | 103 | 7/25/2023 |
1.34.3 | 184 | 7/14/2023 |
1.34.2 | 205 | 7/11/2023 |
1.34.1 | 186 | 7/11/2023 |
1.34.0 | 151 | 7/11/2023 |
1.33.1 | 183 | 7/6/2023 |
1.33.0 | 187 | 7/6/2023 |
1.32.7 | 184 | 5/31/2023 |
1.32.6 | 239 | 5/31/2023 |
1.32.5 | 180 | 5/31/2023 |
1.32.4 | 172 | 5/31/2023 |
1.32.3 | 189 | 5/30/2023 |
1.32.2 | 233 | 5/30/2023 |
1.32.1 | 224 | 5/30/2023 |
1.32.0 | 165 | 5/26/2023 |
1.31.6 | 204 | 4/25/2023 |
1.31.5 | 210 | 4/25/2023 |
1.31.4 | 287 | 4/24/2023 |
1.31.3 | 222 | 4/21/2023 |
1.31.2 | 192 | 4/20/2023 |
1.31.1 | 134 | 4/14/2023 |
1.31.0 | 196 | 4/6/2023 |
1.30.0 | 133 | 4/4/2023 |
1.29.18 | 455 | 3/18/2023 |
1.29.17 | 334 | 3/18/2023 |
1.29.16 | 262 | 3/16/2023 |
1.29.15 | 262 | 3/16/2023 |
1.29.14 | 250 | 3/14/2023 |
1.29.13 | 534 | 3/9/2023 |
1.29.12 | 526 | 3/6/2023 |
1.29.11 | 272 | 3/3/2023 |
1.29.10 | 264 | 3/3/2023 |
1.29.9 | 358 | 3/2/2023 |
1.29.8 | 349 | 3/2/2023 |
1.29.7 | 625 | 3/1/2023 |
1.29.6 | 261 | 3/1/2023 |
1.29.5 | 357 | 2/27/2023 |
1.29.4 | 270 | 2/27/2023 |
1.29.3 | 281 | 2/25/2023 |
1.29.2 | 294 | 2/24/2023 |
1.29.1 | 307 | 2/24/2023 |
1.29.0 | 286 | 2/24/2023 |
1.28.4 | 273 | 2/22/2023 |
1.28.3 | 367 | 2/18/2023 |
1.28.2 | 287 | 2/18/2023 |
1.28.1 | 296 | 2/17/2023 |
1.28.0 | 453 | 2/16/2023 |
1.27.0 | 294 | 2/8/2023 |
1.26.3 | 303 | 2/7/2023 |
1.26.2 | 304 | 2/7/2023 |
1.26.1 | 293 | 2/7/2023 |
1.26.0 | 301 | 2/6/2023 |
1.25.21 | 311 | 2/4/2023 |
1.25.20 | 417 | 2/4/2023 |
1.25.19 | 308 | 2/4/2023 |
1.25.18 | 305 | 2/4/2023 |
1.25.17 | 295 | 2/3/2023 |
1.25.16 | 325 | 2/3/2023 |
1.25.15 | 302 | 1/28/2023 |
1.25.14 | 313 | 1/28/2023 |
1.25.13 | 313 | 1/27/2023 |
1.25.12 | 343 | 1/27/2023 |
1.25.11 | 473 | 1/27/2023 |
1.25.10 | 331 | 1/27/2023 |
1.25.9 | 412 | 1/20/2023 |
1.25.8 | 350 | 1/20/2023 |
1.25.7 | 348 | 1/20/2023 |
1.25.6 | 359 | 1/20/2023 |
1.25.5 | 328 | 1/20/2023 |
1.25.4 | 406 | 1/20/2023 |
1.25.3 | 330 | 1/20/2023 |
1.25.2 | 328 | 1/20/2023 |
1.25.1 | 337 | 1/19/2023 |
1.25.0 | 351 | 1/19/2023 |
1.24.4 | 579 | 1/13/2023 |
1.24.3 | 362 | 1/13/2023 |
1.24.2 | 340 | 1/13/2023 |
1.24.1 | 365 | 1/13/2023 |
1.24.0 | 341 | 1/13/2023 |
1.23.0 | 601 | 9/14/2022 |
1.22.0 | 505 | 8/27/2022 |
1.21.0 | 487 | 8/16/2022 |
1.20.1 | 522 | 8/4/2022 |
1.20.0 | 643 | 7/23/2022 |
1.19.3 | 532 | 7/8/2022 |
1.19.2 | 542 | 7/8/2022 |
1.19.1 | 932 | 7/7/2022 |
1.19.0 | 513 | 7/7/2022 |
1.18.10 | 658 | 7/6/2022 |
1.18.9 | 944 | 7/2/2022 |
1.18.8 | 514 | 7/2/2022 |
1.18.7 | 544 | 7/2/2022 |
1.18.6 | 540 | 7/2/2022 |
1.18.5 | 517 | 7/2/2022 |
1.18.4 | 514 | 7/2/2022 |
1.18.3 | 515 | 7/1/2022 |
1.18.2 | 527 | 6/28/2022 |
1.18.1 | 563 | 6/28/2022 |
1.18.0 | 507 | 6/27/2022 |
1.17.0 | 538 | 6/27/2022 |
1.16.8 | 554 | 5/16/2022 |
1.16.7 | 564 | 5/12/2022 |
1.16.6 | 568 | 5/10/2022 |
1.16.5 | 585 | 5/10/2022 |
1.16.4 | 566 | 5/10/2022 |
1.16.3 | 562 | 5/10/2022 |
1.16.2 | 586 | 4/30/2022 |
1.16.1 | 575 | 4/30/2022 |
1.16.0 | 573 | 4/30/2022 |
1.15.2 | 581 | 4/28/2022 |
1.15.1 | 566 | 4/27/2022 |
1.15.0 | 1,511 | 4/27/2022 |
1.14.8 | 584 | 4/1/2022 |
1.14.7 | 592 | 4/1/2022 |
1.14.6 | 600 | 4/1/2022 |
1.14.5 | 553 | 4/1/2022 |
1.14.4 | 620 | 3/27/2022 |
1.14.3 | 573 | 3/26/2022 |
1.14.2 | 585 | 3/25/2022 |
1.14.1 | 1,018 | 3/23/2022 |
1.14.0 | 567 | 3/23/2022 |
1.13.1 | 603 | 3/22/2022 |
1.13.0 | 580 | 3/22/2022 |
1.12.2 | 581 | 3/22/2022 |
1.12.1 | 772 | 3/22/2022 |
1.12.0 | 574 | 3/22/2022 |
1.11.2 | 614 | 3/11/2022 |
1.11.1 | 602 | 3/10/2022 |
1.11.0 | 583 | 3/10/2022 |
1.10.0 | 733 | 3/7/2022 |
1.9.2 | 631 | 3/3/2022 |
1.9.1 | 601 | 3/3/2022 |
1.9.0 | 1,677 | 2/26/2022 |
1.8.3 | 587 | 2/26/2022 |
1.8.2 | 605 | 2/1/2022 |
1.8.1 | 609 | 1/24/2022 |
1.8.0 | 617 | 1/24/2022 |
1.7.1 | 660 | 1/19/2022 |
1.7.0 | 614 | 1/19/2022 |
1.6.0 | 609 | 1/19/2022 |
1.5.0 | 634 | 1/19/2022 |
1.4.3 | 511 | 1/14/2022 |
1.4.2 | 508 | 1/14/2022 |
1.4.1 | 616 | 1/13/2022 |
1.4.0 | 511 | 1/13/2022 |
1.3.0 | 657 | 1/12/2022 |
1.2.0 | 516 | 1/11/2022 |
1.1.3 | 526 | 1/11/2022 |
1.1.2 | 510 | 1/11/2022 |
1.1.1 | 520 | 1/11/2022 |
1.1.0 | 518 | 1/11/2022 |
Added an override interface