DTOMaker.Core
0.29.14
See the version list below for details.
dotnet add package DTOMaker.Core --version 0.29.14
NuGet\Install-Package DTOMaker.Core -Version 0.29.14
<PackageReference Include="DTOMaker.Core" Version="0.29.14" />
<PackageVersion Include="DTOMaker.Core" Version="0.29.14" />
<PackageReference Include="DTOMaker.Core" />
paket add DTOMaker.Core --version 0.29.14
#r "nuget: DTOMaker.Core, 0.29.14"
#:package DTOMaker.Core@0.29.14
#addin nuget:?package=DTOMaker.Core&version=0.29.14
#tool nuget:?package=DTOMaker.Core&version=0.29.14
DTOMaker.Core
Warning: This is pre-release software under active development. Not for production use. Breaking changes occur often.
This package contains attributes for defining simple data models as interfaces, and also includes types used by source genetators at compile-time, and by generated code at runtime.
Generators
The following source generators depend on this package:
DTOMaker.MessagePack
Generates DTOs decorated with MessagePack attributes (https://github.com/MessagePack-CSharp/MessagePack-CSharp). This source generator can be found at: https://github.com/Psiman62/DTOMaker.MessagePack
DTOMaker.MemBlocks
Generates DTOs whose internal data is a single memory block (Memory<byte>). Property getters and setters decode and encode values directly to the block with explicit byte ordering (little-endian or big-endian). This source generator can be found at: https://github.com/Psiman62/DTOMaker-MemBlocks
DTOMaker.CSPoco
Generates basic POCOs (Plain Old C# Objects) that implement the data model interfaces. This source generator can be found at: https://github.com/Psiman62/DTOMaker.CSPoco
Features
Features implemented:
- Data types: Boolean, S/Byte, U/Int16/32/64/128, Double, Single, Half, Char, Guid, Decimal
- IFreezable support
- Templates as code, template processing
- [Obsolete] members
- Fixed length arrays of above types
- DTOMaker.MessagePack source generator
- DTOMaker.MemBlocks source generator
- DTOMaker.CSPoco source generator
Features not implemented:
- Nullable types. T? can be simulated using a pair of fields (Boolean, T) and a default implementation on the interface.
- Enum data types. An enumeration type can be simulated with a casting property and a default implementation on the interface.
- Strings (UTF8). String types can be simulated with a byte array field and a length field and a default implementation on the interface.
In progress:
- Json (NewtonSoft) generator
Coming next:
- Json (System.Text) generator
- ProtobufNet 3.0 generator
- other model entities
- member wire names and tags
- reservation (hidden members)
- compact layout method
Coming later:
- C# records generator
- Google Protobuf .proto generation
- polymorphic types
- generic patterns: lists, trees, unions, etc.
- variable length arrays
- logical value equality
These models are consumed by the following source generators to emit DTO classes that implement the model interfaces.
Benchmarks
Some benchmarking comparing the serialization and deserialization performance of various generated DTOs can be found at: https://github.com/Psiman62/DTOMaker-Samples
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. 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 is compatible. 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 is compatible. 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. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.CodeAnalysis (>= 4.11.0)
- System.Memory (>= 4.6.0)
-
net6.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.CodeAnalysis (>= 4.11.0)
- System.Memory (>= 4.6.0)
-
net7.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.CodeAnalysis (>= 4.11.0)
- System.Memory (>= 4.6.0)
-
net8.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.CodeAnalysis (>= 4.11.0)
- System.Memory (>= 4.6.0)
-
net9.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.CodeAnalysis (>= 4.11.0)
- System.Memory (>= 4.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.55.34-dev | 202 | 1/22/2025 |
0.55.32-dev | 98 | 1/22/2025 |
0.55.31-dev | 111 | 1/21/2025 |
0.55.30-dev | 107 | 1/21/2025 |
0.55.29-dev | 101 | 1/20/2025 |
0.55.27-dev | 111 | 1/20/2025 |
0.55.25-dev | 129 | 1/20/2025 |
0.55.24-dev | 200 | 1/20/2025 |
0.55.23-dev | 117 | 1/19/2025 |
0.55.20-dev | 100 | 1/19/2025 |
0.55.17-dev | 102 | 1/19/2025 |
0.55.14-dev | 189 | 1/19/2025 |
0.55.3-dev | 100 | 1/9/2025 |
0.55.2-dev | 82 | 1/9/2025 |
0.54.2 | 143 | 1/3/2025 |
0.54.1-dev | 128 | 1/3/2025 |
0.53.3 | 149 | 1/1/2025 |
0.53.2 | 137 | 12/31/2024 |
0.53.1-dev | 104 | 12/31/2024 |
0.51.2 | 124 | 12/31/2024 |
0.51.1 | 114 | 12/31/2024 |
0.50.3 | 126 | 12/31/2024 |
0.50.2-dev | 109 | 12/31/2024 |
0.50.1-dev | 103 | 12/31/2024 |
0.49.7 | 120 | 12/31/2024 |
0.49.6 | 124 | 12/29/2024 |
0.49.5-dev | 106 | 12/29/2024 |
0.49.4-dev | 105 | 12/29/2024 |
0.48.5 | 120 | 12/29/2024 |
0.48.4-dev | 109 | 12/28/2024 |
0.48.3-dev | 103 | 12/28/2024 |
0.48.2-dev | 97 | 12/28/2024 |
0.48.1-dev | 108 | 12/28/2024 |
0.47.1 | 125 | 12/27/2024 |
0.46.9 | 113 | 12/27/2024 |
0.46.8 | 117 | 12/27/2024 |
0.46.7 | 130 | 12/27/2024 |
0.46.6 | 124 | 12/23/2024 |
0.46.5 | 120 | 12/23/2024 |
0.46.4 | 116 | 12/22/2024 |
0.46.3 | 111 | 12/22/2024 |
0.46.2-dev | 94 | 12/22/2024 |
0.46.1-dev | 101 | 12/22/2024 |
0.45.4 | 111 | 12/21/2024 |
0.45.3-dev | 103 | 12/20/2024 |
0.45.2-dev | 109 | 12/20/2024 |
0.44.4 | 112 | 12/19/2024 |
0.44.3 | 117 | 12/19/2024 |
0.44.2 | 125 | 12/19/2024 |
0.44.1 | 113 | 12/19/2024 |
0.43.5 | 112 | 12/19/2024 |
0.43.4 | 115 | 12/19/2024 |
0.43.3 | 112 | 12/19/2024 |
0.43.2-dev | 104 | 12/19/2024 |
0.43.1-dev | 123 | 12/18/2024 |
0.42.2 | 134 | 12/18/2024 |
0.42.1-dev | 108 | 12/18/2024 |
0.41.6 | 117 | 12/18/2024 |
0.41.5-dev | 106 | 12/18/2024 |
0.40.16 | 116 | 12/17/2024 |
0.40.14 | 108 | 12/16/2024 |
0.40.12-dev | 104 | 12/16/2024 |
0.40.3-dev | 104 | 12/3/2024 |
0.40.1-dev | 99 | 12/3/2024 |
0.39.2 | 116 | 12/3/2024 |
0.39.1-dev | 103 | 12/2/2024 |
0.38.4 | 117 | 11/30/2024 |
0.38.3-dev | 95 | 11/30/2024 |
0.38.2-dev | 103 | 11/30/2024 |
0.38.1-dev | 94 | 11/25/2024 |
0.37.3 | 125 | 11/24/2024 |
0.37.2 | 123 | 11/23/2024 |
0.37.1 | 124 | 11/23/2024 |
0.36.6 | 220 | 11/23/2024 |
0.36.5 | 255 | 11/22/2024 |
0.36.4 | 225 | 11/22/2024 |
0.36.2 | 119 | 11/20/2024 |
0.34.1 | 120 | 11/17/2024 |
0.33.1 | 121 | 11/17/2024 |
0.32.2 | 125 | 11/16/2024 |
0.31.1 | 127 | 11/16/2024 |
0.30.5 | 119 | 11/16/2024 |
0.30.2 | 132 | 11/15/2024 |
0.30.1 | 134 | 11/13/2024 |
0.29.14 | 121 | 11/13/2024 |
0.29.12 | 116 | 11/13/2024 |
0.29.11 | 162 | 11/13/2024 |
0.29.9 | 161 | 11/13/2024 |
0.29.8 | 170 | 11/13/2024 |
0.29.7 | 169 | 11/12/2024 |
0.29.6 | 164 | 11/12/2024 |
0.29.5 | 171 | 11/12/2024 |
0.29.4-dev | 132 | 11/12/2024 |
0.29.3-dev | 132 | 11/12/2024 |
0.29.1-dev | 104 | 11/11/2024 |
0.28.1 | 158 | 11/11/2024 |
0.27.4 | 144 | 11/11/2024 |
0.27.3 | 137 | 11/10/2024 |
0.27.2 | 127 | 11/9/2024 |
0.26.11 | 134 | 11/9/2024 |
0.26.10-dev | 100 | 11/6/2024 |
0.26.9-dev | 99 | 11/5/2024 |
0.26.7-dev | 105 | 11/4/2024 |
0.26.3-dev | 84 | 10/22/2024 |
0.26.2-dev | 120 | 10/20/2024 |
0.25.5 | 148 | 10/20/2024 |
0.25.4-dev | 127 | 10/20/2024 |
0.25.3-dev | 123 | 10/20/2024 |
0.25.2-dev | 140 | 10/19/2024 |
0.25.1-dev | 147 | 10/19/2024 |
0.24.8 | 164 | 10/19/2024 |
0.24.7 | 165 | 10/19/2024 |
0.24.6 | 153 | 10/19/2024 |
0.24.5-beta | 135 | 10/19/2024 |
0.24.4-beta | 150 | 10/18/2024 |
0.24.3-beta | 150 | 10/18/2024 |
0.24.2-beta | 165 | 10/18/2024 |
0.24.1-beta | 144 | 10/18/2024 |
0.23.5 | 174 | 10/18/2024 |
0.23.4 | 159 | 10/18/2024 |
0.23.3 | 189 | 10/18/2024 |
0.23.2-beta-gcd1d98d29f | 150 | 10/18/2024 |
0.23.2-beta | 147 | 10/18/2024 |
0.22.8 | 168 | 10/18/2024 |
0.22.7 | 166 | 10/18/2024 |
0.22.6-beta | 100 | 10/17/2024 |
0.22.1-beta | 110 | 10/16/2024 |
0.21.3 | 134 | 10/10/2024 |
0.21.2-beta | 109 | 10/10/2024 |
0.20.4 | 132 | 10/8/2024 |
0.20.3-beta | 98 | 10/7/2024 |
0.20.1-beta | 102 | 10/7/2024 |
0.19.4 | 130 | 10/7/2024 |
0.19.3 | 159 | 10/6/2024 |
0.19.1 | 151 | 10/6/2024 |
0.18.1 | 160 | 10/6/2024 |
0.17.1 | 135 | 10/5/2024 |
0.16.2 | 123 | 10/5/2024 |
0.16.1 | 130 | 10/5/2024 |
0.15.1 | 132 | 10/5/2024 |
0.14.2 | 137 | 10/5/2024 |
0.13.1 | 129 | 10/4/2024 |
0.12.2 | 138 | 10/4/2024 |
0.11.13 | 147 | 10/4/2024 |
0.11.7 | 131 | 10/3/2024 |
0.11.5-beta | 101 | 10/3/2024 |
0.11.2-beta | 104 | 10/2/2024 |
0.11.1-beta | 113 | 10/2/2024 |
0.10.3 | 143 | 10/2/2024 |
0.10.2-beta | 109 | 10/2/2024 |
0.10.1-beta | 103 | 10/2/2024 |
0.9.5 | 150 | 10/2/2024 |
0.9.4-beta | 121 | 10/2/2024 |
0.9.3-beta | 105 | 10/2/2024 |
0.9.2-beta | 103 | 10/2/2024 |
0.9.1 | 151 | 10/1/2024 |
0.8.3 | 134 | 10/1/2024 |
0.8.2-beta | 104 | 10/1/2024 |
0.8.1-beta | 104 | 10/1/2024 |
0.7.6 | 131 | 9/30/2024 |
0.7.5 | 133 | 9/28/2024 |
0.7.3-alpha | 104 | 9/28/2024 |
0.7.2-alpha | 106 | 9/28/2024 |
0.7.1-alpha | 102 | 9/28/2024 |
0.6.2-beta | 124 | 9/26/2024 |
0.5.2-beta | 113 | 9/25/2024 |
0.5.1-beta | 103 | 9/25/2024 |
0.4.1-beta | 95 | 9/25/2024 |
0.3.2-beta | 137 | 9/22/2024 |
0.3.1-beta | 116 | 9/22/2024 |
0.2.2-beta | 120 | 9/21/2024 |
0.2.1-beta | 111 | 9/21/2024 |
0.1.15-alpha | 111 | 9/21/2024 |
0.1.13-alpha | 129 | 9/21/2024 |
0.1.12-alpha | 111 | 9/21/2024 |
0.1.11-alpha | 103 | 9/21/2024 |
0.1.9-alpha | 104 | 9/21/2024 |