Вы правы в том, что беспокоитесь об этом.
Строки подключения должны храниться в Web.config и всегда считываться оттуда. Файл Web.config
кэшируется, поэтому хранение вещей тут же и на Session
является избыточным и ненужным. То же самое можно сказать и о расположении файлов: вы, вероятно, можете создать пары ключ-значение в разделе appSettings
вашего web.config для хранения этой информации.
Что касается хранения наборов данных, таблиц данных и т. Д .; Я бы сохранил эту информацию только на Session
, если получение их из базы данных действительно дорого и при условии, что данные не слишком велики. Многие люди склонны делать такие вещи, не понимая, что их запросы очень быстрые и что соединения с базой данных объединяются.
Если получение данных из базы данных занимает много времени, первое, что я бы попытался исправить, - это скорость моих запросов. Я пропускаю индексы? Что показывает план выполнения моих запросов? Я делаю сканирование таблицы и т. Д. И т. Д.
Один из сценариев, где я в настоящее время храню информацию в Session
(или Cache
), - это когда мне приходится вызывать внешний веб-сервис, который в среднем занимает более 2 секунд, чтобы получить то, что мне нужно. Как только я получаю эти данные, мне не нужно получать их снова при каждом обращении к странице, поэтому я кеширую их.
Очевидно, что приложение, которое хранит почти все, что может на Session
, будет иметь проблемы с масштабируемостью, потому что память является ограниченным ресурсом.