最近,我在Ubuntu linux中遇到了Mono和MonoDevelop软件包。他们声称拥有符合CLI的.NET运行时。在自己安装软件包之前,我想知道以下内容:
Mono有多强大?
我可以开发GUI应用程序吗? linux喜欢开发WinForm 适用于Windows的应用程序。
MonoDevelop IDE是否与Visual Studio IDE兼容。我可以将VS 2008解决方案导入MonoDevelop并开始工作吗?
它是否支持.NET 2.0及更高版本?
编辑:再添一个疑问
有没有办法在Linux中运行.NET exe(winform应用程序)而不在linux中构建cod e?事实上,我没有我之前开发的一些小实用程序的代码,并希望在linux中运行它们。
答案 0 :(得分:6)
(奇怪的是,markdown用一个开始枚举,即使我从2开始......)
是的,你可以,但你受限于第三方组件,因为内部实现不同,上次我检查(不久前),Mono WinForms实现使我的测试应用程序看起来相当奇怪(所有者绘制的列表视图)。虽然Mono声称它现在完全与WinForms-2.0兼容,但并不是真的推荐。
MonoDevelop是一个SharpDevelop分支,后者有解决方案支持。我不知道MonoDevelop是否有。但很酷的是,您可以使用Visual Studio进行开发并在Mono上运行已编译的应用程序。顺便说一下,Mono也适用于Windows。
是的,就CLR而言,确实如此。正如Marc Gravell已经写过的那样,Windows Foundation库和其他一些库(例如System.Management)一样缺失。但事情应该最重要,包括ASP.NET 2.0。 Mono's application portability guidelines对此非常了解。
答案 1 :(得分:2)
1:实际上相当不错。并非所有的完整框架都存在,所以如果您编写的代码应该基于MS .NET和单声道构建,那么您需要在两个平台上尽早构建和测试
4:是的 - 虽然像WPF / WCF / WF(3.0)这样的东西丢失或缩小了
我对开发环境了解不多,因为我使用VSTS(在Windows上),只使用NANT脚本在单声道上进行构建...
答案 2 :(得分:2)
答案 3 :(得分:1)
非常强大。核心实施中没有重大错误。这不是一个科学项目。缺点主要在于您所期望的最新API(微软本身具有先发优势)。
是。我们刚刚完成了一个项目,其中大部分GUI代码是在Windows上的WinForms中开发的。我能够使用Ubuntu进行处理而不会出现严重的问题。也就是说,这是API中最难的部分之一,但仍然存在问题。有关详细信息,请参阅http://mono-project.com/WinForms。
注意,我使用的是Ubuntu Hardy(8.04)。
答案 4 :(得分:1)
单声道强大。它拥有非常强大的开源骨架上的所有.Net肌肉。
当您说“开发用于Linux的GUI应用程序,如开发适用于Windows的WinForm应用程序”时,我知道您正在询问一个可以让您快速创建UI的可视化设计器。对的,这是可能的。 MonoDevelop拥有Stetic - Gtk#的内置视觉设计师。还有QyotoDevelop可以在MonoDevelop中启用QT支持。
是的,MonoDevelop本身支持VS项目/解决方案文件格式。您可以使用相同的代码库在Windows上的.Net中使用VS编译您的应用程序,并在Linux上使用Mono赢取MD。
目前Mono支持C#3.0,其中包含一些已经实现的内容以及很多内容。
是的,在很多情况下,可以在Mono中运行.Net编译的应用程序,但是MonoDevelop对VS解决方案的支持并不重要。它需要按F7重建整个项目,因此努力可以忽略不计。检查您的应用程序是否可以在Mono中运行的最佳工具是MoMA。
答案 5 :(得分:0)
答案 6 :(得分:0)
我在单声道中使用WinForms。 2.x版本非常好。
我在Windows上的visual-studio中开发表单,并在Linux中运行它们,零代码更改。是的,表单看起来与XP有点不同,但是再一次,在GNOME中,以XP为主题的GUI看起来有些奇怪。
如果您刚开始使用,请坚持使用WinForms,同时熟悉Mono / Linux。但是在某些时候你可能想要调查GTK。