Skip to content
Draft
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,39 @@
# API difference between .NET 9.0 GA and .NET 10.0 GA

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

* [Microsoft.AspNetCore](10.0.0_Microsoft.AspNetCore.md)
* [Microsoft.AspNetCore.Authentication.Abstractions](10.0.0_Microsoft.AspNetCore.Authentication.Abstractions.md)
* [Microsoft.AspNetCore.Components](10.0.0_Microsoft.AspNetCore.Components.md)
* [Microsoft.AspNetCore.Components.Endpoints](10.0.0_Microsoft.AspNetCore.Components.Endpoints.md)
* [Microsoft.AspNetCore.Components.Server](10.0.0_Microsoft.AspNetCore.Components.Server.md)
* [Microsoft.AspNetCore.Components.Web](10.0.0_Microsoft.AspNetCore.Components.Web.md)
* [Microsoft.AspNetCore.Connections.Abstractions](10.0.0_Microsoft.AspNetCore.Connections.Abstractions.md)
* [Microsoft.AspNetCore.Diagnostics](10.0.0_Microsoft.AspNetCore.Diagnostics.md)
* [Microsoft.AspNetCore.Hosting](10.0.0_Microsoft.AspNetCore.Hosting.md)
* [Microsoft.AspNetCore.Hosting.Abstractions](10.0.0_Microsoft.AspNetCore.Hosting.Abstractions.md)
* [Microsoft.AspNetCore.Http.Abstractions](10.0.0_Microsoft.AspNetCore.Http.Abstractions.md)
* [Microsoft.AspNetCore.Http.Extensions](10.0.0_Microsoft.AspNetCore.Http.Extensions.md)
* [Microsoft.AspNetCore.Http.Results](10.0.0_Microsoft.AspNetCore.Http.Results.md)
* [Microsoft.AspNetCore.HttpOverrides](10.0.0_Microsoft.AspNetCore.HttpOverrides.md)
* [Microsoft.AspNetCore.Identity](10.0.0_Microsoft.AspNetCore.Identity.md)
* [Microsoft.AspNetCore.Mvc.Abstractions](10.0.0_Microsoft.AspNetCore.Mvc.Abstractions.md)
* [Microsoft.AspNetCore.Mvc.Core](10.0.0_Microsoft.AspNetCore.Mvc.Core.md)
* [Microsoft.AspNetCore.Mvc.TagHelpers](10.0.0_Microsoft.AspNetCore.Mvc.TagHelpers.md)
* [Microsoft.AspNetCore.Routing](10.0.0_Microsoft.AspNetCore.Routing.md)
* [Microsoft.AspNetCore.Server.HttpSys](10.0.0_Microsoft.AspNetCore.Server.HttpSys.md)
* [Microsoft.AspNetCore.Server.Kestrel.Core](10.0.0_Microsoft.AspNetCore.Server.Kestrel.Core.md)
* [Microsoft.Extensions.Caching.Abstractions](10.0.0_Microsoft.Extensions.Caching.Abstractions.md)
* [Microsoft.Extensions.Caching.Memory](10.0.0_Microsoft.Extensions.Caching.Memory.md)
* [Microsoft.Extensions.Configuration](10.0.0_Microsoft.Extensions.Configuration.md)
* [Microsoft.Extensions.DependencyInjection.Abstractions](10.0.0_Microsoft.Extensions.DependencyInjection.Abstractions.md)
* [Microsoft.Extensions.FileSystemGlobbing](10.0.0_Microsoft.Extensions.FileSystemGlobbing.md)
* [Microsoft.Extensions.Identity.Core](10.0.0_Microsoft.Extensions.Identity.Core.md)
* [Microsoft.Extensions.Identity.Stores](10.0.0_Microsoft.Extensions.Identity.Stores.md)
* [Microsoft.Extensions.Logging](10.0.0_Microsoft.Extensions.Logging.md)
* [Microsoft.Extensions.Logging.Abstractions](10.0.0_Microsoft.Extensions.Logging.Abstractions.md)
* [Microsoft.Extensions.Validation](10.0.0_Microsoft.Extensions.Validation.md)
* [Microsoft.JSInterop](10.0.0_Microsoft.JSInterop.md)
* [System.Formats.Cbor](10.0.0_System.Formats.Cbor.md)
* [System.Threading.RateLimiting](10.0.0_System.Threading.RateLimiting.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Microsoft.AspNetCore.Authentication.Abstractions

```diff
namespace Microsoft.AspNetCore.Authentication
{
public static class AuthenticationTokenExtensions
{
- public static bool UpdateTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string tokenName, string tokenValue);
+ public static bool UpdateTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties properties, string tokenName, string? tokenValue);
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Microsoft.AspNetCore.Components.Endpoints

```diff
namespace Microsoft.AspNetCore.Components
{
+ public sealed class ResourcePreloader : Microsoft.AspNetCore.Components.IComponent
+ {
+ public ResourcePreloader();
+ }
}
namespace Microsoft.Extensions.DependencyInjection
{
+ public static class RazorComponentsRazorComponentBuilderExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IRazorComponentsBuilder RegisterPersistentService<TPersistentService>(this Microsoft.Extensions.DependencyInjection.IRazorComponentsBuilder builder, Microsoft.AspNetCore.Components.IComponentRenderMode renderMode);
+ }
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Microsoft.AspNetCore.Components.Server

```diff
namespace Microsoft.AspNetCore.Components.Server
{
public sealed class CircuitOptions
{
+ public Microsoft.Extensions.Caching.Hybrid.HybridCache? HybridPersistenceCache { get; set; }
+ public System.TimeSpan? PersistedCircuitDistributedRetentionPeriod { get; set; }
+ public int PersistedCircuitInMemoryMaxRetained { get; set; }
+ public System.TimeSpan PersistedCircuitInMemoryRetentionPeriod { get; set; }
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Microsoft.AspNetCore.Components.Web

```diff
namespace Microsoft.AspNetCore.Components.Forms
{
+ public class InputHidden : Microsoft.AspNetCore.Components.Forms.InputBase<string?>
+ {
+ public InputHidden();
+ protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder);
+ protected override bool TryParseValueFromString(string? value, out string? result, out string? validationErrorMessage);
+ public Microsoft.AspNetCore.Components.ElementReference? Element { get; protected set; }
+ }
}
namespace Microsoft.AspNetCore.Components.Routing
{
public class NavLink : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable
{
+ protected virtual bool ShouldMatch(string uriAbsolute);
}
}
namespace Microsoft.AspNetCore.Components.Web.Internal
{
public interface IInternalWebJSInProcessRuntime
{
+ string InvokeJS(in Microsoft.JSInterop.Infrastructure.JSInvocationInfo invocationInfo);
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Microsoft.AspNetCore.Components

```diff
namespace Microsoft.AspNetCore.Components
{
public abstract class NavigationManager
{
+ public event System.EventHandler<Microsoft.AspNetCore.Components.Routing.NotFoundEventArgs> OnNotFound { add; remove; }
+ public void NotFound();
}
public abstract class OwningComponentBase : Microsoft.AspNetCore.Components.ComponentBase, System.IDisposable, System.IAsyncDisposable
{
+ protected virtual System.Threading.Tasks.ValueTask DisposeAsyncCore();
}
public class PersistentComponentState
{
+ public Microsoft.AspNetCore.Components.RestoringComponentStateSubscription RegisterOnRestoring(System.Action callback, Microsoft.AspNetCore.Components.RestoreOptions options);
}
+ [System.Diagnostics.DebuggerDisplayAttribute("{GetDebuggerDisplay(),nq}")]
public sealed class RendererInfo
{
}
public sealed class ResourceAsset
{
- public ResourceAsset(string url, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.ResourceAssetProperty>? properties);
+ public ResourceAsset(string url, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Components.ResourceAssetProperty>? properties = null);
}
public class RouteView : Microsoft.AspNetCore.Components.IComponent
{
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute("Trimming", "IL2110", Justification = "Layout components are preserved because the LayoutAttribute constructor parameter is correctly annotated.")]
protected virtual void Render(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder);
}
+ public abstract class PersistentComponentStateSerializer<T>
+ {
+ protected PersistentComponentStateSerializer();
+ public abstract void Persist(T value, System.Buffers.IBufferWriter<byte> writer);
+ public abstract T Restore(System.Buffers.ReadOnlySequence<byte> data);
+ }
+ public sealed class PersistentStateAttribute : Microsoft.AspNetCore.Components.CascadingParameterAttributeBase
+ {
+ public PersistentStateAttribute();
+ public bool AllowUpdates { get; set; }
+ public Microsoft.AspNetCore.Components.RestoreBehavior RestoreBehavior { get; set; }
+ }
+ [System.FlagsAttribute]
+ public enum RestoreBehavior
+ {
+ Default = 0,
+ SkipInitialValue = 1,
+ SkipLastSnapshot = 2,
+ }
+ public sealed class RestoreContext
+ {
+ public static Microsoft.AspNetCore.Components.RestoreContext InitialValue { get; }
+ public static Microsoft.AspNetCore.Components.RestoreContext LastSnapshot { get; }
+ public static Microsoft.AspNetCore.Components.RestoreContext ValueUpdate { get; }
+ }
+ public readonly struct RestoreOptions
+ {
+ public RestoreOptions();
+ public bool AllowUpdates { get; init; }
+ public Microsoft.AspNetCore.Components.RestoreBehavior RestoreBehavior { get; init; }
+ }
+ public readonly struct RestoringComponentStateSubscription : System.IDisposable
+ {
+ public readonly void Dispose();
+ }
}
namespace Microsoft.AspNetCore.Components.Infrastructure
{
public class ComponentStatePersistenceManager
{
+ public ComponentStatePersistenceManager(Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Components.Infrastructure.ComponentStatePersistenceManager> logger, System.IServiceProvider serviceProvider);
+ public System.Threading.Tasks.Task RestoreStateAsync(Microsoft.AspNetCore.Components.IPersistentComponentStateStore store, Microsoft.AspNetCore.Components.RestoreContext context);
+ public void SetPlatformRenderMode(Microsoft.AspNetCore.Components.IComponentRenderMode renderMode);
}
+ public static class ComponentsMetricsServiceCollectionExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddComponentsMetrics(Microsoft.Extensions.DependencyInjection.IServiceCollection services);
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddComponentsTracing(Microsoft.Extensions.DependencyInjection.IServiceCollection services);
+ }
+ public static class PersistentStateProviderServiceCollectionExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddSupplyValueFromPersistentComponentStateProvider(this Microsoft.Extensions.DependencyInjection.IServiceCollection services);
+ }
+ public static class RegisterPersistentComponentStateServiceCollectionExtensions
+ {
+ public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddPersistentServiceRegistration<TService>(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.AspNetCore.Components.IComponentRenderMode componentRenderMode);
+ }
}
namespace Microsoft.AspNetCore.Components.Rendering
{
public class ComponentState : System.IAsyncDisposable
{
+ protected internal virtual object? GetComponentKey();
+ protected internal Microsoft.AspNetCore.Components.RenderTree.Renderer Renderer { get; }
}
}
namespace Microsoft.AspNetCore.Components.Routing
{
public interface IHostEnvironmentNavigationManager
{
+ void Initialize(string baseUri, string uri, System.Func<string, System.Threading.Tasks.Task> onNavigateTo);
}
public class Router : Microsoft.AspNetCore.Components.IComponent, Microsoft.AspNetCore.Components.IHandleAfterRender, System.IDisposable
{
+ [System.ObsoleteAttribute("NotFound is deprecated. Use NotFoundPage instead.")]
public Microsoft.AspNetCore.Components.RenderFragment NotFound { get; set; }
- [System.ObsoleteAttribute("This property is obsolete and configuring it has not effect.")]
+ [System.ObsoleteAttribute("This property is obsolete and configuring it has no effect.")]
public bool PreferExactMatches { get; set; }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute((System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes)(-1))]
+ public System.Type? NotFoundPage { get; set; }
}
+ public sealed class NotFoundEventArgs : System.EventArgs
+ {
+ public NotFoundEventArgs();
+ public string? Path { get; set; }
+ }
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Microsoft.AspNetCore.Connections.Abstractions

```diff
namespace Microsoft.AspNetCore.Connections
{
+ public interface IMemoryPoolFactory<T>
+ {
+ System.Buffers.MemoryPool<T> Create(Microsoft.AspNetCore.Connections.MemoryPoolOptions? options = null);
+ }
+ public class MemoryPoolOptions
+ {
+ public MemoryPoolOptions();
+ public string? Owner { get; set; }
+ }
}
namespace Microsoft.AspNetCore.Connections.Features
{
public interface ITlsHandshakeFeature
{
+ [System.ObsoleteAttribute("KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherStrength, HashAlgorithm and HashStrength properties are obsolete. Use NegotiatedCipherSuite instead.", DiagnosticId = "SYSLIB0058", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")]
System.Security.Authentication.CipherAlgorithmType CipherAlgorithm { get; }
+ [System.ObsoleteAttribute("KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherStrength, HashAlgorithm and HashStrength properties are obsolete. Use NegotiatedCipherSuite instead.", DiagnosticId = "SYSLIB0058", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")]
int CipherStrength { get; }
+ [System.ObsoleteAttribute("KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherStrength, HashAlgorithm and HashStrength properties are obsolete. Use NegotiatedCipherSuite instead.", DiagnosticId = "SYSLIB0058", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")]
System.Security.Authentication.HashAlgorithmType HashAlgorithm { get; }
+ [System.ObsoleteAttribute("KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherStrength, HashAlgorithm and HashStrength properties are obsolete. Use NegotiatedCipherSuite instead.", DiagnosticId = "SYSLIB0058", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")]
int HashStrength { get; }
+ [System.ObsoleteAttribute("KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherStrength, HashAlgorithm and HashStrength properties are obsolete. Use NegotiatedCipherSuite instead.", DiagnosticId = "SYSLIB0058", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")]
System.Security.Authentication.ExchangeAlgorithmType KeyExchangeAlgorithm { get; }
+ [System.ObsoleteAttribute("KeyExchangeAlgorithm, KeyExchangeStrength, CipherAlgorithm, CipherStrength, HashAlgorithm and HashStrength properties are obsolete. Use NegotiatedCipherSuite instead.", DiagnosticId = "SYSLIB0058", UrlFormat = "https://aka.ms/dotnet-warnings/{0}")]
int KeyExchangeStrength { get; }
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Microsoft.AspNetCore.Diagnostics

```diff
namespace Microsoft.AspNetCore.Builder
{
public class ExceptionHandlerOptions
{
+ public System.Func<Microsoft.AspNetCore.Diagnostics.ExceptionHandlerSuppressDiagnosticsContext, bool>? SuppressDiagnosticsCallback { get; set; }
}
public static class StatusCodePagesExtensions
{
- public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathFormat, string? queryFormat = null);
+ public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathFormat, string queryFormat);
+ public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathFormat, string? queryFormat = null, bool createScopeForStatusCodePages = false);
}
public class StatusCodePagesOptions
{
+ public bool CreateScopeForStatusCodePages { get; set; }
}
}
namespace Microsoft.AspNetCore.Diagnostics
{
+ public enum ExceptionHandledType
+ {
+ Unhandled = 0,
+ ExceptionHandlerService = 1,
+ ProblemDetailsService = 2,
+ ExceptionHandlerDelegate = 3,
+ ExceptionHandlingPath = 4,
+ }
+ public sealed class ExceptionHandlerSuppressDiagnosticsContext
+ {
+ public ExceptionHandlerSuppressDiagnosticsContext();
+ public required System.Exception Exception { get; init; }
+ public required Microsoft.AspNetCore.Diagnostics.ExceptionHandledType ExceptionHandledBy { get; init; }
+ public required Microsoft.AspNetCore.Http.HttpContext HttpContext { get; init; }
+ }
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Microsoft.AspNetCore.Hosting.Abstractions

```diff
namespace Microsoft.AspNetCore.Hosting
{
+ [System.ObsoleteAttribute("IWebHost is obsolete. Use IHost instead. For more information, visit https://aka.ms/aspnet/deprecate/008.", DiagnosticId = "ASPDEPR008", UrlFormat = "https://aka.ms/aspnet/deprecate/008")]
public interface IWebHost : System.IDisposable
{
}
public interface IWebHostBuilder
{
+ [System.ObsoleteAttribute("IWebHost is obsolete. Use IHost instead. For more information, visit https://aka.ms/aspnet/deprecate/008.", DiagnosticId = "ASPDEPR008", UrlFormat = "https://aka.ms/aspnet/deprecate/008")]
Microsoft.AspNetCore.Hosting.IWebHost Build();
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Microsoft.AspNetCore.Hosting

```diff
namespace Microsoft.AspNetCore.Hosting
{
+ [System.ObsoleteAttribute("WebHostBuilder is deprecated in favor of HostBuilder and WebApplicationBuilder. For more information, visit https://aka.ms/aspnet/deprecate/004.", DiagnosticId = "ASPDEPR004", UrlFormat = "https://aka.ms/aspnet/deprecate/004")]
public class WebHostBuilder : Microsoft.AspNetCore.Hosting.IWebHostBuilder
{
}
+ [System.ObsoleteAttribute("WebHostExtensions is obsolete. Use Host.CreateDefaultBuilder or WebApplication.CreateBuilder instead. For more information, visit https://aka.ms/aspnet/deprecate/008.", DiagnosticId = "ASPDEPR008", UrlFormat = "https://aka.ms/aspnet/deprecate/008")]
public static class WebHostExtensions
{
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Microsoft.AspNetCore.Http.Abstractions

```diff
namespace Microsoft.AspNetCore.Http
{
public static class HttpMethods
{
+ public static readonly string Query;
+ public static bool IsQuery(string method);
}
public sealed class ProducesResponseTypeMetadata : Microsoft.AspNetCore.Http.Metadata.IProducesResponseTypeMetadata
{
+ public string? Description { get; set; }
}
}
namespace Microsoft.AspNetCore.Http.Metadata
{
public interface IProducesResponseTypeMetadata
{
+ string? Description { get; }
}
+ public interface IAllowCookieRedirectMetadata
+ {
+ }
+ public interface IDisableCookieRedirectMetadata
+ {
+ }
+ public interface IDisableValidationMetadata
+ {
+ }
}
```
Loading