Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API diff between .NET 8 and .NET 9 #9602

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# API Difference 8.0.0 vs 9.0.0

API listing follows standard diff formatting.
Lines preceded by a '+' are additions and a '-' indicates removal.

* [Microsoft.AspNetCore.Antiforgery](9.0.0_Microsoft.AspNetCore.Antiforgery.md)
* [Microsoft.AspNetCore.Authentication](9.0.0_Microsoft.AspNetCore.Authentication.md)
* [Microsoft.AspNetCore.Authentication.OAuth](9.0.0_Microsoft.AspNetCore.Authentication.OAuth.md)
* [Microsoft.AspNetCore.Builder](9.0.0_Microsoft.AspNetCore.Builder.md)
* [Microsoft.AspNetCore.Components](9.0.0_Microsoft.AspNetCore.Components.md)
* [Microsoft.AspNetCore.Components.Authorization](9.0.0_Microsoft.AspNetCore.Components.Authorization.md)
* [Microsoft.AspNetCore.Components.Endpoints.Infrastructure](9.0.0_Microsoft.AspNetCore.Components.Endpoints.Infrastructure.md)
* [Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure](9.0.0_Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure.md)
* [Microsoft.AspNetCore.Components.RenderTree](9.0.0_Microsoft.AspNetCore.Components.RenderTree.md)
* [Microsoft.AspNetCore.Components.Routing](9.0.0_Microsoft.AspNetCore.Components.Routing.md)
* [Microsoft.AspNetCore.Components.Server](9.0.0_Microsoft.AspNetCore.Components.Server.md)
* [Microsoft.AspNetCore.Components.Web](9.0.0_Microsoft.AspNetCore.Components.Web.md)
* [Microsoft.AspNetCore.Components.Web.Internal](9.0.0_Microsoft.AspNetCore.Components.Web.Internal.md)
* [Microsoft.AspNetCore.Components.Web.Virtualization](9.0.0_Microsoft.AspNetCore.Components.Web.Virtualization.md)
* [Microsoft.AspNetCore.Cors.Infrastructure](9.0.0_Microsoft.AspNetCore.Cors.Infrastructure.md)
* [Microsoft.AspNetCore.DataProtection.KeyManagement](9.0.0_Microsoft.AspNetCore.DataProtection.KeyManagement.md)
* [Microsoft.AspNetCore.DataProtection.Repositories](9.0.0_Microsoft.AspNetCore.DataProtection.Repositories.md)
* [Microsoft.AspNetCore.Http](9.0.0_Microsoft.AspNetCore.Http.md)
* [Microsoft.AspNetCore.Http.Features](9.0.0_Microsoft.AspNetCore.Http.Features.md)
* [Microsoft.AspNetCore.Http.HttpResults](9.0.0_Microsoft.AspNetCore.Http.HttpResults.md)
* [Microsoft.AspNetCore.Http.Metadata](9.0.0_Microsoft.AspNetCore.Http.Metadata.md)
* [Microsoft.AspNetCore.Http.Timeouts](9.0.0_Microsoft.AspNetCore.Http.Timeouts.md)
* [Microsoft.AspNetCore.Mvc](9.0.0_Microsoft.AspNetCore.Mvc.md)
* [Microsoft.AspNetCore.Mvc.Infrastructure](9.0.0_Microsoft.AspNetCore.Mvc.Infrastructure.md)
* [Microsoft.AspNetCore.Mvc.TagHelpers](9.0.0_Microsoft.AspNetCore.Mvc.TagHelpers.md)
* [Microsoft.AspNetCore.Routing](9.0.0_Microsoft.AspNetCore.Routing.md)
* [Microsoft.AspNetCore.Server.HttpSys](9.0.0_Microsoft.AspNetCore.Server.HttpSys.md)
* [Microsoft.AspNetCore.Server.Kestrel](9.0.0_Microsoft.AspNetCore.Server.Kestrel.md)
* [Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes](9.0.0_Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.md)
* [Microsoft.AspNetCore.StaticAssets](9.0.0_Microsoft.AspNetCore.StaticAssets.md)
* [Microsoft.AspNetCore.StaticAssets.Infrastructure](9.0.0_Microsoft.AspNetCore.StaticAssets.Infrastructure.md)
* [Microsoft.AspNetCore.WebUtilities](9.0.0_Microsoft.AspNetCore.WebUtilities.md)
* [Microsoft.Extensions.Caching.Distributed](9.0.0_Microsoft.Extensions.Caching.Distributed.md)
* [Microsoft.Extensions.Caching.Hybrid](9.0.0_Microsoft.Extensions.Caching.Hybrid.md)
* [Microsoft.Extensions.Caching.Memory](9.0.0_Microsoft.Extensions.Caching.Memory.md)
* [Microsoft.Extensions.DependencyInjection](9.0.0_Microsoft.Extensions.DependencyInjection.md)
* [Microsoft.Extensions.FileProviders.Physical](9.0.0_Microsoft.Extensions.FileProviders.Physical.md)
* [Microsoft.Extensions.Logging.Abstractions](9.0.0_Microsoft.Extensions.Logging.Abstractions.md)
* [Microsoft.JSInterop](9.0.0_Microsoft.JSInterop.md)
* [System.IO.Pipelines](9.0.0_System.IO.Pipelines.md)

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Antiforgery

``` diff
namespace Microsoft.AspNetCore.Antiforgery {
public class AntiforgeryOptions {
+ public bool SuppressReadingTokenFromFormBody { get; set; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Authentication.OAuth

``` diff
namespace Microsoft.AspNetCore.Authentication.OAuth {
public class OAuthOptions : RemoteAuthenticationOptions {
+ public IDictionary<string, string> AdditionalAuthorizationParameters { get; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Microsoft.AspNetCore.Authentication

``` diff
namespace Microsoft.AspNetCore.Authentication {
public abstract class ResultContext<TOptions> : BaseContext<TOptions> where TOptions : AuthenticationSchemeOptions {
- public AuthenticateResult Result { get; }
+ public AuthenticateResult? Result { get; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Microsoft.AspNetCore.Builder

``` diff
namespace Microsoft.AspNetCore.Builder {
+ public static class ControllerActionEndpointConventionBuilderResourceCollectionExtensions {
+ public static ControllerActionEndpointConventionBuilder WithStaticAssets(this ControllerActionEndpointConventionBuilder builder, string manifestPath = null);
+ }
public class ExceptionHandlerOptions {
+ public Func<Exception, int>? StatusCodeSelector { get; set; }
}
+ public static class HttpMetricsEndpointConventionBuilderExtensions {
+ public static TBuilder DisableHttpMetrics<TBuilder>(this TBuilder builder) where TBuilder : IEndpointConventionBuilder;
+ }
+ public static class PageActionEndpointConventionBuilderResourceCollectionExtensions {
+ public static PageActionEndpointConventionBuilder WithStaticAssets(this PageActionEndpointConventionBuilder builder, string? manifestPath = null);
+ }
public static class RateLimiterServiceCollectionExtensions {
+ public static IServiceCollection AddRateLimiter(this IServiceCollection services);
}
public static class RazorComponentsEndpointConventionBuilderExtensions {
+ public static RazorComponentsEndpointConventionBuilder WithStaticAssets(this RazorComponentsEndpointConventionBuilder builder, string? manifestPath = null);
}
public static class ServerRazorComponentsEndpointConventionBuilderExtensions {
+ public static RazorComponentsEndpointConventionBuilder AddInteractiveServerRenderMode(this RazorComponentsEndpointConventionBuilder builder, Action<ServerComponentsEndpointOptions> configure);
}
+ public static class StaticAssetsEndpointRouteBuilderExtensions {
+ public static StaticAssetsEndpointConventionBuilder MapStaticAssets(this IEndpointRouteBuilder endpoints, string? staticAssetsManifestPath = null);
+ }
public class WebSocketOptions {
+ public TimeSpan KeepAliveTimeout { get; set; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Microsoft.AspNetCore.Components.Authorization

``` diff
namespace Microsoft.AspNetCore.Components.Authorization {
+ public class AuthenticationStateData {
+ public AuthenticationStateData();
+ public IList<ClaimData> Claims { get; set; }
+ public string NameClaimType { get; set; }
+ public string RoleClaimType { get; set; }
+ }
+ public readonly struct ClaimData {
+ public ClaimData(Claim claim);
+ public ClaimData(string type, string value);
+ public string Type { get; }
+ public string Value { get; }
+ }
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Components.Endpoints.Infrastructure

``` diff
namespace Microsoft.AspNetCore.Components.Endpoints.Infrastructure {
public static class ComponentEndpointConventionBuilderHelper {
+ public static IEndpointRouteBuilder GetEndpointRouteBuilder(RazorComponentsEndpointConventionBuilder builder);
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure

``` diff
namespace Microsoft.AspNetCore.Components.HtmlRendering.Infrastructure {
public class StaticHtmlRenderer : Renderer {
+ protected internal override RendererInfo RendererInfo { get; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Microsoft.AspNetCore.Components.RenderTree

``` diff
namespace Microsoft.AspNetCore.Components.RenderTree {
public abstract class Renderer : IAsyncDisposable, IDisposable {
+ protected internal virtual ResourceAssetCollection Assets { get; }
+ protected internal virtual RendererInfo RendererInfo { get; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Microsoft.AspNetCore.Components.Routing

``` diff
namespace Microsoft.AspNetCore.Components.Routing {
public class FocusOnNavigate : ComponentBase {
+ protected override void BuildRenderTree(RenderTreeBuilder builder);
}
+ public static class RazorComponentsEndpointHttpContextExtensions {
+ public static bool AcceptsInteractiveRouting(this HttpContext context);
+ }
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Microsoft.AspNetCore.Components.Server

``` diff
namespace Microsoft.AspNetCore.Components.Server {
+ public class ServerComponentsEndpointOptions {
+ public ServerComponentsEndpointOptions();
+ public Func<HttpContext, WebSocketAcceptContext, Task>? ConfigureWebSocketAcceptContext { get; set; }
+ public string ContentSecurityFrameAncestorsPolicy { get; set; }
+ public bool DisableWebSocketCompression { get; set; }
+ }
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Components.Web.Internal

``` diff
+namespace Microsoft.AspNetCore.Components.Web.Internal {
+ public interface IInternalWebJSInProcessRuntime {
+ string InvokeJS(string identifier, string? argsJson, JSCallResultType resultType, long targetInstanceId);
+ }
+}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Components.Web.Virtualization

``` diff
namespace Microsoft.AspNetCore.Components.Web.Virtualization {
public sealed class Virtualize<TItem> : ComponentBase, IAsyncDisposable, IVirtualizeJsCallbacks {
+ public int MaxItemCount { get; set; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Components.Web

``` diff
namespace Microsoft.AspNetCore.Components.Web {
public class KeyboardEventArgs : EventArgs {
+ public bool IsComposing { get; set; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Microsoft.AspNetCore.Components

``` diff
namespace Microsoft.AspNetCore.Components {
public abstract class ComponentBase : IComponent, IHandleAfterRender, IHandleEvent {
+ protected ResourceAssetCollection Assets { get; }
+ protected IComponentRenderMode? AssignedRenderMode { get; }
+ protected RendererInfo RendererInfo { get; }
}
+ public sealed class ExcludeFromInteractiveRoutingAttribute : Attribute {
+ public ExcludeFromInteractiveRoutingAttribute();
+ }
+ public sealed class ImportMap : IComponent {
+ public ImportMap();
+ public IReadOnlyDictionary<string, object>? AdditionalAttributes { get; set; }
+ public HttpContext HttpContext { get; set; }
+ public ImportMapDefinition ImportMapDefinition { get; set; }
+ void IComponent.Attach(RenderHandle renderHandle);
+ Task IComponent.SetParametersAsync(ParameterView parameters);
+ }
+ public sealed class ImportMapDefinition {
+ public ImportMapDefinition(IReadOnlyDictionary<string, string>? imports, IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>>? scopes, IReadOnlyDictionary<string, string>? integrity);
+ public IReadOnlyDictionary<string, string>? Imports { get; }
+ public IReadOnlyDictionary<string, string>? Integrity { get; }
+ public IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>>? Scopes { get; }
+ public static ImportMapDefinition Combine(params ImportMapDefinition[] sources);
+ public static ImportMapDefinition FromResourceCollection(ResourceAssetCollection assets);
+ public override string ToString();
+ }
+ public sealed class RendererInfo {
+ public RendererInfo(string rendererName, bool isInteractive);
+ public bool IsInteractive { get; }
+ public string Name { get; }
+ }
public readonly struct RenderHandle {
+ public ResourceAssetCollection Assets { get; }
+ public RendererInfo RendererInfo { get; }
+ public IComponentRenderMode? RenderMode { get; }
}
+ public sealed class ResourceAsset {
+ public ResourceAsset(string url, IReadOnlyList<ResourceAssetProperty>? properties);
+ public IReadOnlyList<ResourceAssetProperty>? Properties { get; }
+ public string Url { get; }
+ }
+ public sealed class ResourceAssetCollection : IEnumerable, IEnumerable<ResourceAsset>, IReadOnlyCollection<ResourceAsset>, IReadOnlyList<ResourceAsset> {
+ public static readonly ResourceAssetCollection Empty;
+ public ResourceAssetCollection(IReadOnlyList<ResourceAsset> resources);
+ int IReadOnlyCollection<ResourceAsset>.Count { get; }
+ ResourceAsset IReadOnlyList<ResourceAsset>.this[int index] { get; }
+ public string this[string key] { get; }
+ public bool IsContentSpecificUrl(string path);
+ IEnumerator<ResourceAsset> IEnumerable<ResourceAsset>.GetEnumerator();
+ IEnumerator IEnumerable.GetEnumerator();
+ }
+ public sealed class ResourceAssetProperty {
+ public ResourceAssetProperty(string name, string value);
+ public string Name { get; }
+ public string Value { get; }
+ }
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Microsoft.AspNetCore.Cors.Infrastructure

``` diff
namespace Microsoft.AspNetCore.Cors.Infrastructure {
public static class CorsConstants {
+ public static readonly string AnyHeader;
+ public static readonly string AnyMethod;
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Microsoft.AspNetCore.DataProtection.KeyManagement

``` diff
namespace Microsoft.AspNetCore.DataProtection.KeyManagement {
+ public interface IDeletableKeyManager : IKeyManager {
+ bool CanDeleteKeys { get; }
+ bool DeleteKeys(Func<IKey, bool> shouldDelete);
+ }
public sealed class XmlKeyManager : IInternalXmlKeyManager, IKeyManager {
+ public bool CanDeleteKeys { get; }
+ public bool DeleteKeys(Func<IKey, bool> shouldDelete);
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Microsoft.AspNetCore.DataProtection.Repositories

``` diff
namespace Microsoft.AspNetCore.DataProtection.Repositories {
- public class FileSystemXmlRepository : IXmlRepository {
+ public class FileSystemXmlRepository : IDeletableXmlRepository, IXmlRepository {
+ public virtual bool DeleteElements(Action<IReadOnlyCollection<IDeletableElement>> chooseElements);
}
+ public interface IDeletableElement {
+ int? DeletionOrder { get; set; }
+ XElement Element { get; }
+ }
+ public interface IDeletableXmlRepository : IXmlRepository {
+ bool DeleteElements(Action<IReadOnlyCollection<IDeletableElement>> chooseElements);
+ }
- public class RegistryXmlRepository : IXmlRepository {
+ public class RegistryXmlRepository : IDeletableXmlRepository, IXmlRepository {
+ public virtual bool DeleteElements(Action<IReadOnlyCollection<IDeletableElement>> chooseElements);
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Microsoft.AspNetCore.Http.Features

``` diff
namespace Microsoft.AspNetCore.Http.Features {
public interface IHttpMetricsTagsFeature {
+ bool MetricsDisabled { get; set; }
}
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Microsoft.AspNetCore.Http.HttpResults

``` diff
namespace Microsoft.AspNetCore.Http.HttpResults {
+ public sealed class InternalServerError : IEndpointMetadataProvider, IResult, IStatusCodeHttpResult {
+ int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get; }
+ public int StatusCode { get; }
+ public Task ExecuteAsync(HttpContext httpContext);
+ static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(MethodInfo method, EndpointBuilder builder);
+ }
+ public sealed class InternalServerError<TValue> : IEndpointMetadataProvider, IResult, IStatusCodeHttpResult, IValueHttpResult, IValueHttpResult<TValue> {
+ int? Microsoft.AspNetCore.Http.IStatusCodeHttpResult.StatusCode { get; }
+ object? Microsoft.AspNetCore.Http.IValueHttpResult.Value { get; }
+ public int StatusCode { get; }
+ public TValue? Value { get; }
+ public Task ExecuteAsync(HttpContext httpContext);
+ static void Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider.PopulateMetadata(MethodInfo method, EndpointBuilder builder);
+ }
}
```

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Microsoft.AspNetCore.Http.Metadata

``` diff
namespace Microsoft.AspNetCore.Http.Metadata {
+ public interface IDisableHttpMetricsMetadata
+ public interface IParameterBindingMetadata {
+ bool HasBindAsync { get; }
+ bool HasTryParse { get; }
+ bool IsOptional { get; }
+ string Name { get; }
+ ParameterInfo ParameterInfo { get; }
+ }
}
```

Loading
Loading