В настоящее время мой сайт основан на MVC и Entity Framework, работающем с базой данных SQL Server 2005. Пока что все работает очень гладко, и мне очень нравится MVC и его более тонкий и лаконичный код (и никаких огромных представлений или разрушающих душу постбэков;))
Недавно я работал над обновлением сайта для использования простой системы форумов, и именно здесь я столкнулся с проблемами. Когда я тестировал сайт с использованием двух разных браузеров, если я создал сообщение или ответил на него в одном браузере, другой браузер не смог увидеть сообщение.
На данный момент каждый посетитель сайта получает собственную копию модели сущностей, которую я храню в своих данных сеанса. Очевидно, что это проблема, поскольку обновления одной модели не переносятся на другую.
В качестве теста я попытался сохранить одну копию модели, к которой все посетители могли бы получить доступ, назначив модель статической переменной. Это сработало, и оба браузера могли видеть модификации друг друга. Однако у него были свои побочные эффекты. Например, если я запустил оба браузера одновременно и модель была инициализирована, один браузер завис бы, а другой работал бы нормально, несмотря на то, что я использовал блокирующий объект, поэтому в теории один из них должен был быть отложен до модели был готов (конечно, я мог бы реализовать это неправильно;)). Кроме того, первоначально этот сайт использовал одну модель для всех посетителей, и когда он был активен, он часто закрывался - убивая пул приложений IIS, пока он работал. Теперь я не уверен, было ли это связано, но я действительно не хочу повторно вводить какую-либо ошибку, которая у меня была из-за этого.
Итак, мой вопрос на самом деле простой - как лучше всего использовать одну и ту же модель для всех пользователей веб-сайта, чтобы они все видели обновления, или если у них есть отдельные копии (что, я полагаю, повлияет на производительность) вовремя) как модели могут обнаруживать изменения в базе данных и обновлять себя в соответствии с
Заранее спасибо за любой совет!
С уважением,
Ричард Мосс