Глобальное состояние в приложении asp.net mvc

Проблема: наша веб-консоль показывает список всех компьютеров, на которых установлено наше приложение. Каждая машина имеет некоторую идентификационную информацию, которая может быть связана с ней. Простые строки, такие как название отдела, название команды и т. Д. Мы должны сделать так, чтобы пользователь мог изменить имя этих полей идентификации и добавить / удалить столько, сколько он хочет. Как мы можем лучше всего реализовать это?

Сначала я думал, что смогу реализовать это как синглтон. При запуске приложения я мог прочитать последние установленные имена полей идентификаторов из БД и создать одноэлементный экземпляр списка строк. Это может быть передано всем функциям, которые должны отображать или получать доступ к идентификационной информации. Привлекательность этого варианта заключается в том, что если пользователь изменяет имя поля идентификатора из пользовательского интерфейса или добавляет или удаляет поля, я могу просто изменить одноэлементный объект, и это изменение будет отражено.

Однако я чувствую, что должен быть лучший способ достичь того, чего я хочу. Потому что там много такой информации, которую пользователь может модифицировать по своему желанию и нам нужно ее отслеживать.

Какие-либо предложения?

1 ответ

Решение

Просто используйте объекты из вашего ORM, чтобы поддерживать и использовать эту информацию в приложении. Многие ORM имеют возможность кешировать подобные вещи, поэтому вы не потеряете в этом никакой скорости.

Я не большой поклонник использования Singleton для этого. Модульное тестирование сложно, и вам все равно придется в конечном итоге сохранить его в базе данных.

Другие вопросы по тегам