There should be a PowerShell SnapIn with a set of CmdLet's for managing Orleans Silos. The SnapIn should provide the possibility to add and remove applications to the silo while the application is still running.
Examples:
References:
PorwerShell cmdlets would be great no doubt. OrleansManager was meant to provide some similar functionality. Should the cmdlets be wrappers on top of OrleansManager.exe or re-implement its functionality? OrleansManager communicates via ManagementGrain leveraging Orleans messaging.
However, the add/remove application functionality isn't supported in the silo code yet.
Reimplementing the functionality would duplicate functionality and therefore increase the amount of code to manage too much.
However, a simple wrapper would not be too nice either. I would rather put the common functionality into a separate OrleansManagement.dll.
Is there any benefit in introducing OrleansManagement.dll vs. exposing the same refactored common functionality from the OrleansManager.exe assembly directly?
it's more about the Separation of Concerns (SoC) principle than for technical reasons. Technically we could put everything in the same file or one UI library on top of the other.
I believe it is preferable from the design perspective, to separate the (console) user interface(s) from the business logic into separate libraries. This way it is possible to introduce a change in one UI without effecting tho other UI.
Makes sense. Are you interested in crafting a PR for this?
Interested yes, but already busy with an side project for an NGO, which currently has priority for me...
@galvesribeiro added a PS plugin in https://github.com/dotnet/orleans/pull/1990.
Just to let everyone here know. The PS plugin on main isn't published to Powershell galery yet. It is tested (I used a lot in production since I created it) but it still requires you to clone the repo, build and import it.
When @jdom get back I'll align with him the build and sign process so we can publish there. There is also some instructions on how to use it here. Feel free to ping me on gitter open an issue in case you have any problems.
:smile: