c# - 可以使用 Mono 使任何 ASP.net 应用程序(或其中的大部分)在 Linux 下运行吗?

标签 c# asp.net linux mono

换句话说,既然我们有了 Mono,在服务器端 Web 应用程序方面,C# 是否变得像 Java 一样与操作系统无关?或者在 Mono 能做什么/不能做什么或者 Linux 上的 C# 服务器端应用程序可以使用哪些库方面仍然存在很大的限制?

最佳答案

可以任何(或大部分)ASP.NET 应用程序可以运行”的答案是。有一个页面有一些常见的陷阱:Mono: Porting ASP.NET Applications (也对 Porting WinForms applications page 感兴趣)

我在该领域看到的最常见的问题 [1] 按出现次数是:

  • 不知道区分大小写的文件系统或不关心文件/路径处理的代码。 这些需要工作
  • P/Invokes:Windows 原生函数有很多 P/Invokes。 Mono 不支持它们中的大多数(它们在 unix 环境中也没有意义)。但是,我们有几个或最常见的映射(CloseHandle 等)。 这些需要使用 .NET API 重做相同的事情
  • 错误:不管你信不信,300 万多行代码中仍然存在错误。我们会尽快响应并修复错误(我们很乐意做更多,这归咎于 24 小时轮换期)。重现问题的测试用例越简单,它得到修复的速度就越快。 提交错误报告,我们会尽快修复它
  • 缺少或未实现的 API:我们仍然有这些 API,并尝试专注于最常用的 API。有时我们使用 Moma 报告(见下面的链接)来确定优先级。

看看 Moma Reports page ,其中包含用户提交的有关应用程序的数据 Moma已运行。

[1]:该领域的范围从西半球最大的 ASP.NET 部署之一到小型开源应用程序。

关于c# - 可以使用 Mono 使任何 ASP.net 应用程序(或其中的大部分)在 Linux 下运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1924841/

相关文章:

c# - 伪造的faker如何设置字符串数组列表

javascript - 为什么我的 jquery 日期选择器在我的 asp.net 代码中不起作用?

c# - 从 View (.cshtml) 访问 viewbag 值

linux - 来自 CLI : empty PDF and error "Failed to serialize document: Uncaught" 的 Chrome headless 问题

python - 如何将项目中使用的所有 pip 包制作成 .tar.gz 文件?

node.js - 如何在 Linux Ubuntu 中将 NodeJS 应用程序作为 crontab 运行?

c# - 如何从特定字符之前的字符串中删除所有字符

c# - 为什么 Java 和 C# 没有到 boolean 值的隐式转换?

c# - 高效实现 "ThenBy"排序

c# - 在asp.net C#中的后面代码中获取sql错误代码