2016-06-23 11 views
0

私はC#ASP.NET Webアプリケーションを作成しています。主な前提は、個々のテキストファイルからデータを読み取り、監視ダッシュボードを作成するための一連のオブジェクトを構築することです。C#ASP .NETアプリケーション、ページ上のオブジェクトの更新

オブジェクトには、MonitoringItem、Machine、System、最後にDashboardが含まれます。アプリケーションはテキストファイルを読み込んで監視項目を生成し、それをリストに追加してマシンに保存します。マシンはリストに作成され、システムに格納されます。ダッシュボードはさまざまなシステムのコレクションです。これらのオブジェクトに基づいてHTMLコンテンツを生成するために後で説明します。

私は、ダッシュボードオブジェクトの更新方法に頭を悩ましています。私はGlobal.application_startメソッドを使用して最初のダッシュボードオブジェクトを作成することを考えていました。その後、default.aspx.page_loadでダッシュボードを更新します。

Dashboardオブジェクトのグローバル参照をいくつか作成して、起動時に作成できるようにする方法と、ページが読み込まれるたびにDashboardのインスタンスを取得して更新できるようにする方法はありますか?

答えて

0

静的クラス更新()メソッドとしてこれらのオブジェクトを持っていないのですか?したがって、ページがロードされているときに、どのクラスからでもアクセスでき、情報を更新します。さらに、予想よりも多くのページが読み込まれる状況について考えることをお勧めします。たぶん、あなたはその(のようなすべてのX秒か何かをキャッシュを追加し、それを更新したいと思います - 。

UPD:ところで が、私は今日だけあなたを伝える必要があることを実現し、より良い方法があり、 - このクラスをシングルトンにするこれはちょっと難しいかもしれませんが、このアプローチは静的なクラスを持つよりもはるかに優れています。 )

+0

グレート、私はトップレベルのクラスの静的バージョンを作成し、これにすべてのインスタンスクラスを追加しました。ありがとう – Garreth

0

通常、スケーラビリティ、拡張性、結合性、並行性、再起動/クラッシュ耐性の理由から、Webアプリケーションではこのような共有状態を回避します。

代わりに、キャッシュを使用したり、データベースを作成したり、そのページが読み込まれたときに各ページに必要な部分を取り出したりする方法もあります。

あなたはおそらく慎重アプリケーションのアーキテクチャを検討する必要があります。https://msdn.microsoft.com/en-us/library/ff647792.aspx

関連する問題