Wednesday, 10 October 2012

Next features to add to C# Web REPL, can you help?

If you are looking for coding ideas around the O2 Platform, the recently released C# Web REPL is a great place to start (see post Web-based C# REPL (key milestone in O2's development )

The code is at GitHub (https://github.com/o2platform/Web_CSharp_REPL) and it can be opened in VisualStudio (or pushed to AppHarbor or Azure)

Here are some ideas for the the next batch of features that we should add to this web tool:

  • Add a 'Save and share' like the https://compilify.net and http://jsfiddle.net do 
    • maybe with the option to email the user
    • maybe implemented as GISTs (small git repositories with only a couple scripts)
  • Add a 'Clear Script' button
  • Create a view for the execution logs (currently shown as a XML dump: http://csharp-repl.apphb.com/CSharp_REPL.asmx/CurrentLogFile_Contents )
    • maybe with a real-time view of scripts executed (using AJAX to refresh)
  • Add Code Samples that can be directly invoked (maybe from a treeview or dropdown box)
    • This is probably the single most important feature to add since it would really allow for the easy consumption and use of this GUI
  • Auto compile checks, where (similar to what happens with the Windows or VisualStudio version of this REPL environment) the user gets 'semi-real-time' feedback on any errors
  • Show compilation errors in a separate window
  • Security: (since the code is running with Full Trust and has access to O2's APIs this web interface could be abused quite easily)
    • Add OAuth (maybe to tie a user execution to a Google account?)
    • Scan Scripts with Cat.NET before executing (and maybe require special privs to execute them)
      • actually, if we can detect the 'vuln/exploit code' before its execution, we could even change the GUI to go red  (like we here
      • we could also show security guidance to the user (from OWASP.org or TeamMentor.net)
    • Add AppSensor like capabilities (to detect abuse and change the app behaviour accordingly)
    • Option to run scripts in Partial Trust

  • Add CodeComplete (which will make a massive difference when using the O2's FluentSharp APIs)
  • Consume it from an windows-based O2 C# REPL environment (this would allow for example for the short-term use of Auto-Complete and better AST error reporting provided by Roslyn)
  • ...something you you really want and it is not on this list... (i.e. you have an itch to scratch)

So get a GitHub account, fork the https://github.com/o2platform/Web_CSharp_REPL repository, add some features and send me a Pull Request