Skip to content

Releases: PawelGerr/Thinktecture.Runtime.Extensions

6.0.0

12 Mar 22:02
Compare
Choose a tag to compare
  • v6 supports .NET 7 only.
  • Introduced new interface "IEnum<in TKey, T>" which is going to be implemented by the source generator
  • The key equality comparer is static abstract property in .NET 7
  • The property "Items" is "static abstract"
  • Keyed value objects implement IKeyedValueObject<T, TKey>
  • Replaced KeyedValueObjectAttribute with non-generic interface IKeyedValueObject
  • The delegate "Validate" is obsolete
  • Replaced ValueObjectConstructorAttribute with IComplexValueObject
  • Renamed ValueObjectMetadata to KeyedValueObjectMetadata
  • Introduced ComplexValueObjectMetadata because it easier to use and faster then reflection
  • Configurable whether to generate code for ToString()
  • Member comparers are provided via generic attributes instead of strings.
  • ValueObjectTypeConverter doesn't have to be generated thanks to abstract static members
  • Introduced non-generic IValidatableEnum which is used by serializers
  • Renamed ValueObjectIgnoreAttribute to ValueObjectMemberIgnoreAttribute
  • Renamed SkipCompareTo to SkipIComparables
  • Smart Enums and Value Object implement IComparable, IFormattable and IParsable
  • Minimal WebApi is able to bind Smart Enums and Value Objects thanks to IParsable
  • Introduced new setting "SkipIFormattables"
  • ToString doesn't return null
  • Added implementation of IAdditionOperators, ISubtractionOperatorss, IMultiplyOperators, IDivisionOperators, IComparisonOperators
    • Added operators that work with key-member-types
  • Always-valid-smart-enums are considered equal if the object references are equal.
  • Smart enums implement comparison operators as well.
  • ValueObjectEqualityMemberAttribute is obsolete because we have ValueObjectMemberEqualityComparerAttribute

6.0.0-beta02

05 Mar 20:01
Compare
Choose a tag to compare
6.0.0-beta02 Pre-release
Pre-release
  • v6 supports .NET 7 only.
  • Introduced new interface "IEnum<in TKey, T>" which is going to be implemented by the source generator
  • The key equality comparer is static abstract property in .NET 7
  • The property "Items" is "static abstract"
  • Keyed value objects implement IKeyedValueObject<T, TKey>
  • Replaced KeyedValueObjectAttribute with non-generic interface IKeyedValueObject
  • The delegate "Validate" is obsolete
  • Replaced ValueObjectConstructorAttribute with IComplexValueObject
  • Renamed ValueObjectMetadata to KeyedValueObjectMetadata
  • Introduced ComplexValueObjectMetadata because it easier to use and faster then reflection
  • Configurable whether to generate code for ToString()
  • Member comparers are provided via generic attributes instead of strings.
  • ValueObjectTypeConverter doesn't have to be generated thanks to abstract static members
  • Introduced non-generic IValidatableEnum which is used by serializers
  • Renamed ValueObjectIgnoreAttribute to ValueObjectMemberIgnoreAttribute
  • Renamed SkipCompareTo to SkipIComparables
  • Smart Enums and Value Object implement IComparable, IFormattable and IParsable
  • Minimal WebApi is able to bind Smart Enums and Value Objects thanks to IParsable
  • Introduced new setting "SkipIFormattables"
  • ToString doesn't return null
  • Added implementation of IAdditionOperators, ISubtractionOperatorss, IMultiplyOperators, IDivisionOperators, IComparisonOperators
  • Always-valid-smart-enums are considered equal if the object references are equal.
  • Smart enums implement comparison operators as well.
  • ValueObjectEqualityMemberAttribute is obsolete because we have ValueObjectMemberEqualityComparerAttribute

5.2.0

06 Feb 21:37
Compare
Choose a tag to compare
  • EF 7 support

5.1.0

25 Nov 20:10
Compare
Choose a tag to compare

5.0.1

06 Oct 08:56
Compare
Choose a tag to compare

Struct-ValueObjects with struct-key-member need 2 implicit conversions.

5.0.0

28 Sep 11:00
Compare
Choose a tag to compare
  • Removed support for "Extensible" enums because it felt like a nasty hack till the end.
  • Base classes of value objects and smart enums are checks for immutability as well.
  • Split Thinktecture.Runtime.Extensions.EntityFrameworkCore into *.EntityFrameworkCore5 and *.EntityFrameworkCore6.
  • Added single-item read-only collections/set/dictionary to reduce memory allocations.
  • The name of static property "Empty" of a struct-enum is now configurable.
  • Analyzer: ValueObjects must be sealed

4.3.3

17 Aug 18:36
Compare
Choose a tag to compare

Workaround for Rider until SharedAttribute + CodeAnalysis 4.2.0 are supported.

4.3.2

15 Jun 10:40
Compare
Choose a tag to compare
  • Updated to Microsoft.CodeAnalysis to 4.2.0 (requires SDK 6.0.300 or higher)

4.3.1

17 May 17:12
Compare
Choose a tag to compare
  • Reverted Microsoft.CodeAnalysis back to 4.1.0 because JetBrains Rider does not support 4.2.0 yet.

4.3.0

16 May 19:57
Compare
Choose a tag to compare
  • Updated for SDK 6.0.300