正式的Mono项目网站表示,Mono在Windows,Linux和Mac OS X上成功运行。这是真的吗?
我想构build至less在Windows和Linux上运行的应用程序。 单声道可以吗?
PS我知道类似的话题已经存在(如跨平台.Net? ),但它们可能已经过时了。
C + + QT与C#.NET的Windows开发
Win32 vs .Net
允许Windows使用未经validation的发布者执行应用程序
我可以限制进程的RAM使用情况吗?
在C#中,什么是HttpClient.getStringAsync()方法的同步替代?
对的,这是可能的。
它通常工作得很好,但我不认为Mono上有大/中规模的应用。 还有其他几个应用程序可能需要浏览。
由于Mono是真实事物(.NET)的一个子集,为了保持最佳的兼容性,您可能需要在Mono支持的平台(例如Linux)中开发,然后一旦它运行在那里,您几乎可以肯定它会工作在网上。 我这样说是因为虽然与.NET高度兼容,但Mono并不像许多人认为的那样完全兼容整个.NET堆栈,并且还有其他一些限制 。
我已经做了一些发展,偶然发现了其中的一些。 我希望你的项目没有像我的那样多的.NET依赖项。
确实是。 Mono将在所有三个平台上工作,但是当你说“构建一个应用程序”时,你需要知道并不是所有的.net命名空间都已经被移植到了Mono中。 他们已经把重点放在移植“网页位”,所以你不应该写太多麻烦,编写跨平台的Web应用程序,但如果你想编写一个客户端应用程序,你可能需要检查出了一个Silverlight实现的月光计划。
单声道还没有做太多的工作,但是效果很好。 我建议你在Linux下开发。 那么你可以肯定它也可以在Windows上工作(只要你不做像hardcoding路径等愚蠢的东西)。
它是跨平台的,只是不要犯在Windows上开发和使用在Mono中没有实现的.NET库的错误。 例如,即使.NET不支持Mono也不支持WebParts 。
Mono非常适合于创建在Windows和Linux上运行的WinForms应用程序。 你也可以使用GTK,如果你喜欢的话(一般来说我觉得WinForm UI在Windows下看起来稍微好一些,但是在Linux下GTK界面看起来稍微好一点,不过取决于你的应用程序,可能知之甚少)。
Web服务的实现也是非常好的(事实上比微软在IIS中的实现更好),并且在Windows,Linux和Mac OS上均可跨平台使用。
然而,如果这是你想要走下坡路,你将不得不与Mono一起建立你的项目。 在Visual Studio中创建的.NET项目可能不会在没有(可能是重大的)修改的情况下在Mono下运行,因为并不是所有的.NET库都被实现 – 然而Mono代码在Visual Studio中将工作得很好(假设它们不调用任何Mono特定的库 – 但是当你在做Mono。*命名空间的时候就很清楚)。
Mono命令行应用程序在Mac OS上也可以正常工作,但Mac OS上的WinForms实现受到限制,所以如果考虑Mac OS,最好在XCode中创建一个本地GUI,并将其连接到C#后端(与Windows和Linux)Mono在Mac OS上的WinForms实现不是生产质量。
如果您有兴趣在Visual Studio中创建跨平台(Win / Linux / Mac OS)应用程序,我强烈建议您查阅Delphi Prism 。 还有其他选项(MonoDevelop IDE,Eclipse,TextMate),但很容易掌握,虽然不是免费的。
注意:与名称相反, Delphi Prism允许您使用C#编写Mono应用程序,而不仅仅是使用Delphi。 它也使Mono应用程序连线到Mac OS GUI变得更容易,但是移植到Mac OS仍然需要额外的努力(但几乎不像移植到ObjC那么多)。
最后,这不是你所问的,但可能对你感兴趣:你也可以考虑使用像REALBasic这样的东西来创建GUI,并在后台调用Mono中的捆绑应用程序(取决于你正在工作的应用程序类型上,如果你不能使用RB基本)。
是。
当然,这取决于你正在开发什么,以及你如何开发和测试它。 这听起来很明显,但任何多平台应用程序都需要在每个需要支持的平台上进行测试。
FWIW我创建了一个基于NAnt的Subversion管理工具,它可以交替使用Mono或Microsoft.NET在Linux和Windows上运行。 尽管我主要在Windows上使用它,但它在Linux上也是如此。
你也必须更加注意细节,比如总是使用Environment.NewLine和Path.Combine ,但这是件好事!
排序,但不是那么多。 请注意,根据单项目网站“其他”Linux平台“不支持” http://www.mono-project.com/Other_Downloads 。
JavaScript和HTML5比其他任何东西都更加跨平台。 是的,您可以使用JavaScript开发游戏(Unity3D)和网络服务器应用程序(Node.js)和移动应用程序(Appcelerator等)
我最好的建议是停止寻找一颗银弹。 当你找到它的时候,这将是另一回事。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。