У нас есть данные, которые обновляются каждую ночь в базе данных, находящейся в том же экземпляре, что и база данных моего приложения. Поэтому, чтобы сэкономить на вызовах базы данных, я хочу кэшировать эти статические данные за день в List (Of MyObject). С теоретической точки зрения, должен ли этот кэшированный List (Of) кэшироваться в коде уровня представления через глобальную переменную? Должно ли оно быть в глобальной переменной в .DLL?
Я думаю о .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
Пойду ли я об этом как можно лучше?