在Apple上开发(新平台)

时间:2009-02-28 22:07:07

标签: c# macos development-environment

来自Microsoft开发背景组我对Mac上可用的开发语言/环境感到困惑。是否有任何类似C#的语言可以在除Mac以外的Mac上开发,我还应该考虑?对OSX转换的MS更喜欢什么?为什么?我遵循业务级别的编程策略,而不是游戏或图形,因此应用程序性能不是我选择平台的总体驱动因素。

8 个答案:

答案 0 :(得分:12)

使用Cocoa API的Objective-C是可行的方法。一旦你有了这些,那么Ruby和Python之间也存在着与Cocoa API的桥梁。我强烈建议您最初首先使用Objective-C学习Cocoa API。

答案 1 :(得分:5)

我刚买了一台Mac,来自.NET开发背景。我尝试了一堆不同的语言和环境。如果您要编写OS X桌面软件,则需要使用Cocoa和Interface Builder。 IB没有Windows对应物,因为它与Cocoa密切相关。这意味着你需要同时学习Cocoa,通过查看代码并不容易。

Objective-C是Mac的母语,并不像C#那样精致。需要一段时间才能流畅地阅读它,因为调用函数看起来不同。使用Python或Ruby而不是Objective-C只会增加一层复杂性,直到你学习Cocoa,但之后似乎很可行。 C#via Mono工作正常,但我认为整个Cocoa#bridge都没有实现。 C#工具的质量远低于Visual Studio,而MonoDevelop在Mac上非常难看。我决定,如果我想走这条路,那么我需要学习Objective-C,但是我的方向不同。

如果您正在撰写网站,那么您可以获得更多灵活性。尽管安装一些Python库存在一些问题,但整个Python和Ruby文化都是可用的。这是我采用的路线,因为我有一些基本的Python经验,并且技能几乎与Linux 100%兼容。 iTerm是一个比终端更好的客户端。我不喜欢我尝试的大多数代码编辑器,并且开始使用Smultron,它只是一个非常称职的文本编辑器,具有语法高亮功能。肯定有很多选择。

无论你怎么接近它,你都会花很多时间学习。我经常偶然发现Python语法,但我终于擅长了。 SQLAlchemy(Python ORM)文档几乎总是有一个打开的浏览器窗口。我也咬了一口子并开始使用Vim(特别是MacVim),这实际上是一个有趣的事情,因为似乎总有另一个命令完全符合你的要求。 (例如,我厌倦了去一条线,击中$去追尾,然后点击一个追加,然后点击Enter开始一条新线,所以我用Google搜索并发现我可以点击o。)

答案 2 :(得分:3)

查看Mono项目

来自wikipedia

  

Mono是由Novell(前身为Ximian)领导的项目,旨在创建符合Ecma标准,与.NET兼容的工具集,其中包括C#编译器和公共语言运行时。 Mono可以在Linux,BSD,UNIX,Mac OS X,Solaris和Windows操作系统上运行。

但我真的建议去Cocoa路线并获得Aaron Hillegass的书“Mac OS X的可可编程”

答案 3 :(得分:2)

Objective-C,C,C ++,Java,Ruby,Python,Php,......有许多语言/开发环境可供选择,包括C#via Mono,如@epatel所说。我会说,语言的选择更多地取决于你正在开发什么,而不是取决于你来自哪个平台。

答案 4 :(得分:1)

Objective-C和Cocoa是确定的方法。很多时候,开发人员会误以为Objective-c不是“详细的”或“经过精心调整”。但我可以向你保证,它是业务中一些最好的应用程序背后的强大功能。有一个明显的学习曲线。

答案 5 :(得分:0)

在相关的说明中,

Silverlight是Windows和Mac上支持的基于网络的“类似Flash”的技术,您可以使用大多数.net语言进行编码。

答案 6 :(得分:0)

只要您愿意使用Mono,C#就可用于OS X.对于非UI和Web内容,它应该可以正常工作。

对于桌面应用程序开发,我使用REALbasic。它的语法和对象模型与Visual Basic非常相似。

对于业务级编程,我不确定Cocoa / Objective-C是否是最有效的开始;它与.NET和/或Java完全不同。

答案 7 :(得分:0)

我会忘记单声道,它不能很好地工作。分发时,缓慢,错误和system.drawing /表格无法正常工作。

用c#我会选择monomac。您可以访问c#中的所有mac apis。这就像一个中途的房子。您使用NSWView而不是控件而不是控件,而是使用NSView。而不是绘制你使用图形上下文。缺点是文档有点薄,而且成本很高。