1. 程式人生 > >Orleans 2.0官方文件(閆輝的個人翻譯)——1.3 Orleans 2.0

Orleans 2.0官方文件(閆輝的個人翻譯)——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的應用程式可以使用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版本之後的某個時間成熟。有關詳細資訊,請參閱事務