Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>We actually did just that with our product called iKnode. We are using this idea to create a Backend in the cloud.</p> <p>We did this by creating a SandBox that takes an specific piece of code and executes it, captures the result and returns it to the user. This is all done in the cloud.</p> <blockquote> <p>How would you invoke the compiler, depending on the web server you're using?</p> </blockquote> <p>We did this by using the CodeDom utilities from the .Net framework. And we are exploring the coming 'compiler as a service' project coming from Microsoft code-named Roslyn.</p> <p>This is a good starting point on using <a href="http://support.microsoft.com/kb/304655" rel="nofollow">CodeDom</a> to programatically compile.</p> <blockquote> <p>How could you sandbox the code to prevent malicious behavior? If we're considering only one of the C variants, what about blacklisting/whitelisting specific functions and libraries to prevent malicious behavior? Or would that blacklist be too long and too limiting to allow any fair amount of code to run?</p> </blockquote> <p>We did this by wrapping the code execution in a separate and limited AppDomain. You can see some examples <a href="http://www.java2s.com/Tutorial/CSharp/0240__Assembly/0020__AppDomain.htm" rel="nofollow">here</a>.</p> <p>Additionally, you might want to look into the MonoSandBox, which was created for Moonlight, but it is a more robust SandBox. We are experimenting with it right now, to move away from AppDomains. We believe the MonoSandBox is way better than simple AppDomains.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload