从ASP.NET网站编译代码

从ASP.NET网站编译代码,asp.net,.net,compilation,roslyn,Asp.net,.net,Compilation,Roslyn,我需要在ASP.NET页面上有一个文本框,用户可以在其中粘贴代码并选择预设语言C、VB.NET、Python、Ruby等,我需要验证代码是否编译成功。如果没有,那么我需要用行号显示错误和警告 我该怎么做呢?您需要托管各种编译器,以支持和使用它们的API。如果编译器没有公开API,则需要使用System.Diagnostics.Process启动它并获取输出以进行解析 不过,这绝非一项微不足道的任务。 如果你确信你需要这个,问你自己几个问题 您计划支持哪些语言、平台和语言?Python和Ruby,

我需要在ASP.NET页面上有一个文本框,用户可以在其中粘贴代码并选择预设语言C、VB.NET、Python、Ruby等,我需要验证代码是否编译成功。如果没有,那么我需要用行号显示错误和警告


我该怎么做呢?

您需要托管各种编译器,以支持和使用它们的API。如果编译器没有公开API,则需要使用System.Diagnostics.Process启动它并获取输出以进行解析

不过,这绝非一项微不足道的任务。 如果你确信你需要这个,问你自己几个问题

您计划支持哪些语言、平台和语言?Python和Ruby,您是指它们的.NET版本还是希望使用它们的标准编译器?哪个版本? 这些编译器有公共API吗?是否需要将它们作为可执行文件运行? 如果该站点将由多个用户同时使用,您计划如何分配负载?编译是一个密集的过程,有很多人这样做会使服务器过载。还要注意,编译总是需要时间,所以您需要考虑如何向用户展示它。您希望它立即启动还是将用户放入队列? 用户编码的范围是什么?用户输入是否仅限于一个方法内容,还是用户必须写入整个文件?默认情况下,系统是否添加了任何代码?如何解析引用,例如C代码?默认情况下是否引用了某些库? 这只是冰山一角

回答你的评论,是的,有一个C和VB.NET的编译器API,叫做。
网上有很多关于它的信息。您可能还想签出。

您可能想看看昨天发布的Roslyn项目作为一项服务。这是C和VB的新编译器API。它对Python或Ruby没有帮助,但在发布了post Dev 11之后,它应该可以满足您对C和VB的需要。

对于C和VB,使用创建编译对象,然后调用GetDiagnostics方法来确定错误。

如果我想从C和VB.NET开始,您知道我是否公开了API来进行编译吗?