如果您要编写一个在本地运行并调用 Web 服务的 GUI 应用程序,作为跨平台,您可以使用 .Net 来完成,您会推荐哪些工具?
我正在考虑使用 Java,因为它与 C# 相似,因此相对容易上手,然后我可以使用 JVM。
如果您要编写一个在本地运行并调用 Web 服务的 GUI 应用程序,作为跨平台,您可以使用 .Net 来完成,您会推荐哪些工具?
我正在考虑使用 Java,因为它与 C# 相似,因此相对容易上手,然后我可以使用 JVM。
你应该熟悉Mono 项目和MonoDevelop;这些项目的明确目的是允许在各种平台上构建和运行 .NET 代码,包括 Windows、Linux 和 Mac OSX。
由于 Mono 是对 .NET 的重新实现,因此它总是落后于 Microsoft.NET,但它们对 .NET 2.0 和一些 .NET 3.x 功能有很好的覆盖。请注意,Mono 执行 .NET 二进制文件,因此只要 Mono 支持您的程序功能,您就可以将您在 Windows 上编译的应用程序 EXE 并在 Linux/Mono 上运行而无需重新编译。
跨平台 .NET 开发的另一个相对较新的选择是使用开源 Eto.Forms 框架,它允许您拥有一个针对每个平台的本机工具包的 UI 代码库。
对于 Windows,它使用 WinForms 或 WPF,对于 Linux,它使用 GTK#,对于 OS X,它使用 MonoMac/Cocoa。
还有一些移动端口(iOS/Android)正在开发中。
您最好使用一些跨平台工具包来编写它。很可能您将无法使用出色的视觉设计器(实际上这取决于您选择的工具包),但是手工编写 UI 并不是那么困难。HTML 人一直都在这样做,这在非 MS 世界中也很常见。
一些带有 .NET 绑定的跨平台 UI 工具包
一条忠告。跨平台编程就像跨浏览器编程一样,肯定要做的一件事是在您想要支持的所有平台上进行测试、测试和测试。
查看Mono 项目
还可以查看用于富 Internet 应用程序的Silverlight或Flash 。
我最近在 Linux 上编写了一个小 C# GUI 应用程序,使用 mono 编译和运行。我发现我必须使用“gmcs”编译器才能访问现代 C# 和 .Net 功能(mono 1.9 附带了几个不同的编译器)。
而且在编译.exe文件时,我发现我必须添加“-target:winexe”开关才能使应用程序在Windows上运行,而不会在应用程序后面弹出命令行。
我还没有弄清楚如何编译一个 .Net 应用程序,它在 Windows 上可以从网络驱动器运行,而不需要在 PC 上进行特殊的 .Net 安全配置。(我认为这是 .Net 应用程序的普遍问题,但我仍在学习。)
老实说,我会评估您的客户群和您现有的技能。如果你有一个 50/50 的分割,甚至 70/30 的 Windows 与非 Windows 的分割,你可能会更好地使用 Java 或其他一些跨平台工具包。
Mono 是一个不错的平台(请参阅大约一周前提出的这个 SO 问题),但如果您正在做任何重要的事情,我会使用专为它设计的工具包。
顺便说一句,如果你想看看 .NET GUI 应用程序在 Mono 上的样子,这是我在 Mono 上运行 NUnit GUI 时所做的一篇文章:
http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html