-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
A similar issue (#2427) focuses on exposing Orleans over HTTP, however the proposal here is to make Orleans more accessible to standard .NET developers by providing the silo via an intermediary NuGet package which embeds Orleans into an existing ASP.NET project.
Some assumptions and opinions:
- Microservices are becoming more popular and developers building them favour the simplicity of executing a single process (potentially in a container) which represents the application tier of their service.
- The vast majority of .NET developers (a large potential customer base of Orleans) are familiar with the ASP.NET stack and develop stateless web application on it.
- ASP.NET applications provide no consensus / clustering protocol out of the box, therefore state is usually held in the database, occasionally in memory, and sometimes in separate caching technologies.
The accessibility of Orleans is currently impeded (at least in part) by a non-trivial complexity in developing and orchestrating the solution behind HTTP endpoints remote from the silo.
Primarily the argument here is not so much a technical one, it's a proposal to open up a large market to Orleans, by enabling easy installation of the Orleans silo into an existing Asp.Net project.
This would be seen as "turbo charging" ASP.NET with features such as caching, streaming, and scheduling.
Example process:
- Developer creates a new ASP.NET Web Application.
- Developer installs the Orleans silo into it via
Install-Package Orleans.AspNet
- The Orleans.AspNet install script creates a default map of routes from ApiControllers to respective Orleans grain instances.
- An example grain class is provided with an example controller method.
I can expand on the details of this, but initially I'm curious to see if there is an appetite / empathy with what I'm proposing and the challenges to adoption that I've felt while on-boarding this technology in a traditional Web API shop.