Orleans 3.0 Released

The latest release of Orleans, 3.0, features Distributed ACID transactions and a new scheduler.

Recently, the Orleans team announced the release of Orleans 3.0, which brings a great number of enhancements and fixes, as well as several new features.
 
Orleans 
Orleans referred as distributed .NET is a cross-platform framework for building robust, scalable distributed applications. Orleans scales from a single on-premises server to globally distributed, highly-available applications in the cloud.
 
Orleans project was created by Microsoft Research and introduced the Virtual Actor Model as a novel approach to building a new generation of distributed systems for the Cloud era. The core contribution of Orleans is its programming model which tames the complexity inherent to highly-parallel distributed systems without restricting capabilities or imposing onerous constraints on the developer.
 
Some of the significant updates of the new release are:
  • Distributed ACID transactions - the new version enables multiple grains to join a transaction regardless of where their state is stored.
  • A new scheduler, which is able to increase performance upto 30% in some cases.
  • A new code generator, which is based on Roslyn code analysis.
  • Rewritten cluster membership for improved recovery speed
  • Co-hosting support
This release has introduced TLS support, which is available via the Microsoft.Orleans.Connections.Security package. 3.0 has replaced the entire networking layer with one built on top of Project Bedrock, enabling developers to build fast and robust network clients and servers.
 
Well, Co-hosting Orleans with other frameworks, such as ASP.NET Core, in the same process has become much simpler because of .NET Generic Host.
 
For example, the below code adds Orleans alongside ASP.NET Core to a host using UseOrleans
  1. var host = new HostBuilder()  
  2.   .ConfigureWebHostDefaults(webBuilder =>  
  3.   {  
  4.     // Configure ASP.NET Core  
  5.     webBuilder.UseStartup<Startup>();  
  6.   })  
  7.   .UseOrleans(siloBuilder =>  
  8.   {  
  9.     // Configure Orleans  
  10.     siloBuilder.UseLocalHostClustering();  
  11.   })  
  12.   .ConfigureLogging(logging =>  
  13.   {  
  14.     /* Configure cross-cutting concerns such as logging */  
  15.   })  
  16.   .ConfigureServices(services =>  
  17.   {  
  18.     /* Configure shared services */  
  19.   })  
  20.   .UseConsoleLifetime()  
  21.   .Build();  
  22.   
  23. // Start the host and wait for it to stop.  
  24. await host.RunAsync();  
Source: Microsoft 
 
You can share a service provider with other hosted services by using the generic host builder. This will grant these services access to Orleans. For instance, you can inject IClusterClient or IGrainFactory into an ASP.NET Core MVC controller and call grains right from their MVC application.
 
To learn more you can visit the official announcement here.