私は、アプリケーションのデータベースと同じインスタンスに存在するデータベースで夜間に更新されるデータを持っています。したがって、データベース呼び出しを節約するために、この静的な一日のデータをList(Of MyObject)にキャッシュします。理論的には、キャッシュされたList(Of)はプレゼンテーション層のコードにグローバル変数を介してキャッシュされるべきですか?それは.DLLのグローバル変数にあるべきですか?WinForms Appのデータキャッシュ - どのレイヤーをキャッシュするのですか?
私はGUIに公開されおよび.DLL内のデータアクセス層への呼び出しを行うれるサービス層、作成されたので、私は、.DLLに思っている:私はあるだろう
Public Shared Function Search(ByVal criteria As Core.Other.Customer) As List(Of Core.Other.Customer)
' TODO: Check the customer cache to see if it has been populated yet. If not, populate it.
If 1 = 1 Then
' TODO: Variable "list" needs to be a global object in the DLL.
' For SO readers: Dal class declared Friend.
Dim list As List(Of Core.Other.Customer) = Dal.Search.Customers.GetCache()
End If
Dim results As New List(Of Core.Other.Customer)
' TODO: Find the relevant customers in the cache and add them to variable "results".
Return results
End Function
をこれについて私ができる最善の方法は?
一部のユーザーは、VPN上でアプリケーションを使用しますが、悲しいことに、会社のサブパーです。ここで2秒かかるデータベースコールは、VPNで10秒かかります。私はいくつかの最適化を念頭に置いてこれに入る必要があります。 – HardCode