如果您要编写一个在本地运行并调用Web服务的GUI应用程序,为了跨平台,您可以使用.Net来做,您会推荐哪些工具?
我正在考虑Java因为它的C#相似性而相对容易上手,然后我可以使用JVM。
答案 0 :(得分:10)
您应该熟悉Mono project和MonoDevelop;这些项目的明确目的是允许在各种平台上构建和运行.NET代码,包括Windows,Linux和Mac OSX。
由于Mono是.NET的重新实现,它总是落后于Microsoft.NET,但它们已经很好地覆盖了.NET 2.0和一些.NET 3.x功能。请注意,Mono执行.NET二进制文件,因此只要Mono支持您的程序功能,您就可以使用Windows上编译的应用程序EXE并在Linux / Mono上运行它而无需重新编译。
答案 1 :(得分:7)
跨平台.NET开发的另一个相对较新的选择是使用开源的Eto.Forms Framework,它允许您拥有一个UI代码库,目标是每个平台的本机工具包。
对于Windows,它使用WinForms或WPF,对于Linux,它使用GTK#,而对于OS X,它使用MonoMac / Cocoa。
还有移动端口(iOS / Android)正在开发中。
答案 2 :(得分:3)
您最好使用一些跨平台工具包编写它。很可能你将无法使用漂亮的视觉设计师(这实际上取决于你选择的工具包),但手工编写UI并不是那么困难。 HTML人员一直这样做,而且在非MS世界中也很常见。
一些带有.NET绑定的跨平台UI工具包
答案 3 :(得分:3)
一条建议。跨平台编程就像跨浏览器编程一样,可以肯定的是在你想要支持的所有平台上进行测试,测试和测试。
答案 4 :(得分:2)
Mono是目前唯一的选择。它在these platforms上运行。并且会有问题,不一定是巨大的,但仍然存在。
答案 5 :(得分:0)
另请查看有关互联网应用的Silverlight或Flash。
答案 6 :(得分:0)
如前所述,The Mono Project是您最好的选择,因为它得到了社区的支持。
如果您使用的是Visual Basic,那么REALbasic也值得一看,因为它具有创建本机可执行文件的交叉编译器。他们有试用版download too
答案 7 :(得分:0)
我最近在Linux上编写了一个小的C#GUI应用程序,使用mono编译和运行。我发现我必须使用“gmcs”编译器才能访问现代C#和.Net功能(mono 1.9附带了几个不同的编译器)。
在编译.exe文件时,我发现必须添加“-target:winexe”开关才能使应用程序在Windows上运行而不会在应用程序后面弹出命令行。
我还没有找到如何编译.Net应用程序,它在Windows上将从网络驱动器运行,而无需在PC上进行特殊的.Net安全配置。 (我认为这是.Net应用程序的一般问题,但我还在学习。)
答案 8 :(得分:-1)
老实说,我会评估您的客户群和您现有的技能。如果您有50/50的分割,甚至是70/30的Windows分割到非Windows,那么使用Java或其他一些跨平台工具包可能会更好。
Mono是一个不错的平台(请参阅this SO question asked about a week ago),但如果您正在做任何重要的事情,我会选择专为此设计的工具包。
顺便说一句,如果你想看看Mono上的.NET GUI应用程序是什么样子,这是我在Mono上运行NUnit GUI时所做的一篇文章:http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html