在Linux/Mono上运行ASP.Net MVC

6

我想使用ASP.Net MVC框架在Linux上开发网站,我想知道:

  • 开发这样的站点的最佳实践是什么(在mono/Windows上有什么区别)?
  • 任何需要注意的问题?
  • 是否存在任何(实质性的差异)-例如Mono和.Net之间缺少/专有库/组件等?
  • 运行Mono与Apache需要任何特殊指令、模块吗?
  • 在Windows / IIS和Linux / Apache上托管网站是否存在性能差异?
  • 我打算使用VS Studio进行大部分开发-可以使用VS开发网站,然后将其部署到Linux上吗?

我知道这个问题在SO上已经被问了很多次。但是,大多数问题都可以追溯到2008年或2009年-这在互联网时间中非常长。自那些答案以来,情况可能已经发生了变化-因此那些答案可能已不再相关。

我必须声明我不感兴趣将站点托管在Windows服务器上-所以我只对适用于Linux服务器部署的解决方案感兴趣。


2
Stack Overflow的理念是问题会被更新(就像在维基上一样),而不是再次提问。 - skolima
1
@skolima:那我该如何要求他人更新与我正在尝试解决的问题相关的问题? - Homunculus Reticulli
投票,在必要时添加评论,在您还没有完全编辑权限时添加建议的编辑,如果问题足够重要,则添加赏金。 - skolima
由于历史原因,Mono Web 堆栈的演进并不像其移动端(基于 Xamarin)那样快速。因此,您在2008/2009年所读的内容在大多数情况下仍然适用,只有在 Mono 4/5 采用 .NET Framework 源代码后才进行了少许改进。因此,您真的不需要更新答案,但请自行测试您自己的情况。 - Lex Li
2个回答

2

我目前正在开发一个MVC 4应用程序,我们正在使用Mono。如果您只是计划拥有一个基本的网站,那么您可以选择它。但对于更复杂的流程,老实说,我认为您应该先进行一些研究,看看您想要实现的功能是否受到Mono支持。以下是您需要考虑的事项:

  • 仅支持一组受限制的库(例如,现在我们由于Mono库(Novell和DirectorySearcher)不支持分页而遇到了一些问题)
  • 开发环境将与您的服务器环境不同(我正在使用Visual Studio,我们通过添加大量日志来解决了这个限制)
  • 我们使用FTP进行发布,因此,是的,您可以使用设置为FTP的发布配置文件从VS部署它
  • 它是免费的,但需要花费大量时间进行研究和特殊处理,仅仅是为了支持Mono
  • 没有太多文档可用,因为没有太多人使用它,因此,如果您有特定的问题,解决起来会更加困难

你如何在 Mono 项目上部署 .NET MVC 4 项目?有任何教程可以与我们分享吗? - Fairuz Sulaiman

0

我的经验是从2011年开始的,但我很确定你需要尝试才能知道什么有效,什么无效 - 这是我在使用Mono时的经验。

你的大部分问题都非常笼统,我认为你的问题很快就会被关闭。

至于你的最后一个问题,这是我做的方式,并且它有效(在VS中进行开发->部署到Linux),但你必须意识到:

  • 仅因为您的代码可以在VS调试器中运行并不意味着在部署时也能运行;
  • Mono和.Net之间不存在一对一的映射。即使有些东西可以工作,也不意味着它们会以相同的方式工作。例如,在处理HTTP cookie加密代码时,Mono和.net之间的实现非常不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接