如果您要编写一个在本地运行并调用 Web 服务的 GUI 应用程序,以实现跨平台,您可以使用 .Net 来完成吗?您会推荐哪些工具?

我正在考虑 Java,因为它与 C# 相似,相对容易上手,然后我就可以使用 JVM。

有帮助吗?

解决方案

您应该熟悉 单声道项目单一开发;这些项目的明确目的是允许在各种平台(包括 Windows、Linux 和 Mac OSX)上构建和运行 .NET 代码。

由于 Mono 是 .NET 的重新实现,它总是落后于 Microsoft.NET,但它们很好地覆盖了 .NET 2.0 和一些 .NET 3.x 功能。请注意,Mono 执行 .NET 二进制文件,因此只要 Mono 支持您的程序功能,您就可以在 Windows 上编译的应用程序 EXE 并在 Linux/Mono 上运行它,而无需重新编译。

其他提示

跨平台 .NET 开发的另一个相对较新的选项是使用开源 Eto.Forms Framework,它允许您拥有一个针对每个平台的本机工具包的 UI 代码库。

对于 Windows,它使用 WinForms 或 WPF,对于 Linux,它使用 GTK#,对于 OS X,它使用 MonoMac/Cocoa。

还有移动端口(iOS/Android)正在开发中。

https://github.com/picoe/Eto

您最好使用一些跨平台工具包来编写它。您很可能无法使用优秀的视觉设计器(实际上这取决于您选择的工具包),但是手动编写 UI 并不是那么困难。HTML 人员一直在这样做,这在非 MS 世界中也是很常见的做法。

一些具有 .NET 绑定的跨平台 UI 工具包

  • GTK# (Mono 开发的事实上的标准, MonoDevelop IDE 有正在使用此工具包的内置表单设计器)
  • 网络网 (基于wxWindows,相当成熟,但你必须手动构建你的UI)
  • 乔托 (基于QT,它可能比wxWindows更好,但如果您的应用程序没有开源许可证,您可能需要Trolltech的商业许可证)

一个建议。跨平台编程就像跨浏览器编程一样,唯一要做的一件事就是在您想要支持的所有平台上进行测试、测试和测试。

单核细胞增多症 是目前唯一的选择。它运行于 这些平台. 。还会有问题,虽然不一定很大,但仍然存在。

查看 单声道项目

还可以看看 银光 或者 闪光 用于丰富的互联网应用程序。

正如前面所说, 单声道项目 考虑到社区的支持,这是您最好的选择。

如果您使用 Visual Basic 那么 REALbasic 也值得一看,因为它具有创建本机可执行文件的交叉编译器。他们有试用版,您可以 也下载

我最近在 Linux 上编写了一个小型 C# GUI 应用程序,使用 mono 编译和运行。我发现我必须使用“gmcs”编译器才能访问现代 C# 和 .Net 功能(mono 1.9 附带了几个不同的编译器)。

在编译 .exe 文件时,我发现必须添加“-target:winexe”开关才能使应用程序在 Windows 上运行,而不会在应用程序后面弹出命令行。

我还没有找到如何编译一个 .Net 应用程序,该应用程序在 Windows 上可以从网络驱动器运行,而不需要在 PC 上进行特殊的 .Net 安全配置。(我认为这是 .Net 应用程序的一个普遍问题,但我仍在学习中。)

老实说,我会评估您的客户群和您现有的技能。如果 Windows 与非 Windows 的比例为 50/50,甚至 70/30,那么使用 Java 或其他跨平台工具包可能会更好。

Mono 是一个不错的平台(参见 这个问题大约一周前问过),但如果您正在做任何重要的事情,我会使用专门为其设计的工具包。

顺便说一句,如果你想看看 .NET GUI 应用程序在 Mono 上是什么样子,这里有一篇我在 Mono 上运行 NUnit GUI 时所做的文章:

http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top