前もって、この質問はソリューションの設計に関連しており、共有するコードはありません
以下のように動作する .net 4.0 (システム モニターのようなもの) で C# デスクトップ アプリケーションを設計しています。
- ユーザーが Windows デスクトップにログインすると、アプリケーションが起動します (ユーザーがログインしている場合のみ)。
- ユーザー セッション全体で定期的に実行します。
- ユーザーのデスクトップにシステム トレイ アイコンを表示します。
- トレイ アイコンをクリックすると、情報を表示するウィンドウが開きます (ユーザー エクスペリエンスが豊富です) 。
- ユーザーのログオフ時にアプリケーションが存在する
- このアプリケーションは、起動時に状態を保存して存在する可能性があります (おそらくシステム レジストリに)
- ネットワークやファイルシステムなどのシステム リソースにアクセスする必要がある
私の好みは:
- 定期的なバックエンド操作とネットワーク アクセスを実行する、バックグラウンドで実行される Windows サービス。このサービスは、システム トレイ アイコン (バルーン ヒント) にアラートとして表示されるフロント エンド (UI) にも情報をポーリングする必要があります。
- ユーザーに情報を表示するための Windows アプリケーション - トレイ アイコンをクリックして開きます
上記の考慮事項は、.net バージョン 1.1 を使用した Windows アプリケーション開発の経験に基づいています。
ただし、現在、.net 4.0 で開発し、Windows Vista および Windows 7 プラットフォームをターゲットにしています。
私は最新のトレンドにあまり詳しくありません。私の質問は次のとおりです。
1. デスクトップと対話する Windows サービスを使用することは推奨されていないことを読みましたか?
2. このアプリケーションの UI を開発するために WPF を使用することは推奨されますか?
3. 他に簡単な解決策やパターンはありますか?