Статический репозиторий ASP.NET MVC?
У меня есть несколько сущностей, которые почти никогда не изменятся (т.е. список стран, регионов и т.д.) И это заставило меня задуматься... может ли статический репозиторий иметь смысл для этих объектов в дополнение к обычным репозиториям? Кроме того, я говорю, что эти объекты все равно будут взаимодействовать с другими объектами, и я все еще хочу, чтобы они находились под одной единицей работы, поэтому они имеют один и тот же контекст.
Однако я уверен, что есть лучший способ сделать это. Я новичок в ASP.NET и .NET Framework, но есть ли способ определить данные приложения, которые будут использоваться на протяжении всей жизни программы? Это лучший способ сделать это?
Или лучше просто определить статический класс с наборами этих объектов, и я могу просто взять их оттуда, когда мне это нужно?
Ответы
Ответ 1
Вы можете использовать различные методы хранения (State Management). Ниже приведена дополнительная информация.
Из-за звука из этого двух объектов, которые вы пытаетесь сохранить, интенсивность памяти не будет, поэтому кэш приложений будет лучше всего здесь.
Ответ 2
Почему бы просто не использовать механизм кэширования? Я успешно использовал memchache в таких ситуациях.
Ответ 3
Я думаю, что ответ Nexus23 охватывает большинство ваших вариантов. Но я нахожу для некоторых данных, подобных этому (США, города), иногда лучше всего не поддерживать список вообще, как его просто для вас, чтобы иметь дело в будущем. Удобство использования, а также список из более чем 190 стран (ООН и США признают разные списки), не идеальны для прокрутки пользователя.
Пользователь приложения, скорее всего, будет знать, что лучше, чем вы, в любом случае, если вы не планируете обновление с геополитическими изменениями в мире.
Если вам нужен этот список для таких функций, как проверка адреса или геолокация, лучше отложить его до службы, предназначенной для этого, вместо того, чтобы пытаться перезагрузить внутренне (API Карт Google и т.д.).