2

前もって、この質問はソリューションの設計に関連しており、共有するコードはありません

以下のように動作する .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. 他に簡単な解決策やパターンはありますか?

4

2 に答える 2

4

デスクトップと対話する Windows サービスを使用することは推奨されていないことを読みましたか?

サービス自体はそうすべきではありませんが、クライアント アプリケーション (リスナー) を介して問題ありません。

このアプリケーションの UI を開発するために WPF を使用することは推奨されますか?

特定レベルの UI カスタマイズが必要な場合。視覚的な魅力が問題にならない場合は、古いシンプルな WinForms で十分です。

WPF のデータバインディング機能も優れていますが、ほとんどの単純なシナリオでは大きな違いはありません。

これに対する他の簡単な解決策やパターンはありますか?

実行中の Windows サービス、サービスをリッスンするクライアント アプリケーション (これらのオプションは相互に排他的ではなく、まったく逆です)。

于 2012-08-28T10:50:02.520 に答える
1

デスクトップと対話する Windows サービスを使用することは推奨されていないことを読みましたか?

サービスは、デスクトップと直接対話するべきではありません。しかし、サービスが API の王様 (WCF だと思います) を公開して、デスクトップ アプリケーションで使用することはまったく問題ありません。

このアプリケーションの UI を開発するために WPF を使用することは推奨されますか?

それは、これまたはそのテクノロジーに関するあなたの経験次第です。

于 2012-08-28T10:51:51.467 に答える