2013-06-26 2 views
0

В моем случае у меня есть пользовательский форум, совместно используемый несколькими пользователями в asp.net и C#. Я нашел процесс загрузки довольно дорогостоящим (несколько таблиц соединены для разных целей). Пользователи могут изменять и добавлять новые записи. Но я не хочу загружать объект на пользователя. Учитывая, что статические переменные - особенно при редактировании - не являются потокобезопасными. Интересно, что это лучший способ сделать это.Сохранение глобальных объектов в ASP.NET

+0

Если вы запускаете приложение в веб-саду или веб-ферме, вы не можете использовать static для сохранения измененных данных, только для данных только для чтения, потому что каждый статический может быть различным при каждом запросе. – Aristos

ответ

2

Существует короткий ответ ... и очень длинный ответ на этот вопрос. Длинный ответ можно найти на programmers.stackexchange.com, короткий ответ - вот что я вам дам.

Я бы рекомендовал (очень условно, поскольку я не знаю природу запроса), что вы создаете представление в своей базе данных для этого сложного соединения, потому что база данных будет кэшировать представление для вас и будет обновлять это каждый раз, когда таблицы, затронутые запросом, обновляются. Это означало бы, что вам нужно только сделать запрос для этого представления, а не сложный сложный запрос, который вы сейчас делаете. Имейте в виду, что это краткосрочное решение, если ваш счетчик пользователей растет, это, скорее всего, приведет к тому, что ваша БД начнет пережевывать CPU и ram.

+0

Спасибо, Mgetz за ответ. Не могли бы вы указать адрес URL длинного ответа? Я думаю, что решение будет временно решить проблему, как вы упомянули, но я жду ответа. Спасибо. – beebee

+0

Это был скорее «общий» длинный ответ, так как архитектура обсуждалась на программистах. Но если вы ищете конкретный ответ, я бы настоятельно рекомендовал прочитать _Implementing Domain Driven Design_ от Vaughn Vernon – Mgetz

+0

Спасибо за предложение, я взглянул на таблицу контента. Теперь я получил то, что вы имели в виду под длинным ответом;) – beebee