我正在了解Mono和.NET C#,未来在项目开发时需要在Linux服务器上运行代码。目前,我一直在研究ASP.NET MVC和Mono。
我使用的是Ubuntu发行版,并希望为Web应用程序进行开发,其他开发人员使用Windows并在Visual Studio中运行其他.NET项目。
Mono没有提供哪些Visual Studio具有的功能?
如果以后在Linux上运行该项目,我们应该使用MonoDevelop吗?
是否存在一些第三方工具或插件可能会影响Mono的使用?
我正在了解Mono和.NET C#,未来在项目开发时需要在Linux服务器上运行代码。目前,我一直在研究ASP.NET MVC和Mono。
我使用的是Ubuntu发行版,并希望为Web应用程序进行开发,其他开发人员使用Windows并在Visual Studio中运行其他.NET项目。
Mono没有提供哪些Visual Studio具有的功能?
如果以后在Linux上运行该项目,我们应该使用MonoDevelop吗?
是否存在一些第三方工具或插件可能会影响Mono的使用?
我在这个领域没有太多经验,但是...
Mono项目路线图提供了一个功能概述,其中包括与MS.NET相比新的、即将推出的以及不包含在Mono中的功能。即使Mono有与.NET相同的类,也要注意兼容性不是100%(尽管这通常是他们的目标)。我不确定是否存在一个全面的缺失列表。
MonoDevelop现在可在Windows和Linux上使用,所以您最好使用它。但是,请注意,MonoDevelop似乎使用与Visual Studio和SharpDevelop相同的项目文件格式,因此您可以尝试混合IDE。
当然,在使用第三方.NET库时,请注意许多库未经过与mono的兼容性测试,特别是任何使用P/Invoke的内容都无法在Linux上的Mono上运行。但是,与mono的大多数不兼容性都很小,如果您坚持使用开源库,您可以随时解决遇到的任何不兼容性问题。
您还可以查看Visual Studio的Mono工具。它使您的Visual Studio开发人员能够针对Mono平台进行目标和测试。
你的目标是始终拥有支持,并/或主要在Linux上使用软件,对吗?这实际上是我不久前在一个会议上问Mono开发人员的问题,它基本上归结为你想用它做什么。
如果你希望它始终在Linux上正常工作,则使用Mono。如果您只关心Windows,则使用Visual Studio。
如果您正在使用Mono,则在所有开发者之间使用MonoDevelop。这将使以后的生活变得轻松得多,并确保您在其中编写的任何内容都适用于所有人。
不幸的是,我不知道Mono与.NET的确切限制/优势的答案,除了.NET更加先进,而Mono则在追赶,也不知道不同的插件。
如果您的开发人员没有必要使用Mono进行某些功能的开发,我建议您们都在Windows上使用Visual Studio。然后通过以下方式测试应用程序:
个人经历了许多小问题,当我尝试第三种方法时,但幸运的是我能够找到解决方法。
只有当您接触Mono时,您才会知道应用程序的哪一部分需要调整。
在Linux中运行ASP.NET程序时,您不需要MonoDevelop,只需在开发服务器(VMWare或实际服务器)上创建共享文件夹,并经常进行测试,以便轻松解决Mono缺失的问题。
这是我在Ubuntu服务器上托管的.NET Remoting程序所使用的相同方法。但是我做了相反的事情,因为我是一个独立的程序员,我在我的Windows开发机上创建了一个共享文件夹,然后访问我的Ubuntu测试服务器(vmware'd)上的该共享文件夹。对于ASP.NET内容,如果更改未在Ubuntu测试服务器上反映出来,请在终端中触摸Ubuntu测试服务器上的Web.Config文件。即touch Web.Config
,然后刷新页面。