Skip to content

Ver.4.0.1

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Nov 10:01
7c5aa59

The Beginning of the C-Core removal journey

We moved the gRPC library used by MagicOnion from the C-core to the C# implementation.
MagicOnion server is built on ASP.NET Core and Kestrel for high performance in combination with .NET 5.0.

  • MagicOnion.Server is now built on ASP.NET Core gRPC services.
    • gRPC C-core dependency has been removed completely in the server.
  • MagicOnion.Client for .NET Standard 2.1 is now depends on Grpc.Net.Client.
    • gRPC C-core is no longer needed on .NET Standard 2.1 (.NET Core 3.x, Xamarin, ...) platform.
    • The client library still supports .NET Standard 2.0 platforms (e.g. .NET Framework 4.6.1, .NET Core 2.x and Unity).

Improvements

  • Adopt .NET 5.0 (#366)
  • Enable nullable reference type annotations (MagicOnion.Server)

Breaking changes

MagicOnion.Hosting and MagicOnion-standalone server are now dropped

Use MagicOnion.Server and ASP.NET Core instead of that.
In other words, MagicOnion server doesn't support non-.NET Core platform (e.g. .NET Framework, Unity, Mono ...).

Reorganize project structure

The server/client monolithic package has been decoupled.

  • MagicOnion: Meta package for MagicOnion.Server and MagicOnion.Client
  • MagicOnion.Client: MagicOnion client library for .NET Standard 2.0/2.1
  • MagicOnion.Client.Unity: MagicOnion client library for Unity 2018 or later (The codes are shared with MagicOnion.Client)
  • MagicOnion.Server: MagicOnion server library for ASP.NET Core 3.1
  • MagicOnion.Server.HttpGateway: Swagger extension for MagicOnion.Server
  • MagicOnion.Server.Redis: Redis extension for MagicOnion.Server
  • MagicOnion.Server.OpenTelemetry: OpenTelemetry extension for MagicOnion.Server (experimental)
  • MagicOnion.Server.Authentication: Authentication extension for MagicOnion.Server (preview)
  • MagicOnion.Shared: Shared internal utilities for the client and server.

Use IMagicOnionClientLogger instead of Grpc.Core.Logging.ILogger

Grpc.Core.Logging.ILogger API is part of C-core library.

Remove DefaultGroupRepositoryFactory

If you are using MagicOnion.Redis, use UseRedisGroupRepository(Action<RedisGroupOptions> configure, bool registerAsDefault = false) instead.

services.AddMagicOnion()
    .UseRedisGroupRepository(options =>
    {
        options.ConnectionMultiplexer = StackExchange.Redis.ConnectionMultiplexer.Connect("localhost:6379");
    });
// If you want to use Redis backplane by default, you can specify `registerAsDefault: true`.
services.AddMagicOnion()
    .UseRedisGroupRepository(options => { ... }, registerAsDefault: true);

Fixes from 4.0.0

  • Move namespace Microsoft.AspNetCore.Routing -> Microsoft.AspNetCore.Builder (#370)