Skip to content

Releases: OData/odata.net

ODL 8.0.0-preview.1

26 Apr 08:59
d1840c5
Compare
Choose a tag to compare
ODL 8.0.0-preview.1 Pre-release
Pre-release

Starting version 8, OData lib will only target .NET 8 or later.

Microsoft.OData.Core

  • IJsonReaderAsync interface has been merged into IJsonReader interface.
    • Any implementation of IJsonReader needs to implement methods previously defined in IJsonReaderAsync interfaces.
    • The Value property in IJsonReader interface is replaced by GetValue method.
  • IJsonReaderFactoryAsync interface has been dropped.
  • IJsonStreamWriter, IJsonWriterAsync and IJsonStreamWriterAsync interfaces have been merged into IJsonWriter interface.
    • Any implementation of IJsonWriter needs to implement methods previously defined in IJsonStreamWriter, IJsonWriterAsync and IJsonStreamWriterAsync interfaces.
  • IStreamBasedJsonWriterFactory and IJsonWriterFactoryAsync interfaces has been dropped.
  • DefaultStreamBasedJsonWriterFactory class has been renamed to ODataUtf8JsonWriterFactory.
  • CreateJsonWriter(TextReader, bool) defined in IJsonWriterFactory has changed to CreateJsonWriter(Stream, bool, Encoding). The method now accepts a Stream rather than a TextReader.
  • List<ODataUrlValidationMessage> Messages property defined in ODataUrlValidationContext class has changed to IReadOnlyList<ODataUrlValidationMessage> Messages.
    • AddMessage(ODataUrlValidationMessage) overload introduced in ODataUrlValidationContext.
  • INavigationSourceSegment interface introduced. The purpose of this new interface is to reduce casting when determining the navigation source associated with the segment. EntitySetSegment, SingletonSegment and NavigationPropertySegment implement this new interface.
  • Deprecated support for JSONP callback. Feature to be removed in ODL 9.
    • JsonPCallback property defined in ODataMessageWriterSettings class marked as obsolete.
    • StartPaddingFunctionScope method defined in IJsonWriter interface marked as obsolete.
    • EndPaddingFunctionScope method defined in IJsonWriter interface marked as obsolete.
    • WritePaddingFunctionName method defined in IJsonWriter interface marked as obsolete.
    • StartPaddingFunctionScopeAsync method defined in IJsonWriter interface marked as obsolete.
    • EndPaddingFunctionScopeAsync method defined in IJsonWriter interface marked as obsolete.
    • WritePaddingFunctionNameAsync method defined in IJsonWriter interface marked as obsolete.
  • ODataSimplifiedOptions class was dropped. This class would be injected into the DI container and the settings used to control behaviour when parsing URLs, and when writing and reading payloads. In ODL 8, ODataMessageReaderSettings, ODataMessageWriterSettings, and ODataUriParserSettings may variously be used to accomplish the same purpose.
    • EnableReadingKeyAsSegment and EnableReadingODataAnnotationWithoutPrefix properties moved to ODataMessageReaderSettings class.
    • EnableWritingKeyAsSegment property moved to ODataMessageWriterSettings class.
    • SetOmitODataPrefix(bool), SetOmitODataPrefix(bool, ODataVersion), GetOmitODataPrefix(), and GetOmitODataPrefix(ODataVersion) methods moved to ODataMessageWriterSettings class.
    • EnableParsingKeyAsSegment property moved to ODataUriParserSettings class.
  • In ODL 7, when ODataBinaryStreamValue class is initialized using the ODataBinaryStreamValue(Stream) constructor, the stream is left open by default upon the object being disposed. In ODL 8, the stream is closed by default the object objects is disposed. The ODataBinaryStreamValue(Stream, bool) constructor overload may be used where leaving the stream open is intended.
  • Func<string, bool> ShouldIncludeAnnotation property introduced in ODataMessageWriterSettings. This property makes it possible for developers to force a custom instance annotation to be written even if it's not include in the optional @odata.include-annotations preference token in Prefer request header.
  • IContainerBuilder interface used when registering OData services was dropped. Use Microsoft.Extensions.DependencyInjection library instead.
    • AddDefaultODataServices(IServiceCollection, ODataVersion, Action<ODataMessageReaderSettings>, Action<ODataMessageWriterSettings>, Action<ODataUriParserSettings>) extension method introduced for the purpose of registering OData services.
    • IContainerProvider interface replaced by IServiceCollectionProvider interface. It's a provider for the IServiceProvider IoC container.
    • ODataBatchOperationRequestMessage now implements IServiceCollectionProvider instead of IContainerProvider.
    • ODataBatchOperationResponseMessage now implements IServiceCollectionProvider instead of IContainerProvider.

Microsoft.OData.Client

  • HttpWebRequestMessage class has been dropped - effectively dropping support for HttpWebRequest. Use HttpClientRequestMessage class instead.
  • IHttpClientHandlerProvider interface used to provide HttpClientHandler for use with DataServiceContext has been dropped.
  • HttpClientHandlerProvider property defined in DataServiceClientRequestMessageArgs class and used for providing HttpClientHandler substituted with HttpClientFactory property that accomplishes the same purpose.
  • HttpClientHandlerProvider property defined in DataServiceContext class and used for providing HttpClientHandler substituted with HttpClientFactory property that accomplishes the same purpose.
  • Obsolete Credentials property dropped from DataServiceClientRequestMessage abstract class. The recommended way to configure credentials is through HttpClientHandler that can be provided using IHttpClientFactory.
  • Obsolete Credentials property dropped from HttpClientRequestMessage class. The recommended way to configure credentials is through HttpClientHandler that can be provided using IHttpClientFactory.
  • Obsolete Credentials property dropped from DataServiceContext class. The recommended way to configure credentials is through HttpClientHandler that can be provided using IHttpClientFactory.
  • Obsolete ReadWriteTimeout property dropped from DataServiceClientRequestMessage abstract class. This property would be used with HttpWebRequestMessage. Timeout property may be used instead.
  • Obsolete ReadWriteTimeout property dropped from HttpClientRequestMessage class. This property would be used with HttpWebRequestMessage. Timeout property may be used instead.
  • In DataServiceClientRequestMessageArgs class, the DataServiceClientRequestMessageArgs(string, Uri, bool, bool, IDictionary<string, string>) constructor has changed to DataServiceClientRequestMessageArgs(string, Uri, bool, IDictionary<string, string>). The boolean useDefaultCredentials parameter is no longer supported.
  • In DataServiceClientRequestMessageArgs class, the DataServiceClientRequestMessageArgs(string, Uri, bool, bool, IDictionary<string, string>, IHttpClientHandlerProvider) constructor has changed to DataServiceClientRequestMessageArgs(string, Uri, bool, IDictionary<string, string>, IHttpClientFactory). The boolean useDefaultCredentials parameter is no longer supported.
  • In DataServiceClientRequestMessageArgs class, the UseDefaultCredentials property dropped from DataServiceClientRequestMessageArgs class. The recommended way to configure credentials is through HttpClientHandler that can be provided using IHttpClientFactory.
  • HttpRequestTransportMode enum property was dropped from DataServiceContext. This property was used to switch between HttpClient and HttpWebRequest that was dropped.
  • KeyComparisonGeneratesFilterQuery flag defined in DataServiceContext class marked as deprecated. Flag will be removed in ODL 9.
    • Default value for keyComparisonGeneratesFilterQuery flag set to true such that a Where expression with only the key property in the predicate is translated into a $filter query rather a resouce URL for requesting a single entity.
  • Obsolete IncludeTotalCount() method was dropped from DataServiceQuery<TElement> class. Use IncludeCount() method.
  • Obsolete IncludeTotalCount(bool) method was dropped from DataServiceQuery<TElement> class: Use IncludeCount(bool) the method.
  • Obsolete TotalCount property was dropped from QueryOperationResponse class. Use Count property.
  • Obsolete TotalCount property was dropped from QueryOperationResponse<T> class. Use Count property.
  • Obsolete CreateODataDeltaReader(IEdmEntitySetBase, IEdmEntityType) method dropped from ODataMessageReader class. Use CreateODataDeltaResourceSetReader(IEdmEntitySetBase, IEdmStructuredType) method.
  • Obsolete CreateODataDeltaReaderAsync(IEdmEntitySetBase, IEdmEntityType) method dropped from ODataMessageReader class. Use CreateODataDeltaResourceSetReader(IEdmEntitySetBase, IEdmStructuredType) method.
  • Obsolete CreateODataDeltaWriter(IEdmEntitySetBase, IEdmEntityType) method dropped from ODataMessageReader class. Use CreateODataDeltaResourceSetWriter(IEdmEntitySetBase, IEdmStructuredType) method.
  • Obsolete CreateODataDeltaWriterAsync(IEdmEntitySetBase, IEdmEntityType) method dropped from ODataMessageReader class. Use CreateODataDeltaResourceSetWriterAsync(IEdmEntitySetBase, IEdmStructuredType) method.
  • Obsolete Expressions property dropped from AggregateToken class. Use AggregateExpressions property.
  • Obsolete Expressions property dropped from AggregateTransformationNode class. Use AggregateExpressions property.
  • Obsolete EntityTypeInvalidKeyKeyDefinedInBaseClass validation rule dropped from ValidationRules class. Use EntityTypeInvalidKeyKeyDefinedInAncestor validation rule.
  • Obsolete EntityTypeKeyMissingOnEntityType validation rule dropped from ValidationRules class. Use `NavigationSourceT...
Read more

ODL 7.21.0

17 Apr 13:17
24ae2e3
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 7.20.0...7.21.0

ODL 7.20.0

08 Dec 12:56
930ffaf
Compare
Choose a tag to compare

What's Changed

  • Slight performance improvement for IEdmNavigationSource.EntityType() by @habbes in #2808
  • Add index-based access to ODataPath by @habbes in #2811
  • fixes #2785: support property instance annotation without property value by @xuzhg in #2786
  • Feature IEdmTargetPath to support path to a model element by @KenitoInc in #2769
  • Fixes #2693: Does not work for reading value for untyped property with odata.type annotated by @xuzhg in #2694
  • Fix NRE in CompareElements by @whoaskedfrfr in #2824
  • Micro-optimization for IsPrimitiveType by @habbes in #2810
  • Increment build version to 7.20.0 by @KenitoInc in #2826

New Contributors

Full Changelog: 7.19.0...7.20.0

ODL 7.19.0

30 Nov 04:28
46d9ffa
Compare
Choose a tag to compare

What's Changed

  • added a script to automate creating a release branch and associated pr by @corranrogue9 in #2695
  • client support for custom uri functions by @uffelauesen in #2631
  • Fixes #2774: set the identifier for segments by @xuzhg in #2775
  • fix issue #2771 : fix method InBinder.ProcessSingleQuotedStringItem by @paku-he in #2773
  • Upgrade Microsoft.Bcl.AsyncInterfaces dependency to 7.0.0 by @gathogojr in #2788
  • Fix issue in parsing OData core vocabulary by @gathogojr in #2779
  • Fix delta deleted entry deserialization failure observed when reason appears before id in payload by @gathogojr in #2787
  • Upgrade Microsoft.Bcl.AsyncInterfaces dependency to 8.0.0 by @gathogojr in #2793
  • updated odata.context computation to remove trailing cast segments by @corranrogue9 in #2681
  • Use same format as JsonWriter when serializing DateTimeOffset with ODataUtf8JsonWriter by @habbes in #2755
  • Support deserialization of OData error with multiple items in the error details collection by @gathogojr in #2799
  • Reduce buffer allocations by @habbes in #2792
  • Add BufferSize property to ODataMessageWriterSettings
  • Bump version to 7.19.0 by @habbes in #2809

New Contributors

Full Changelog: 7.18.0...7.19.0

ODL 7.18.0

12 Sep 05:35
b09dc68
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 7.17.0...7.18.0

ODL 7.17.0

23 Jun 14:39
4414000
Compare
Choose a tag to compare

What's Changed

Full Changelog: 7.16.0...7.17.0

ODL 7.16.0

16 May 04:36
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 7.15.0...7.16.0

ODL 7.15.0

01 Mar 13:38
3941b4d
Compare
Choose a tag to compare

What's Changed

  • Add support for writing JsonElement values in ODataWriter by @habbes in #2619
  • Fix ArgumentException regression in ProjectPlanCompiler by @habbes in #2624
  • support reading relative context urls with bulk updates by @ElizabethOkerio in #2618
  • Cache container elements in ODataUriResolver model elements cache by @habbes in #2623
  • Update version to 7.15.0 by @habbes in #2629

Full Changelog: 7.14.1...7.15.0

ODL 7.14.1

17 Feb 03:50
0294c76
Compare
Choose a tag to compare

What's Changed

  • Bump Newtonsoft.Json from 13.0.1 to 13.0.2 in /tools/perf/ResultsComparer/src/ResultsComparer by @dependabot in #2579
  • fix: ExpressionWriter only prepend slash to method when we have a parent by @uffelauesen in #2572
  • Ported DataServiceContext.AutoNullPropagation from V3 ODL by @uffelauesen in #2573
  • IncrementVersion.ps1 fixes by @corranrogue9 in #2581
  • Bump to 7.14.0 by @lisicase in #2588
  • adding documentation for the release process by @corranrogue9 in #2393
  • Capability to close ODataBinaryStreamValue stream after serialization by @syprieur in #2597
  • fixes #2601: AddDefaultODataServices should pass OData version to low layer by @xuzhg in #2602
  • fixes #2607: The ConstantNode from CollectionConstantNode returns type full name in LiteralText property by @xuzhg in #2609
  • Update Validation Vocabulary by @mikepizzo in #2612
  • Create cache to speed up case-insensitive look up of schema elements by @habbes in #2610
  • Flush out release process documentation by @lisicase in #2600
  • Add vocabulary terms to Require Explicit Binding by @lisicase in #2614
  • Fix broken link by @KenitoInc in #2616
  • fixes #2598, Composite key entities PUT,PATCH URIs generated by OData Client do not follow key order by @xuzhg in #2603
  • Increment version number and update public api txt files by @KenitoInc in #2615

New Contributors

Full Changelog: 7.13.0...7.14.1

ODL 7.14.0

12 Jan 16:25
Compare
Choose a tag to compare

What's Changed

  • fix: ExpressionWriter only prepend slash to method when we have a parent by @uffelauesen in #2572
  • Ported DataServiceContext.AutoNullPropagation from V3 ODL by @uffelauesen in #2573

New Contributors

NuGet Packages

Microsoft.Spatial 7.14.0
Microsoft.OData.Edm 7.14.0
Microsoft.OData.Core 7.14.0
Microsoft.OData.Client 7.14.0

Full Changelog: 7.13.0...7.14.0