跨平台.Net?

时间:2020-03-05 18:51:17  来源:igfitidea点击:

如果要编写一个在本地运行并调用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