微軟奧爾良Orleans分散式應用框架已是跨平臺
Microsoft Orleans(奧爾良)是.NET的開源程式設計框架,最初由Microsoft Research的eXtreme Computing Group構建,可以使用虛擬角色actor簡化分散式應用程式開發,這些角色是具有自己狀態的單執行緒物件,它們不共享任何記憶體並透過使用非同步遠端過程呼叫交換訊息進行通訊,這些呼叫是按需啟用的,當它們不再使用時被收集並按需要無縫地重新啟用。
因為執行時負責啟用,清理和分發虛擬角色actor(奧爾良稱之為grains),所以開發人員可以編寫他們的程式碼,好像它在一臺機器上執行而不用擔心併發性,Orleans將其擴充套件到儘可能多的伺服器。
當Microsoft 在2015年初開源奧爾良時,它需要.NET Framework,這意味著它只能在Windows Server上執行。2.0版本透過遷移到.NET Core來實現Orleans跨平臺,.NET Core現在可以在Linux和macOS上執行(支援.NET Core 2.0和2.1,因此開發人員無需升級其.NET版本即可使用新奧爾良版本)。
Orleans已經支援依賴注入,主要是允許開發人員在執行時將依賴項注入到自己的應用程式程式碼中,所有內部元件都是可注射的。
奧爾良設計
熟悉的ASP.NET概念使新開發人員更容易學習,還使社群更容易為奧爾良做出貢獻,這對專案來說變得越來越重要。
即將釋出的2.1版本中最大的變化之一是排程程式,它可以處理孤島中數百萬個任務的執行,新的排程程式提供了30%的更高吞吐量 - 它是由GitHub社群成員編寫的。
另一個重要特性是新的程式碼生成器。“奧爾良的一個重要價值主張是它易於使用。您可以編寫程式碼,就像物件是本地的一樣,即使它是遠端的; 為此,我們生成透明的代理類和序列化器。您可以本地編寫程式碼,該程式碼採用特定型別的引數,但需要從一臺機器神奇地轉移到另一臺機器,我們編寫序列化器來執行此操作。“
Orleans 2.1中新程式碼生成包的大部分程式碼也是由社群提供的。這使用Roslyn .NET編譯器的程式碼分析來避免潛在的衝突以及與不同版本的.NET Core SDK衝突的依賴關係。“程式碼生成的新版本使用程式碼來編譯程式碼:它根本不載入程式集,它沒有版本繫結 - 它只是查詢程式碼並生成序列化程式和代理引用的程式碼。”
相關文章
- 微軟奧爾良計劃(Orleans)雲端計算框架開源微軟框架
- .NET分散式框架 | Orleans 知多少分散式框架
- 微軟的分散式應用框架 Dapr Helloworld微軟分散式框架
- MediaPipe - 跨平臺機器學習應用開發框架API機器學習框架
- 對微軟跨平臺通用應用野心的思考微軟
- 微軟開源 .NET 框架 實現跨平臺微軟框架
- 應用跨平臺問題?
- .NET分散式Orleans - 5 - 持久化分散式持久化
- .NET分散式Orleans - 6 - 事件溯源分散式事件
- .NET分散式Orleans - 7 - Streaming分散式
- 分散式平臺分散式
- “奧爾良計劃”專案開源:微軟想讓開發工作變得更簡便微軟
- 一應俱全!開源跨平臺3D應用開發框架Minko3D框架
- 快手分散式高效能圖平臺KGraph及其應用分散式
- .NET分散式Orleans - 3 - Grain放置分散式AI
- 使用 cmake 來搭建跨平臺的應用程式框架:C語言版本框架C語言
- Elixir 分散式平臺分散式
- cordova + vue cli構建跨平臺應用Vue
- 一款開源的跨平臺實時web應用框架——DotNetifyWeb框架
- 跨平臺開發框架的大旗框架
- ComPDFKit: 跨平臺框架PDF SDK框架
- 跨平臺開發框架 Lynx 初探框架
- 使用Electron構建跨平臺的桌面應用
- 分散式流平臺Kafka分散式Kafka
- Flutter 跨平臺框架應用實戰-2019極光開發者大會Flutter框架
- 分散式和叢集區別?什麼是雲端計算平臺?分散式的應用場景?分散式
- dx幫忙::跨異構平臺的分散式事務處理.分散式
- .NET分散式Orleans - 4 - 計時器和提醒分散式
- GStreamer跨平臺多媒體框架框架
- Qt-跨平臺的C++圖形使用者介面應用程式框架(一)QTC++框架
- Electron構建跨平臺應用Mac/Windows/LinuxMacWindowsLinux
- HTML5到跨平臺App應用深度解析HTMLAPP
- Flutter嚐鮮:跨平臺移動應用開發Flutter
- 解析分散式應用框架Ray架構原始碼分散式框架架構原始碼
- 微軟推跨平臺IE瀏覽器 用於開發測試微軟瀏覽器
- 用HTML5+JS開發跨平臺的桌面應用HTMLJS
- 打造企業級微服務平臺架構,分散式應用場景管理微服務架構分散式
- .NET分散式Orleans - 9 - 貪吃蛇專案演示分散式