Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mono编译器作为服务在运行时重新编译ASP.NET MVC站点?_C#_Asp.net_Asp.net Mvc_Mono - Fatal编程技术网

C# Mono编译器作为服务在运行时重新编译ASP.NET MVC站点?

C# Mono编译器作为服务在运行时重新编译ASP.NET MVC站点?,c#,asp.net,asp.net-mvc,mono,C#,Asp.net,Asp.net Mvc,Mono,我发现了一个关于使用Mono编译器作为服务在运行时动态编译控制器类的有趣链接: 但它只适用于控制器。有没有人能解释一下是否有可能在运行时对整个项目进行评估?虽然这意味着更少的编译时错误检查,但它仍然可以极大地提高生产率。可以动态编译放入App_Code文件夹的所有内容,包括控制器,如果您将项目转换为网站项目类型而不需要编译器作为服务,则可以使用自定义HTML和Url帮助程序等 缺点是不能使用业务逻辑或数据库访问库动态编译引用库。还有一个明显的性能缺陷,可以通过IIS应用程序预热模块部分消除 有人

我发现了一个关于使用Mono编译器作为服务在运行时动态编译控制器类的有趣链接:


但它只适用于控制器。有没有人能解释一下是否有可能在运行时对整个项目进行评估?虽然这意味着更少的编译时错误检查,但它仍然可以极大地提高生产率。

可以动态编译放入App_Code文件夹的所有内容,包括控制器,如果您将项目转换为网站项目类型而不需要编译器作为服务,则可以使用自定义HTML和Url帮助程序等

缺点是不能使用业务逻辑或数据库访问库动态编译引用库。还有一个明显的性能缺陷,可以通过IIS应用程序预热模块部分消除


有人认为在生产服务器上部署所有源代码存在安全问题,但Ruby on rails、python web framworks、php、node.js等脚本世界似乎并不太担心这个问题,而且,只要您不混淆dll,您的智能属性的安全性就没有多大差别。

为什么这会提高生产率?听起来你是在毫无回报地发挥预编译语言的所有优势。我经常从事大型项目——在更改类中的一行之后重新编译整个内容似乎是浪费。每当我使用像Python这样的语言时,我都喜欢能够或多或少地立即重新加载。我认为您并没有失去任何优势——大概在我想象中的世界中,在这个世界中,您可以点击构建并仍然得到编译时检查。但有时也只是快速更换和加载。ASP.NET网站过去可以这样做。因此,第一个访问您网站的人将不得不等待它编译,而不是等待它编译?不,不。。。我不是建议在生产环境中使用它。只是为了开发,它会像旧的ASP.NET代码文件模型一样工作-只是在加载时重新编译.cs文件,而不是整个项目。@Alastair,我正在使用mono动态编译我的控制器,现在我将其更改为使用Roslyn,原因与您公开的相同,我的项目很大,一次又一次地编译需要很长时间。但是,让我和你分享我的经验,这样做的利润是不够的,我的意思是,你赢得了一些时间来更改控制器代码并按F5,但是,当你有任何问题时,你必须调试,并且要这样做,你必须编译并设置一个断点,然后开始常见的舞蹈F10,F10,快速观察,运行到光标,我希望我的经验对你有用,相信我这不值得。