桌面软件开发选项

时间:2008-11-03 22:58:57

标签: frameworks desktop

来自陷入网络世界的程序员......

目前用于桌面应用程序开发的最常见桌面开发“框架”是什么?

  1. 为Windows和OS X编写桌面软件是否现实?

  2. 使用相同的基本代码为具有部分Web UI和桌面用户界面的应用程序编写业务/数据层是否现实?

9 个答案:

答案 0 :(得分:3)

  1. 是。您可以使用Java,Python / Ruby等跨平台UI框架,AIR等等。

  2. 是的,这是现实的。在客户端/服务器模型上构建它,大多数代码都适合桌面或Web UI模型。

  3. 如果您使用.NET root,则可以将Silverlight用于Web应用程序,使用后端的.NET服务器代码甚至Mono,以便为OS X进行开发。

    如果采用Java路由,Java在浏览器中运行,很快就会出现JavaFX,这是一个类似Flash的浏览器版本。它几乎可以在所有操作系统上运行,并且可以很好地处理后端。

    Flex / AIR提供了一种为OS X,Windows和Linux开发桌面和基于Web的应用程序的绝佳方式,但是后端需要另一种语言。 .NET,Java,PHP等都可以作为后端使用。

    修改
    在MrJeepster的要求下,这里有关于连接AIR前端和.NET后端的详细信息:

    有两种方法可以将AIR与.NET后端连接:DIY方式和远程方式。

    DIY方式将涉及定义您自己的(可能是XML)数据格式,并使用低级HTTP请求对象与HTTP服务器进行通信,甚至更低级别的套接字类与其他服务器进行通信。

    远程方法更容易,因为好人们已经编写了一系列免费的远程软件包:

    http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html
    http://www.themidnightcoders.com/flashorb/gettingStarted.htm
    http://www.fluorinefx.com/

    远程处理涉及在客户端和服务器之间共享对象。因此,您在AIR客户端上创建一些对象,获取远程处理框架以将其序列化,将其传输到服务器并将其反序列化为.NET对象。然后服务器处理它并通过相同的路径再次发回它或新对象。

答案 1 :(得分:2)

虽然可以进行跨平台桌面开发,但这并不容易。至少,您必须在每个支持的平台上进行测试。而且你必须做出艰难的妥协:你是否在每个平台上使你的软件看起来完全一样(因此在任何地方看起来都不像本机应用程序),或者你是否使用本机控件并在各种平台上处理不同的对齐等?除了外观,你用什么行为?例如,UNIX软件区分大小写,但Windows软件则不区分大小写。您是在两个平台上选择一种排序,还是在每个平台上进行不同的排序?

答案 2 :(得分:1)

  1. 是的,请考虑QT
  2. 是的,请考虑SOA

答案 3 :(得分:1)

Qt(在C ++或python上)在mac / win / linux之间完全可移植。它还包括QtWebKit,所以很容易在你的应用程序中嵌入一个真实的现代浏览器。

答案 4 :(得分:1)

  1. 如果您正在寻找跨平台,我可能会建议Qt。几年前我们在这里使用它。它的许可证是每个开发人员而且价格昂贵(至少当时是这样)。

  2. 当然,您可以使用网络服务。

答案 5 :(得分:1)

使用.NET和mono是一个不错的选择。

答案 6 :(得分:0)

我们使用Java构建了许多多层,跨平台的应用程序。 在桌面上,Swing真的为我们工作了。

答案 7 :(得分:0)

我们正在使用Java(Swing)构建一个小型跨平台应用程序,这非常好。至少到目前为止。 :d

答案 8 :(得分:0)

我使用REALbasic为Mac OS X和Windows创建各种各样的桌面应用程序。它运作得很好。

但它不适合创建单独的图层来与桌面/网页UI共享。