跨平台.Net?
如果要编写一个在本地运行并调用Web服务的GUI应用程序(要跨平台使用),可以使用.Net进行操作,我们会推荐哪些工具?
我正在考虑使用Java,因为Java具有相似性,因此相对较容易掌握,然后可以使用JVM。
解决方案
回答
我们应该熟悉Mono项目和MonoDevelop。这些项目的明确目的是允许在各种平台(包括Windows,Linux和Mac OSX)上构建和运行.NET代码。
由于Mono是.NET的重新实现,因此它始终落后于Microsoft.NET,但是它们对.NET 2.0和某些.NET 3.x功能都有很好的覆盖。请注意,Mono执行.NET二进制文件,因此,只要Mono支持程序功能,就可以将我们在Windows上编译的应用程序EXE带到Linux / Mono上运行,而无需重新编译。
回答
查看Mono项目
也可以查看适用于富Internet应用程序的Silverlight或者Flash。
回答
单声道是当前唯一的选择。它在这些平台上运行。将会有问题,不一定很大,但仍然存在。
回答
我们最好使用一些跨平台的工具包来编写它。很可能我们将无法使用出色的视觉设计器(真的取决于我们选择的工具包),但是手工编写UI并不是那么困难。 HTML专家一直在这样做,这在非MS领域也是很普遍的做法。
一些具有.NET绑定的跨平台UI工具包
- GTK#(Mono开发的实际标准,MonoDevelop IDE具有使用此工具包的内置表单设计器)
- wxNET(基于wxWindows,已经相当成熟,但是我们必须手动构建UI)
- Qyoto(基于QT,它可能比wxWindows更好,但如果应用程序没有开源许可证,则可能需要Trolltech的商业许可证)
回答
如前所述,由于受到社区的支持,Mono Project是最好的选择。
如果我们使用的是Visual Basic,那么REALbasic也值得一看,因为它具有创建本机可执行文件的交叉编译器。他们有一个试用版,我们也可以下载
回答
我最近在Linux上编写了一个小CGUI应用程序,使用mono进行编译和运行。我发现必须使用" gmcs"编译器才能访问现代Cand .Net功能(mono 1.9附带了几种不同的编译器)。
并且,在编译.exe文件时,我发现必须添加" -target:winexe"开关才能使该应用程序在Windows上运行,而无需在该应用程序后面弹出命令行。
我还没有找到如何编译.Net应用程序的方法,该应用程序在Windows上可以从网络驱动器运行,而无需在PC上进行特殊的.Net安全配置。 (我认为这是.Net应用程序的普遍问题,但我仍在学习。)
回答
一个忠告。跨平台编程就像跨浏览器编程一样,唯一可以做的就是在要支持的所有平台上进行测试,测试和测试。
回答
老实说,我会评估客户群和我们现有的技能。如果我们将Windows分割为50/50,甚至将Windows /非Windows分割为70/30,那么使用Java或者其他跨平台工具箱可能会更好。
Mono是一个不错的平台(请参阅一个星期前询问的SO问题),但是如果我们做的事情很重要,我会为它设计一个工具箱。
顺便说一句,如果我们想查看.NET GUI应用在Mono上的外观,每当我在Mono上运行NUnit GUI时,我都会写这篇文章:
http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html