Visual Studio相比Monodevelop有哪些优势?

18

如果一位习惯使用Visual Studio工作的开发人员转向Monodevelop,他需要放弃什么?这位假想的开发人员通常使用C#来开发ASP.NET网络应用程序。

我知道Monodevelop具有基本的Visual Studio功能,如语法高亮和对Visual Studio解决方案的支持。但是哪些缺陷会对放弃Visual Studio的开发人员的生产力产生最大影响?

为了保持一致,请将您的答案限制在关于Visual Studio 2008和Monodevelop 2.0的要点上。

5个回答

18

无法评论之前的版本,但我在MacBook上使用MonoDevelop 3+进行商业项目开发时,发现它比Visual Studio更加愉悦。

它加载更快,编译速度更快,所有工具都更易于访问,并且更逻辑地布置(例如源代码控制)。

我认为它的UI布局要好得多,而且你可以看出它是由软件的实际用户而不是“UI设计师”开发的,后者实际上并没有使用该软件。

我没有发现需要第三方工具。在Visual Studio中,我使用Resharper进行代码格式化和其他一些小事情,但通常认为它过于繁琐。在MonoDevelop中,我发现它处理代码格式化比Resharper更好,并且默认提供了更多选项(例如,它可以正确格式化流畅风格,而Resharper则不能)。

仅从成本效益分析的角度来看,MonoDevelop胜过Visual Studio。如果您需要进行WPF开发、基于TFS的开发、SharePoint或其他MS主导的开发,则它不是用于此类工作的工具。如果您需要构建ASP.NET MVC应用程序、桌面应用程序、移动应用程序或后端应用程序,则建议您尝试一下,并节省Visual Studio许可证的费用。

个人而言,我计划完全迁移到MonoDevelop,并最终淘汰Visual Studio。我肯定不会走VS2012/RT的未来开发之路。我的当前客户已经摆脱了他们的Win8机器,并决定使用Win7。他们的客户要求我们在Mac上开发桌面客户端应用程序,因为他们想彻底淘汰Windows。你可以自己看出这一切将会走向何方。


2
更新:Xamarin Studio在MonoDevelop的基础上有了大幅改进,绝对适用于商业应用 - 除了WPF。如果Visual Studio 2012 Professional不容易获得,强烈推荐使用。 - Herman Schoenfeld

10

我认为很多开发者习惯于使用像ReSharper这样的第三方工具,然而,这些工具在MonoDevelop中是无法获取的。

MonoDevelop用户数量相对于Visual Studio用户来说非常少,因此,像博客文章这样的在线帮助资源也少得多。


4
我来自Java世界,发现Visual Studio在功能方面非常欠缺,直到我安装了Resharper。+1 - Matt Briggs
ReSharper是Visual Studio必备的插件,使其更像Eclipse或IntelliJIDE这样的真正集成开发环境(如果您习惯于重构、优化等操作)。 - Rubens Mariuzzo
一些.NET程序集,一些项目模板,GUI设计器和表格/数据集调试查看器。 - Stefan Steiger

4
当我在这篇文章中提到“C#编辑器”时,我的意思是Visual Studio C#文本编辑器。抱歉,这只是一种打字习惯。 :o
我猜测Visual Studio C#文本编辑器的适配和完成比MonoDevelop更好。我之所以这样说是因为我曾经参与过一个项目,而确保细节正确无误是非常困难的。以下是Visual Studio C#编辑器在一些最难复制的方面表现得非常出色的一些项目:
  • IntelliSense的速度和准确性,虽然我已经记录了如何处理其中最好的功能。Visual Studio 2010编辑器更加出色,而我还没能够匹配它(似乎也没有人关心,所以祝你好运去匹配这个功能集)。IntelliSense引擎还可以在大规模级别上处理部分完成(语法不正确)的代码,做得非常棒。在方法的语句中做到这一点并不难,但C#编辑器非常彻底。
  • 智能缩进很难做得好, 但C#编辑器做到了。即使是Visual Studio 2010 Beta 1在这里也存在重大问题,但在Beta 2中有所改善,几乎达到了2008年的水平。
  • Visual Studio C#编辑器中的代码格式化非常出色。这比前两点容易得多,因此我可以看到MonoDevelop也包括它(不确定是否包括)。做得像Visual Studio那样好的主要困难在于匹配可定制性-它往往会导致一些丑陋的代码(尽管这只是我的经验,其他人可能有一个漂亮的解决方案)。

2

看起来你以前从未见过monodevelop。是的,它是一款很好且非常重要的软件。但目前它与VS简直无法比较。VS是更稳定、更丰富和更强大的软件系统。昨天我在monodevelop中编译了一个非常重要的项目,结果它崩溃了...

但它有ASP.NET设计师和ASP.NET MVC插件。也许它适合你。


我曾经使用过Monodevelop,但最近没有使用。我以一种通用的方式表达我的问题,因为我认为这是获得权威答案的最佳方式。 - ctford
如果你在Linux上,你也可以尝试使用wine+.net2.0+sharpdevelop2.2。如果你在Windows上,并且不想为VS付费(或者你不是学生),我的建议是使用Sharpdevelop。但你也可以以某种方式为Monodevelop项目做出贡献 :-) - Ilya Khaprov

1

我尝试了Monodevelop,发现它并没有给我带来“哇”的体验,但这并不意味着它不是一个伟大的成就。

我习惯于停靠控件,并能够轻松地将控件拖入/拖出容器。然而,如果我想在GTK中做到这一点,我必须删除所有控件并重新开始!因此,我无法使用MonoDevelop提高生产力。

总的来说,有人可以学会如何处理它。

只有那些知道如何在Linux中用C和C++编程(总的来说是Linux开发)的人才会觉得这是一个“哇”的体验。对于Windows开发人员来说,这是一种不愉快的经历。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接