2

バーコード スキャンを処理する vb.NET で Windows フォーム アプリケーションを開発しました (バーコード リーダーは通信ポートにセットアップされます。アプリケーションはスキャンされたコードを asp.net asmx Web サービスに渡します。このサービスはスキャンを処理し、結果をアプリケーション)。

アプリケーションはうまく機能していますが、私は PC がログオフしている間にバーコード スキャナーを使用できるようにするという任務を負っています。

バーコード スキャンを受け入れるプロトタイプ Windows サービスを vb.net (.net Framework 4.5) で開発しました。現在、これはスキャンを Windows イベント ログに書き込みますが、これは Web サービスに接続してスキャンを処理します。

このサービスは、ログオフした PC で動作しています。

今必要なのは、ユーザー インターフェイスを表示するアプリケーションです。つまり、バーコードがスキャンされたときにウィンドウをポップアップする必要があります。また、サービスが処理している「バーコード スキャナー」オブジェクトのコレクションを「読み取って」、ユーザーに表示できるようにしたいと考えています。また、Windows サービスを構成できる必要があります (Web サービス URL の設定など)。

これを達成するための最良の方法について誰かアドバイスをもらえますか? Windows サービスは情報を「クライアント」に「プッシュ」できますか? もしそうなら、これを達成するためのメカニズムは何ですか?

Windows サービスはメソッド (「GetScanners」や「GetLastScan」など) を公開できますか? これをどのように設定しますか?

アイデア/提案をありがとう!

クリス

4

1 に答える 1

0

次の 2 つのオプションのいずれかをお勧めします。

  1. ウィンドウのサービス内から WCF サービスをホストし、クライアント アプリがその WCF サービスを参照するようにします。その後、クライアントは適切な WCF メソッドを呼び出して、サービスの現在のステータスを照会したり、そのプロパティを設定したりできます。
  2. サービスは、一般的にアクセス可能なデータベースとの間で、すべてのステータスと設定を読み書きできます。その後、クライアントは同じデータベースとの間で直接読み書きできます。

最初のオプションは間違いなく優れたオプションです。将来のニーズに柔軟に対応できるようになり、サービスとのリアルタイムの通信方法が提供されます。ただし、WCF にはかなりの学習曲線が必要になる可能性があるため、WCF にまだ慣れておらず、オプション 2 が現在のニーズを満たす場合、それは悪い解決策ではありません。

WCF は基本的に Web サービスと同じように機能しますが、より強力で、はるかに構成可能です。あなたが提案したように、Windowsサービスから「GetScanners」のようなメソッドを公開する必要がある場合に使用するソリューションです。

于 2012-09-26T15:04:02.640 に答える