2009-09-15 51 views
4

我越来越糊涂重新发展&选择范围部署一些简单的代码& UI同时支持Windows &苹果。任何人都可以在这里协助重建一个好的方向我喜欢Ruby,但是如果离开它(例如java,c#)是有意义的,那就这样吧。人们会为此提出哪种发展方案?什么是最好的跨平台解决方案(在Windows/Mac)来部署一个简单的服务/守护进程(用简单的UI)

要求 1.支持Windows & Mac 2.安装应该是一键单击并尽可能打包所有必需的依赖关系。 3.需要调度功能 - 所以要么通过(a)作为服务/守护程序安装,要么(b)安装的能力以安排定期调用脚本(前者是首选) 4.功能组件需要 - 访问/解析网站,然后再向我的网站发出HTTP(S)呼叫以存储分析的数据。因此,依靠HTTP(S)方法。应用程序需要代理支持,因此用户可以输入代理服务器的主机/端口/用户名/密码。

DEV选项?? - 这是我需要帮助/建议的地方。想到许多选项中的一部分: 1.在Ruby中进行开发,然后找到打包产品以创建Windows & Mac安装软件包 - 不知道该软件的可行性如何?特别是如果我需要将安装作为服务进行有效安装。 2.用Java开发跨平台?但之后需要用户安装JRE? 3.开发Firefox插件?我没有通过这个,但即使你可以编写自定义代码,那么问题将是Firefox我必须运行。 4.分别开发Windows版本& Mac版本,例如使用Visual Studio Express开发Windows版本(假设它可以执行HTTP工作&创建用于安装服务的包)。

这里人们会提出什么建议? (将是很好写一次,按下一个按钮,然后获得在Mac & Windows安装包吐出来)

感谢

回答

3

我写过跨平台的C++代码,这是我们面临的决定。

提前道歉,但我没有意识到任何可用于此的跨平台库,这些系统足够不同以至于需要不同的部署策略。

建议1:

  • 构建应用程序在单
  • 构建的两个部署策略,部署问题分成Windows上的“安装”
  • 一些脚本语言或安装应用程序,插入部署你的应用程序进入任务调度程序,或写一些简单的C#代码(见下文)
  • 在Mac上使用内置的UNIX cron恶魔定期调用你的应用程序。

我觉得这个策略相当简单。平台特定的工作集中在部署上。该应用程序在运行前不使用任何资源,它使用简单的机制来激活它。记录和错误处理可以使用文件系统完成。

建议#2:

  • 编写独立于平台的代码作为组件
  • 写特定于平台的代码,根据需要为每个平台:在Windows
    • 这是一个窗口服务或预定的应用程序与点击一次安装
    • 我已经远离了一个足够长的mac,我不知道它是什么策略是
  • 再次,为部署

该解决方案的其他努力编写更具体的代码与操作系统支持的特定服务接口的开销。其好处是它应该与操作系统共同更好地共存(即:挂钩到操作系统级别的资源管理,报告,日志记录和错误管理)。

注意:到Windows任务调度程序的C#接口here不幸的是,它可能不是单向兼容的。

2

Mono将支持跨平台的Windows和Mac的要求。

单让我开发一个Windows窗体在我的Windows环境下的可执行程序集,然后简单地执行使用单在OS X

有些GUI控件的行为有所不同完全相同的可执行文件,但如果你”重新编写一个服务,你可能不会创建一个复杂的GUI。

检查mono docs,我看到System.Net.WebClient类已实现,并提供了一种简单的跨平台方式来通过HTTP检索数据。

我在Windows机器上使用Visual Studio 2008来完全开发应用程序,就像我将其他任何.NET Windows窗体应用程序一样。然后由此生成的可执行文件可以通过将其作为参数传递给mono运行时直接在Mac机器上运行。

您可能希望将安装/部署视为与实际应用程序代码的实现分开的问题。您可能需要针对每个受支持平台的平台特定安装程序,但每个安装程序都会在每个平台上部署相同的单个二进制文件(或一组二进制文件),这要归功于Mono。

相关问题