16

我意识到这有点疯狂,C# 是一种 Windows 语言,但我想开始学习 C# 主要是因为我对 ASP.NET MVC 感兴趣。我白天是一名网络开发人员,我的办公室完全在 *nix 机器上运行。开发人员和所有其他员工使用 Mac OS X,我们的服务器都是 Linux 的一些变体。

老实说,我只是想尝试一些不同于 PHP、Python 或 Ruby 的东西。问题是我不想放弃我心爱的 Mac OS X。我已经看过 Mono 了,它似乎正是我想要的。不幸的是,MonoDevelop 在 Mac OS X 上的运行速度非常慢,到了无用的地步。(除非我做错了什么,这是完全合理的)。

所以我的问题归结为:在 Mac OS X 上编码和编译 C# 应用程序的最佳方法是什么。(运行代码并不是什么大问题,我可能只是获得一些便宜的服务器空间来运行我的 ASP。 NET MVC 应用程序。我真的不想在 Mac OS X 上运行任何应用程序。)

4

8 回答 8

21

根据我作为 C#/Windows/ASP.Net 开发人员的经验,该平台的最大优势在于与工具的集成。也就是说,很难让它全部在单声道上运行。Mono 将是一个出色的部署平台。但是,如果你想学习asp.net MVC,最好的办法是设置一个虚拟 Windows 环境并获得免费的视觉 Web 开发人员视觉工作室: http: //www.microsoft.com/express/vwd/

另一个原因是,如果您尝试学习该平台,大多数资源将使用 Visual Studio 的某些变体。我发现尝试和学习一个框架相当困难,并且必须同时与平台差异作斗争。

我是作为一个狂热的 OS X 用户说的,他做了几年的 C# 开发,并在 asp.net mvc 中做了几个小项目。

于 2009-12-11T15:40:52.947 回答
6

在 Mac 上运行虚拟 Windows 机器怎么样?

请参阅http://www.parallels.com/eu/products/desktop/

于 2009-12-11T15:35:57.763 回答
3

+1敏的回答

Microsoft 提供的工具(免费和购买)非常棒,并且集成得非常好。我使用 Visual Studio 的次数越多,我就越喜欢它。

我强烈建议在 Windows(bootcamp 或 vmware 或 w/e)上为 ASP.NET/C# 进行开发。

与您将来可能面临的潜在兼容性问题相比,当您想要编码时必须在操作系统之间切换是一个很小的代价。

于 2009-12-11T15:51:04.860 回答
2

我会添加到虚拟化论点。例如,如果您要在 VMWare Fusion 中安装 Windows,您可以在一致性模式下运行它。在这种模式下,您仍然可以在 OS X 中获得所有您熟悉和喜爱的应用程序和系统,并使 Visual Studio 看起来就像是原生 OS X 应用程序。但是,VS “看到”了 Windows 环境,因此您可以获得在 Windows 上进行开发的好处。

当然,你有两个操作系统竞争资源的开销,但大多数时候这不是问题(这对我来说不是,无论如何,我在家里用一个不起眼的 MacBook 运行我自己的项目)

于 2009-12-11T16:17:01.767 回答
2

万一有人最终解决了这个问题,ASP.NET Core 现已推出并在 Mac 上运行。MS 有一个详细说明使用 ASP.NET Core 创建 Web API 的演练:https ://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-vsc

于 2017-10-05T05:13:07.987 回答
1

在 .net 中进行开发是高度面向 IDE 的。当然,您可以在一个普通的旧文本编辑器中完成这一切,但它会变得越来越难,除非您只编写后端服务器代码。也许有很棒的基于单声道的 IDE,但我不明白为什么你会更喜欢使用 MacOS,因为无论如何都要花时间使用 IDE。

绝对投票支持虚拟化 Windows 或使用 BootCamp。

于 2009-12-11T16:11:58.250 回答
1

我同意虚拟 Windows 机器和 VS Express,但Mono Develop在特别针对 ASP.NET MVC 时并没有那么糟糕。

于 2009-12-13T02:17:45.363 回答
-1

您可以在您的 mac (KDE) 上安装一个 linux 桌面并使用 wine(一个 linux windows 模拟器应用程序)来安装 Visual Studio Express。KDE 桌面在 Mac 上运行。现在您不必在您的机器上安装完整的 Windows 操作系统。

于 2013-12-02T10:12:46.550 回答