diff --git a/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2.md b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2.md new file mode 100644 index 00000000000..ac73f767026 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2.md @@ -0,0 +1,11 @@ +# API Difference net5.0-rc1 vs net5.0-rc2 + +API listing follows standard diff formatting. Lines preceded by a '+' are +additions and a '-' indicates removal. + +* [System.Diagnostics](5.0-rc2_System.Diagnostics.md) +* [System.Globalization](5.0-rc2_System.Globalization.md) +* [System.Net](5.0-rc2_System.Net.md) +* [System.Net.Connections](5.0-rc2_System.Net.Connections.md) +* [System.Net.Http](5.0-rc2_System.Net.Http.md) + diff --git a/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Diagnostics.md b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Diagnostics.md new file mode 100644 index 00000000000..9b3c3100a2e --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Diagnostics.md @@ -0,0 +1,11 @@ +# System.Diagnostics + +``` diff + namespace System.Diagnostics { + public readonly struct ActivityContext : IEquatable { +- public ActivityContext(ActivityTraceId traceId, ActivitySpanId spanId, ActivityTraceFlags traceOptions, string traceState = null, bool isRemote = false); ++ public ActivityContext(ActivityTraceId traceId, ActivitySpanId spanId, ActivityTraceFlags traceFlags, string traceState = null, bool isRemote = false); + } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Globalization.md b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Globalization.md new file mode 100644 index 00000000000..ba566b5db18 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Globalization.md @@ -0,0 +1,11 @@ +# System.Globalization + +``` diff + namespace System.Globalization { + public sealed class CompareInfo : IDeserializationCallback { +- public bool IsPrefix(ReadOnlySpan source, ReadOnlySpan suffix, CompareOptions options, out int matchLength); ++ public bool IsPrefix(ReadOnlySpan source, ReadOnlySpan prefix, CompareOptions options, out int matchLength); + } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.Connections.md b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.Connections.md new file mode 100644 index 00000000000..939af10d7c6 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.Connections.md @@ -0,0 +1,125 @@ +# System.Net.Connections + +``` diff +-namespace System.Net.Connections { + { +- public abstract class Connection : ConnectionBase { + { +- protected Connection(); + +- public IDuplexPipe Pipe { get; } + +- public Stream Stream { get; } + +- protected virtual IDuplexPipe CreatePipe(); + +- protected virtual Stream CreateStream(); + +- public static Connection FromPipe(IDuplexPipe pipe, bool leaveOpen = false, IConnectionProperties properties = null, EndPoint localEndPoint = null, EndPoint remoteEndPoint = null); + +- public static Connection FromStream(Stream stream, bool leaveOpen = false, IConnectionProperties properties = null, EndPoint localEndPoint = null, EndPoint remoteEndPoint = null); + +- } +- public abstract class ConnectionBase : IAsyncDisposable, IDisposable { + { +- protected ConnectionBase(); + +- public abstract IConnectionProperties ConnectionProperties { get; } + +- public abstract EndPoint LocalEndPoint { get; } + +- public abstract EndPoint RemoteEndPoint { get; } + +- public ValueTask CloseAsync(ConnectionCloseMethod method = ConnectionCloseMethod.GracefulShutdown, CancellationToken cancellationToken = default(CancellationToken)); + +- protected abstract ValueTask CloseAsyncCore(ConnectionCloseMethod method, CancellationToken cancellationToken); + +- public void Dispose(); + +- public ValueTask DisposeAsync(); + +- } +- public enum ConnectionCloseMethod { + { +- Abort = 1, + +- GracefulShutdown = 0, + +- Immediate = 2, + +- } +- public static class ConnectionExtensions { + { +- public static ConnectionFactory Filter(this ConnectionFactory factory, Func> filter); + +- public static bool TryGet(this IConnectionProperties properties, out T property); + +- } +- public abstract class ConnectionFactory : IAsyncDisposable, IDisposable { + { +- protected ConnectionFactory(); + +- public abstract ValueTask ConnectAsync(EndPoint endPoint, IConnectionProperties options = null, CancellationToken cancellationToken = default(CancellationToken)); + +- public void Dispose(); + +- protected virtual void Dispose(bool disposing); + +- public ValueTask DisposeAsync(); + +- protected virtual ValueTask DisposeAsyncCore(); + +- } +- public abstract class ConnectionListener : IAsyncDisposable, IDisposable { + { +- protected ConnectionListener(); + +- public abstract IConnectionProperties ListenerProperties { get; } + +- public abstract EndPoint LocalEndPoint { get; } + +- public abstract ValueTask AcceptAsync(IConnectionProperties options = null, CancellationToken cancellationToken = default(CancellationToken)); + +- public void Dispose(); + +- protected virtual void Dispose(bool disposing); + +- public ValueTask DisposeAsync(); + +- protected virtual ValueTask DisposeAsyncCore(); + +- } +- public abstract class ConnectionListenerFactory : IAsyncDisposable, IDisposable { + { +- protected ConnectionListenerFactory(); + +- public void Dispose(); + +- protected virtual void Dispose(bool disposing); + +- public ValueTask DisposeAsync(); + +- protected virtual ValueTask DisposeAsyncCore(); + +- public abstract ValueTask ListenAsync(EndPoint endPoint, IConnectionProperties options = null, CancellationToken cancellationToken = default(CancellationToken)); + +- } +- public interface IConnectionProperties { + { +- bool TryGet(Type propertyKey, out object property); + +- } +- public class SocketsConnectionFactory : ConnectionFactory { + { +- public SocketsConnectionFactory(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType); + +- public SocketsConnectionFactory(SocketType socketType, ProtocolType protocolType); + +- public override ValueTask ConnectAsync(EndPoint endPoint, IConnectionProperties options = null, CancellationToken cancellationToken = default(CancellationToken)); + +- protected virtual Socket CreateSocket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType, EndPoint endPoint, IConnectionProperties options); + +- } +-} +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.Http.md b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.Http.md new file mode 100644 index 00000000000..c4766a4d004 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.Http.md @@ -0,0 +1,24 @@ +# System.Net.Http + +``` diff + namespace System.Net.Http { ++ public sealed class SocketsHttpConnectionContext { ++ public DnsEndPoint DnsEndPoint { get; } ++ public HttpRequestMessage InitialRequestMessage { get; } ++ } + public sealed class SocketsHttpHandler : HttpMessageHandler { ++ public Func> ConnectCallback { get; set; } +- public ConnectionFactory ConnectionFactory { get; set; } + +- public Func> PlaintextFilter { get; set; } + ++ public Func> PlaintextStreamFilter { get; set; } + } ++ public sealed class SocketsHttpPlaintextStreamFilterContext { ++ public HttpRequestMessage InitialRequestMessage { get; } ++ public Version NegotiatedHttpVersion { get; } ++ public Stream PlaintextStream { get; } ++ } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.md b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.md new file mode 100644 index 00000000000..b62b365224c --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/.Net/5.0-rc2_System.Net.md @@ -0,0 +1,37 @@ +# System.Net + +``` diff + namespace System.Net { +- public enum NetworkError { + { +- ConnectionAborted = 6, + +- ConnectionRefused = 4, + +- ConnectionReset = 7, + +- EndPointInUse = 1, + +- HostNotFound = 2, + +- OperationAborted = 5, + +- Other = 0, + +- TimedOut = 3, + +- } +- public class NetworkException : IOException { + { +- public NetworkException(NetworkError error, Exception innerException = null); + +- protected NetworkException(SerializationInfo serializationInfo, StreamingContext streamingContext); + +- public NetworkException(string message, NetworkError error, Exception innerException = null); + +- public NetworkError NetworkError { get; } + +- } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2.md b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2.md new file mode 100644 index 00000000000..bb87f4a99a7 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2.md @@ -0,0 +1,11 @@ +# API Difference net5.0-rc1 vs net5.0-rc2 + +API listing follows standard diff formatting. Lines preceded by a '+' are +additions and a '-' indicates removal. + +* [Microsoft.AspNetCore.Builder](5.0-rc2_Microsoft.AspNetCore.Builder.md) +* [Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage](5.0-rc2_Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.md) +* [Microsoft.AspNetCore.Components.Web.Virtualization](5.0-rc2_Microsoft.AspNetCore.Components.Web.Virtualization.md) +* [Microsoft.JSInterop](5.0-rc2_Microsoft.JSInterop.md) +* [Microsoft.JSInterop.Implementation](5.0-rc2_Microsoft.JSInterop.Implementation.md) + diff --git a/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Builder.md b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Builder.md new file mode 100644 index 00000000000..2ce17a4886e --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Builder.md @@ -0,0 +1,13 @@ +# Microsoft.AspNetCore.Builder + +``` diff + namespace Microsoft.AspNetCore.Builder { + public static class ControllerEndpointRouteBuilderExtensions { ++ public static void MapDynamicControllerRoute(this IEndpointRouteBuilder endpoints, string pattern, object state, int order) where TTransformer : DynamicRouteValueTransformer; + } + public static class RazorPagesEndpointRouteBuilderExtensions { ++ public static void MapDynamicPageRoute(this IEndpointRouteBuilder endpoints, string pattern, object state, int order) where TTransformer : DynamicRouteValueTransformer; + } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.md b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.md new file mode 100644 index 00000000000..f57514f60f4 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.md @@ -0,0 +1,24 @@ +# Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage + +``` diff ++namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage { ++ public abstract class ProtectedBrowserStorage { ++ public ValueTask DeleteAsync(string key); ++ public ValueTask> GetAsync(string key); ++ public ValueTask> GetAsync(string purpose, string key); ++ public ValueTask SetAsync(string key, object value); ++ public ValueTask SetAsync(string purpose, string key, object value); ++ } ++ public readonly struct ProtectedBrowserStorageResult { ++ public bool Success { get; } ++ public TValue Value { get; } ++ } ++ public sealed class ProtectedLocalStorage : ProtectedBrowserStorage { ++ public ProtectedLocalStorage(IJSRuntime jsRuntime, IDataProtectionProvider dataProtectionProvider); ++ } ++ public sealed class ProtectedSessionStorage : ProtectedBrowserStorage { ++ public ProtectedSessionStorage(IJSRuntime jsRuntime, IDataProtectionProvider dataProtectionProvider); ++ } ++} +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Components.Web.Virtualization.md b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Components.Web.Virtualization.md new file mode 100644 index 00000000000..4e320c1345c --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.AspNetCore.Components.Web.Virtualization.md @@ -0,0 +1,11 @@ +# Microsoft.AspNetCore.Components.Web.Virtualization + +``` diff + namespace Microsoft.AspNetCore.Components.Web.Virtualization { + public sealed class Virtualize : ComponentBase, IAsyncDisposable, IVirtualizeJsCallbacks { ++ public int OverscanCount { get; set; } ++ public Task RefreshDataAsync(); + } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.JSInterop.Implementation.md b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.JSInterop.Implementation.md new file mode 100644 index 00000000000..65d5fa3303f --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.JSInterop.Implementation.md @@ -0,0 +1,20 @@ +# Microsoft.JSInterop.Implementation + +``` diff ++namespace Microsoft.JSInterop.Implementation { ++ public class JSInProcessObjectReference : JSObjectReference, IAsyncDisposable, IDisposable, IJSInProcessObjectReference, IJSObjectReference { ++ protected internal JSInProcessObjectReference(JSInProcessRuntime jsRuntime, long id); ++ public void Dispose(); ++ public TValue Invoke(string identifier, params object[] args); ++ } ++ public class JSObjectReference : IAsyncDisposable, IJSObjectReference { ++ protected internal JSObjectReference(JSRuntime jsRuntime, long id); ++ protected internal long Id { get; } ++ public ValueTask DisposeAsync(); ++ public ValueTask InvokeAsync(string identifier, object[] args); ++ public ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, object[] args); ++ protected void ThrowIfDisposed(); ++ } ++} +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.JSInterop.md b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.JSInterop.md new file mode 100644 index 00000000000..3d58d7a7ee8 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/Asp.Net/5.0-rc2_Microsoft.JSInterop.md @@ -0,0 +1,58 @@ +# Microsoft.JSInterop + +``` diff + namespace Microsoft.JSInterop { ++ public interface IJSInProcessObjectReference : IAsyncDisposable, IDisposable, IJSObjectReference { ++ TValue Invoke(string identifier, params object[] args); ++ } + public interface IJSInProcessRuntime : IJSRuntime { +- T Invoke(string identifier, params object[] args); + ++ TResult Invoke(string identifier, params object[] args); + } ++ public interface IJSObjectReference : IAsyncDisposable { ++ ValueTask InvokeAsync(string identifier, object[] args); ++ ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, object[] args); ++ } ++ public interface IJSUnmarshalledObjectReference : IAsyncDisposable, IDisposable, IJSInProcessObjectReference, IJSObjectReference { ++ TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2); ++ TResult InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1); ++ TResult InvokeUnmarshalled(string identifier, T0 arg0); ++ TResult InvokeUnmarshalled(string identifier); ++ } +- public class JSInProcessObjectReference : JSObjectReference { + { +- public TValue Invoke(string identifier, params object[] args); + +- } ++ public static class JSInProcessObjectReferenceExtensions { ++ public static void InvokeVoid(this IJSInProcessObjectReference jsObjectReference, string identifier, params object[] args); ++ } +- public class JSObjectReference : IAsyncDisposable { + { +- public ValueTask DisposeAsync(); + +- public ValueTask InvokeAsync(string identifier, params object[] args); + +- public ValueTask InvokeAsync(string identifier, CancellationToken cancellationToken, params object[] args); + +- public ValueTask InvokeVoidAsync(string identifier, params object[] args); + +- protected void ThrowIfDisposed(); + +- } ++ public static class JSObjectReferenceExtensions { ++ public static ValueTask InvokeAsync(this IJSObjectReference jsObjectReference, string identifier, params object[] args); ++ public static ValueTask InvokeAsync(this IJSObjectReference jsObjectReference, string identifier, CancellationToken cancellationToken, params object[] args); ++ public static ValueTask InvokeAsync(this IJSObjectReference jsObjectReference, string identifier, TimeSpan timeout, params object[] args); ++ public static ValueTask InvokeVoidAsync(this IJSObjectReference jsObjectReference, string identifier, params object[] args); ++ public static ValueTask InvokeVoidAsync(this IJSObjectReference jsObjectReference, string identifier, CancellationToken cancellationToken, params object[] args); ++ public static ValueTask InvokeVoidAsync(this IJSObjectReference jsObjectReference, string identifier, TimeSpan timeout, params object[] args); ++ } + public abstract class JSRuntime : IJSRuntime { +- protected static JSCallResultType ResultTypeFromGeneric(); + + } + } +``` + diff --git a/release-notes/5.0/preview/api-diff/rc2/README.md b/release-notes/5.0/preview/api-diff/rc2/README.md new file mode 100644 index 00000000000..87bebfe1150 --- /dev/null +++ b/release-notes/5.0/preview/api-diff/rc2/README.md @@ -0,0 +1,6 @@ +# .NET 5.0 rc2 API Changes + +The following API changes were made in .NET 5.0 Preview 8: + +- [.NET](./.Net/5.0-rc2.md) +- [ASP.NET](./Asp.Net/5.0-rc2.md)