1

クライアント アプリケーションをサポートするバックグラウンド アプリケーションが必要です。クライアント アプリケーションは、メインのクライアント アプリケーションが実行されているかどうかに関係なく、常にクライアント マシンで実行する必要があります。

Windows サービスは私の最初の選択でしたが、Windows サービスで直面した問題は、メイン クライアント アプリケーションを介した Windows サービスの制御の容易さ、Windows サービスへのパッチのリリースとインストール、および Windows サービスが実行に失敗した場合のトラブルシューティングでした。

そこで、Windows サービスに代わるものを考え始めたところ、目に見えるフォームのない Windows フォーム アプリケーションでそれができることがわかりました。この目に見えないアプリは、システムの起動時に開始され、常に実行され続け、Windows サービスが行うすべての作業を行う必要があります。しかし、開発について深く掘り下げる前に、このアプローチの長所と短所を調べてみたいと思います。

このアプローチに関する提案/コメントはありますか?

4

2 に答える 2

1

あなたの要件は、Windows サービスにより適しています。Windows サービスの主な利点は、システムにログインしているかどうかに関係なく、システムが起動するとすぐに開始されることです。

展開の問題を解決するには、ビジネス ロジックを別のアセンブリに構築し、Windows サービスで必要な関数を呼び出します。このようにして、変更されたアセンブリのみを展開できます。

非表示のフォームを使用した Winform アプリケーションは、目的を果たしません。HTH

于 2011-01-27T05:52:22.193 に答える
1

それは可能ではありません。ユーザー モード アプリケーションは、ユーザーが開始する必要があり、そのユーザーがログオフすると実行を継続しません。これがイベントの目的ですSessionEnding。ユーザーがログオフするとき、またはコンピューターがシャットダウンするときに、アプリを正常にシャットダウンできるようにすることです。システムの起動時に何かを開始して、常に実行し続けることはできません。

そのためには Windows サービスが必要です。ただし、Windows Vista 以降では、サービスがユーザーと直接やり取りできないことに注意してください。それらは別のプロセスで実行され、独自の UI を表示することは制限されています。あなたのニーズが正確に何であるかは質問から明らかではありませんが、これは考慮に値する Windows サービスの重要な制限です。適切な設計では、実際にはこれを必要とするべきではありませんが、この新しい、より安全な動作に驚く人が多いようです。これについては、この質問この他の質問への関連する回答で詳しく説明します。

于 2011-01-27T05:52:28.413 に答える