部署简单服务/守护程序(具有简单 UI)的最佳跨平台方法(Windows/Mac)是什么?

Gre*_*reg 5 c# ruby java service cross-platform

我对开发选项的范围感到困惑,并将一些简单的代码和 UI 部署到 Windows 和 Mac。任何人都可以在这里帮助找到一个好的方向。我确实喜欢 Ruby,但是如果远离它(例如 java、c#)有意义,那么就这样吧。人们会为此建议哪种开发选项?

要求 1. 支持 Windows & Mac 2. 安装应该是一键安装,尽可能打包所有需要的依赖项。3. 需要调度能力——所以要么通过 (a) 作为服务/守护程序安装,要么 (b) 安装调度脚本定期调用的能力(前者是首选) 4. 功能组件需要 - 访问/解析 web 的能力-站点,然后能够使 HTTP(S) 调用我的站点以存储解析的数据。因此,继续使用 HTTP(S) 方法。应用程序中需要代理支持,因此用户能够为代理服务器输入主机/端口/用户名/密码。

开发选项 ?? - 这是我需要帮助/建议的地方。想到的许多选项中的一些: 1. 用 Ruby 开发,然后找到打包产品来创建 Windows 和 Mac 安装包 - 不确定这是否可行?特别是如果我需要安装才能有效地安装为服务。2. 用Java开发跨平台?但是需要用户安装 JRE 吗?3. 作为 Firefox 插件开发?我不明白这一点,但即使你可以编写自定义代码,那么问题也将是 Firefox 必须运行我猜。4. 分别开发windows & Mac 版本,例如使用Visual Studio Express 开发windows 版本(假设它可以做HTTP 工作并创建用于安装服务的包)。

人们会在这里提出什么建议?(写一次就好了,按一个按钮,然后把Mac和Windows安装包吐出来)

谢谢

Blu*_*que 3

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

提前致歉,但我不知道您可以使用任何跨平台库来实现此目的,这些系统非常不同,因此它们需要不同的部署策略。

建议一:

  • 在 Mono 中构建您的应用程序
  • 构建两种部署策略,将部署问题分离到“安装程序”中
  • 在 Windows 上使用某种脚本语言或安装程序应用程序进行部署,将您的应用程序插入任务计划程序,或编写一些简单的 C# 代码(见下文)
  • 在 Mac 上,使用内置的 UNIX cron恶魔定期调用您的应用程序。

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

建议#2:

  • 将独立于平台的代码编写为程序集
  • 根据需要为每个平台编写特定于平台的代码:
    • 在 Windows 上,这是 Windows 服务或通过单击一次安装的计划应用程序
    • 我已经离开 Mac 太久了,以至于我不知道那里的策略是什么
  • 再次,为部署付出额外的努力

该解决方案需要编写更具体的代码来与操作系统支持的特定服务进行交互。好处是它应该通过额外的努力与操作系统更好地共存(即:挂钩操作系统级资源管理、报告、日志记录和错误管理)。

注意:此处为 Windows 任务计划程序的 C# 接口不幸的是,它可能不兼容 Mono。