CSharpRepl icon indicating copy to clipboard operation
CSharpRepl copied to clipboard

Remote Console For Web Applications

Open jdobrzanski opened this issue 4 years ago • 1 comments

Feature Description

Nice work!!! I've been waiting for a cross-platform c# REPL, thanks!

A great feature addition would be the ability to "remote console" into running web applications such as is possible with other stack's REPLs (e.g. elixir/erlang). This is very convenient for confirming/tweaking service configurations and executing code for debugging issues. We use this extensively in our phoenix/elixir deployment (with care on production but very helpful for staging too). Obviously this exposes a security risk but can be locked down.

I imagine that the console would run locally and use tcp to send commands and print the results. It would be up to the end-users to ensure secure connections and proper authorization.

The critical piece is that the console should have fun access to the running system and state. Nice-to-haves would be to have access to the IServiceProvider to instantiate instances of services and inspect/set fields/properties or run methods.

jdobrzanski avatar Aug 13 '21 16:08 jdobrzanski

Thanks! I agree, this would be a great feature. I miss it from my time in Clojure.

Implementation-wise, I think it'd make sense to use MIEngine and netcoredbg. This is a similar architecture to what e.g. vscode uses, and gives us debugging over SSH, as well as docker, for "free" without having to define our own protocol. I think it should work for both local and remote and be cross-platform.

See also https://github.com/puremourning/vimspector which uses a similar way of connecting.

waf avatar Aug 14 '21 06:08 waf