来自陷入网络世界的程序员......
目前用于桌面应用程序开发的最常见的桌面开发"框架"是什么?
为Windows和OS X编写桌面软件是否现实?
使用相同的基本代码为具有部分Web UI和桌面UI的应用程序编写业务/数据层是否现实?
是的。您可以将 Java、Python/Ruby 等与跨平台 UI 框架、AIR 等结合使用。
是的,这是现实的。在客户端/服务器模型上构建它,大部分代码将适合桌面或 Web UI 模型。
如果您深入 .NET 根目录,您可以使用 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.fluinefx.com/
远程处理涉及在客户端和服务器之间共享对象。因此,您在 AIR 客户端上创建一些对象,让远程处理框架对其进行序列化,将其传输到服务器并将其反序列化为 .NET 对象。然后,服务器对其进行处理,并通过相同的路由再次将其或新对象发送回来。