2011-06-29 8 views
3

私は全社で使用されているアプリケーションを作成しました。多くのユーザーは、アプリケーションを24-7のままにしておく傾向があります。このアプリケーションは、マーケティング部門のニーズが変化するにつれ、絶えず開発中です。ほとんどの変更は軽微ですが、しばしば迅速に実装する必要があります。セールスマンはしばしば机や電話から離れているため、インターコムの発表は必ずしもそのトリックを行うわけではありません。アプリケーションはネットワークファイル共有に格納され、にショートカットされます。アプリケーションからユーザーをキック

私が想像していることは、「このプログラムは5分間でアップデートを終了しますので、今すぐ変更を保存してください」というようなメッセージです。このメッセージを表示し、リモートからexeファイルからそれらを蹴る方法はありますか?私はちょうど更新が保留中であるかどうかを確認するために定期的にチェックするデータベース値を持っていると考えましたが、それは私にとって安価なハックのようです。

+3

クリック一回の展開を使用していますか?あなたのアプリはX時間ごとに更新を確認してから、アプリを更新して再起動することができます。 – Fox32

+2

@ 0A0D:そうですが、劇的なことはありませんか? – Yuck

+0

@ 0A0D:WinFormsまたはWPFアプリケーションをASP.NETに変換するのは大変** NON ** - 非公式です。はい、Webアプリケーションは通常、共有された企業の状況に最適ですが、そのような変更を行うことは大きな仕事です。 – Randolpho

答えて

4

データベースのチェックは他のものと同じくらい良いです。私は個人的には同じことをする購読しているサービスをポーリングすることをお勧めします。しかし、あなたのアプリが直接データベースに接続している場合は、データベースをチェックする方が良いでしょう。

ただし、ClickOnceデプロイメント方法を使用することをお勧めします。それには大きなアーキテクチャ上の変更が必要ですが、長期的には最高のものになるでしょう。

+0

これは本質的に製品データベース管理アプリケーションですので、間違いなくdbに直接当てはまります。 –

+0

@ニック:あなたの最初のアイデアはおそらくあなたの状況に最適です。すべての状況には最適ではありませんが、あなたのユニークなケースでは、私はそれと一緒に行くと言います。デプロイメントシナリオをClickOnceに変更するのに必要な余分な時間を費やすことができれば、後で改善する方がよいでしょう。しかし、これは政治的な決定であり、完了するためには、 – Randolpho

0

更新プログラムがいつ利用できるかを調べるために、.exeが送信する中央サーバーをセットアップできます。

あなたのソリューションのフレームワークとしてWCFを調べることをお勧めします。このようなサイトの投稿だけでなく、フレームワークのための多くの素晴らしいリファレンスがあります。おそらく、X分ごとに更新をチェックするアプリケーション内の別のスレッドを起動することができます。

"このメッセージを表示して、リモートからexeファイルから蹴り出す方法はありますか?"という質問は、可能ですが、プログラムが自動的に更新プログラムを問い合わせるようにする方が適しています。

リモートでアップデートをシャットダウンする場合は、ネットワーク上のどこにいるかを知る必要があります。プログラムが定期的にセントラルデータベースに接続している場合、プログラムがネットワーク上のどこにあるかをサーバーが知る必要はなく、プログラムはどこからでも自動的にサーバーに到達できます。

0

RabbitMQなどのメッセージングシステムを使用して、アプリケーションがシステム内のチャネルをリッスンするようにすることができます。その後、管理アプリケーションはユーザーアプリケーションにメッセージを送信して強制的にシャットダウンします。

変更が変更を反映していない場合は、ユーザーがアプリケーションを実行している間に更新プログラムを公開できるClickOnceのようなものを参照することをお勧めします。ただし、 。

0

私はあなたが立ち往生したものを得られませんでした。タイマーを作成するだけで、ユーザーとのやりとり時にタイマーをリセットします。 5分。次に、タイマーが起動すると、メッセージボックスを表示し、別のタイマーを作成します。起動すると、現在のプロセスを強制終了します。

1

残念ながら、それはWebアプリケーションではありません。配備は簡単です!

これは私がやっていることです。数分間使用しないと、アプリケーションログユーザーが外に出るようにします。

未保存の作業には2つの方法があります。何もしないので、活動していないときに保存されずにログアウトすると、それらは緩んでしまいます。

動作しているので、ローカルの変更履歴が保持されます。非アクティブのためにログアウトすると、ログバックでジャーナルを使用して元の状態に戻ります。

編集:ユーザーが古いバージョンを使用しないようにする。バージョンまたはビルド番号のデータベースフィールドを作成します。バージョン<バージョンをdbフィールドで実行している場合、ログインを拒否したり、プログラムを再起動して新しいイメージをロードしたりしてください。

+0

私は一定期間活動しないとログアウトするという考えが好きです。一部のユーザーだけが実際にプログラム内のデータを変更することになり、残りの部分はレポートを作成するなど、この状況ではそれほど邪魔にならないでしょう。私は5時間の非活動のようなばかげた何かにそれを置くことができます、それはある時間夜中に更新を得るでしょう。私はまだプログラムを使用することからすぐにそれらを停止する方法が必要なので、これは私が探している答えではありません。 – Nick

+0

@Nick - 更新が発生したときにユーザーがプログラムを使用するのを止めるための編集済みの回答を参照してください。 – Matt

0

むしろ接線の答えですが、問題がワークステーションを離れてログオンしている人であれば、www.1e.comのnightwatchmanのようなものを見てください。これはx期間の休止後にPCをパワーダウンします。あなたの会社に「環境にやさしい」ことを売り、無駄な電力コストを節約しましょう。

関連する問題