2

私は Windows 開発者 (iOS Objective-C の経験がある程度あります) であり、MacOS 用のかなり単純なデーモンを作成するために正しい言語を慎重に選択しようとしています。

アプリは、既に配置されている .NET Web サービスと通信して、ファイルをダウンロードおよびアップロードします。

インストールは非技術的な日常のユーザーによって行われるため、彼らに多くの構成/スクリプト作成を依頼することはオプションではありません。洗練されたパッケージが必要です。

私は自分の選択を次のように考えています。

  1. Objective-C
  2. ジャワ
  3. 単核症
  4. スクリプティング

Objective-Cにはネイティブであるという利点がありますが、私はまだこの言語に強いわけではありません。

Javaはとても簡単ですが、すべてのユーザーがそれを持っていますか? 人々にそれをインストールするように頼むことは問題になるでしょうか?

Monoを使用すると .NET のスキルを活用できますが、デーモンとしてエレガントにインストールできますか?

アプリが実行しなければならないことは非常に単純であるため、スクリプトはオプションかもしれませんが、このような製品を提供することは標準ですか?

--

編集

GUI はありません。Web サービスにアクセスするには UID/PWD が必要ですが (クライアントごとに異なります)、コードを非表示にする必要はありません。すべてのクライアントに対して、常に実行されます。

4

2 に答える 2

3

Objective-C/Cocoa または C (特にCore Foundationを使用) は、パフォーマンスと OS 統合の利点を備えた最もネイティブな実装を確かに提供します。

Java は合理的であり、組み込まれます。ブートストラップするにはいくつかの基本的なスクリプトが必要ですが、それほど多くはありません。

Mono もリーズナブルで、ユーザーが比較的簡単にインストールできます。ダウンロード ページを参照して、ランタイムのみが必要であることを指定する必要がありますが、実行可能です。ライセンスによっては、独自のインストーラー パッケージ内に Mono ランタイム インストーラー パッケージを含めることができる場合があるため、デーモンと同時にインストールされます。

当然のことながら、スクリプト言語ではコードが公開されて変更可能なままになる可能性が高いため、懸念がある場合はそのルートを避けた方がよいでしょう。

デーモンの開発に使用する言語に関係なく、インストールと管理を検討する必要があります。

インストールに関して、Mac ユーザーは 2 つのインストール方法に慣れています: インストーラーによるインストール.pkgユーザーがダブルクリックしてインストール プロセスを実行するか、アプリケーションを [アプリケーション] フォルダーにドラッグしてダブルクリックして起動することによって、ファイルを開きます。開発者として、前者を使用すると、README/ライセンス テキストを含めたり、プリフライト スクリプトとポストフライト スクリプトを実行したり、1 つまたは複数のパッケージをインストールするためのメタ パッケージをビルドしたりできます (前述のように、Mono ランタイムを直接また、OS とユーザーは、必要に応じて、どのファイルが、どこに、いつ (インストール後に) インストールされるかを確認できます。あるいは、多くのデーモンは実際の Mac OS X アプリケーションであり、最初の起動時にバックグラウンド プロセスとしてインストールされます。前者は、言語の選択とは無関係です。

これは私を管理に導きます。ほとんどのデーモンはlaunched、LaunchDaemon (すべてのユーザーに対して、通常は起動時に起動) または LaunchAgent (特定のユーザーに対して、通常はログイン時に起動) として実行されることを望みます。誰とでもうまく統合できれば、launchedみんながより幸せになり、どの言語オプションでも実行できるはずです.

問題は、ユーザーがデーモンを管理する必要があるかどうかです。その場合、これは最も頻繁に MenuExtra または Preference Pane として実装されます。どちらの場合でも、デーモンは任意の言語で開発できlaunched、MenuExtra/Preference ペインによって (特に 経由で) 制御できますが、場合によっては、MenuExtra が実際にデーモンとして機能する可能性があるため、Objective-C で開発する必要があります。 /ココア。

参照: Apple のDesigning Daemons & Servicesドキュメント。

于 2012-05-08T16:50:57.163 に答える
2

Objective-C が最善の策であり、ネイティブで、最速であり、デーモンに適しています。それ以外の場合は、Mac OS X に既にインストールされている Java 6 で開発できますが、デーモンとしてインストールするのはそれほど簡単ではありません。

私のアドバイスは、Objective-C またはプレーン C を使用することです ...

ただし、.NET の操作に慣れている場合は、mono をインストールしてmono-serviceを使用して、OS X でもサービスをデーモンとして実行できますが、この場合、ユーザーは自分のマシンに mono をインストールする必要があります。このトレードオフは、実行可能なソリューションになる可能性があります。

于 2012-05-08T16:11:33.147 に答える