来自陷入网络世界的程序员......
目前用于桌面应用程序开发的最常见桌面开发“框架”是什么?
为Windows和OS X编写桌面软件是否现实?
使用相同的基本代码为具有部分Web UI和桌面用户界面的应用程序编写业务/数据层是否现实?
答案 0 :(得分:3)
是。您可以使用Java,Python / Ruby等跨平台UI框架,AIR等等。
是的,这是现实的。在客户端/服务器模型上构建它,大多数代码都适合桌面或Web UI模型。
如果您使用.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)
答案 3 :(得分:1)
Qt(在C ++或python上)在mac / win / linux之间完全可移植。它还包括QtWebKit,所以很容易在你的应用程序中嵌入一个真实的现代浏览器。
答案 4 :(得分:1)
如果您正在寻找跨平台,我可能会建议Qt。几年前我们在这里使用它。它的许可证是每个开发人员而且价格昂贵(至少当时是这样)。
当然,您可以使用网络服务。
答案 5 :(得分:1)
使用.NET和mono是一个不错的选择。
答案 6 :(得分:0)
我们使用Java构建了许多多层,跨平台的应用程序。 在桌面上,Swing真的为我们工作了。
答案 7 :(得分:0)
我们正在使用Java(Swing)构建一个小型跨平台应用程序,这非常好。至少到目前为止。 :d
答案 8 :(得分:0)
我使用REALbasic为Mac OS X和Windows创建各种各样的桌面应用程序。它运作得很好。
但它不适合创建单独的图层来与桌面/网页UI共享。