Orleans 2.0 官方文档 —— 1.4 概览 -> 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的应用程序,可以使用Orleans 2.0。核心团队针对此版本进行测试的重点是完整的.NET Framework,以确保现有应用程序可以轻松地从1.5迁移到2.0,并具有完全向后兼容性。

2.0中最重要的变化如下:

  • 通过利用流式的构建器模式API的依赖注入,完全转移到程序化配置的方式。

保留基于配置对象和XML文件的旧API,是为了向后兼容,但不会向前发展,将来会被弃用。在“ 配置”部分中查看更多详细信息

  • 应用程序集的显式编程规范,取代了silo或客户端初始化时Orleans运行时自动扫描文件夹。

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

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

  • 代码生成的大幅修改。

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

  • 创建了一个Microsoft.Orleans.Core.AbstractionsNuGet包,并将一些类型移动/重构到其中。

grain代码很可能只需要引用这些抽象,而silo主机和客户端将引用更多的Orleans包。我们计划不那么频繁地更新此包。

  • 添加对Scoped服务的支持。

这意味着每个grain激活都会获得自己的作用域服务提供者,Orleans会注册一个上下文IGrainActivationContext对象,可以将其注入到TransientScoped服务中,以访问激活特定信息和grain激活生命周期事件。这类似于ASP.NET Core 2.0为每个Request创建范围上下文的方式,但在Orleans的情况下,它适用于grain激活的整个生命周期。有关服务生命周期的详细信息,请参阅ASP.NET Core文档中的服务生命周期和注册选项。

  • 迁移日志记录基础结构,以使用Microsoft.Extensions.Logging(与ASP.NET Core 2.0相同的抽象)。

  • 2.0包括此测试版支持:分布式的、跨grain交易的ACID。

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

你可能感兴趣的:(Orleans)