1.3 Orleans 2.0介绍

<<返回目录

Orleans 2.0

2.0是Orleans 的主要版本,其主要目标是兼容.NET Standard 2.0并通过.NET Core实现跨平台。作为这项工作的一部分,Orleans API更加符合现代化的配置,就像配置和托管Asp.NET应用一样。

由于它与.NET Standard 2.0兼容,因此面向.NET Core或.NET Framework Full 的应用程序可以使用Orleans 2.0。核心团队对此版本进行测试的重点是完整的.NET Framework,以确保现有应用程序可以轻松地从1.5迁移到2.0,并具有完全向后兼容性。

2.0中最重要的变化如下:

  • 完全转移到程序化配置,利用依赖注入和流式构建器API。
    旧的API中,基于配置对象和XML文件的配置为实现向后兼容而保留,但不会继续支持,将来会被弃用。在“配置”部分中查看更多详细信息

  • 应用程序集的显式编程规范,用于在 Silo 或 Client 初始化时替换Orleans运行时对文件夹的自动扫描。

Orleans 仍会自动在指定的程序集中找到相关类型,例如 Grain 接口和类,序列化程序等,但它将不再尝试加载它可以在文件夹中找到的每个程序集。提供了用于加载文件夹中所有程序集的可选辅助方法,以实现向后兼容:IApplicationPartManager.AddFromApplicationBaseDirectory()

有关详细信息,请参阅配置和迁移部分。

  • 代码生成的改造。

虽然对于开发人员来说几乎是不可见的,但代码生成在处理各种可能类型的序列化方面变得更加健壮。F#组件需要特殊处理。有关详细信息,请参阅代码生成部分。

  • 创建了一个Microsoft.Orleans.Core.Abstractions NuGet包,并将几种类型移动/重构。

Grain 代码很可能只需要引用这些抽象,而 Silo 主机和 Client 将引用更多的 Orleans 包。我们计划不会频繁地更新这个包。

  • 添加对Scoped服务的支持。
    这意味着每个 Grain 激活都会获得自己的Scope Provider,Orleans会注册一个上下文IGrainActivationContext对象,该对象可以注入到TransientScoped服务中,以访问激活的特定信息和Grain激活的生命周期事件。这与ASP.NET Core 2.0为每个Request创建Scope上下文的方式类似,但在Orleans的情况下,它适用于 Grain 激活的整个生命周期。有关服务生命周期的更多信息,请参阅ASP.NET Core文档中的服务生命周期和注册选项。

  • 迁移日志组件,以使用Microsoft.Extensions.Logging(与ASP.NET Core 2.0相同的抽象)。

  • 2.0包括对ACID分布式跨 Grain 交易的测试版支持。

该功能将为原型设计和开发做好准备,并将在2.0版本之后的某个时间提供生产使用。有关详细信息,请参阅事务

你可能感兴趣的:(1.3 Orleans 2.0介绍)