Вопрос

Я не совсем уверен, что именно этот вопрос должен быть сформулен, поэтому, пожалуйста, будьте терпеливы, если я попрошу неправильную вещь.

Я пишу приложение ASP.NET, используя VB в качестве кода за языком. У меня есть класс доступа к данным, который подключается к DB для выполнения запроса (параметризованного, конечно), а другой класс для выполнения задач проверки - я доступа к этому классу с моей страницы ASPX.

Я хотел бы, чтобы иметь возможность хранить сторону сервера данных и ждать пользователя выбрать из нескольких вариантов на основе достоверности данных. Но если мое понимание не будет полностью выключено, наличие постоянных объектов данных на сервере даст проблемы, когда несколько пользователей подключаются?

Моя конечная цель - это то, что после подтверждения данных конечный пользователь не может его изменять. В настоящее время я проверяю данные, но я все еще должен получить его из веб-формы после того, как пользователь в порядке, который, очевидно, оставляет открывать возможность вводить плохие данные случайно (вряд ли) или специально (также вряд ли для использования, Но я бы предпочел не рискнуть шанс).

Итак, я полностью в моем понимании? Если это так, может ли кто-нибудь указать мне ресурс, который предоставляет некоторые инструкции по сохранению постоянных данных на сервере или предоставлять инструкцию?

Спасибо!


Бетонный пример:

Недавно мы наняли Gadget Inspector, чтобы вставить данные для инспекторов подписи, которые идут на раунду, проверяя признаки шоссе, чтобы убедиться, что никто из них не был понравился или украден для жевания Bubble-жвачками, обычно находящимися членами молодежного городского совета.

Если гаджет может доказать свой метл, то он может повысить продвижение, чтобы сделать фактические инспекции подписать. На данный момент его единственная работа состоит в том, чтобы отправиться на эту интранет на сайте встроенной информации о самых последних проверках. Район, графство, маршрут №, раздел дороги и даты знака был установлен и проверен.

Конечно, любой из нас, которые были живы в конце 80-х годов, знакомы с отвратительными гаджетами. Таким образом, сайт примерно как доказательство гаджета, как мы сможем это сделать. Район / округ / Маршрут - все заполнены с помощью раскрывающегося списка, он должен вручную вручную ввести в раздел начало и конец и даты. По случаю он раздражает мышь и заканчивается, обменивая начало и конец раздела, до которого! Так что текст становится красным, чтобы предупредить его о ошибке. К сожалению, он решил носить свои антикрасные солнцезащитные очки сегодня, которые превращают все красные цвета в черный цвет. Что ж, после попытки отправить данные, которые он показывает ему сообщение об ошибке, сообщив ему, где он должен починить. К сожалению, он толстый палат на клавиатуре и вместо ввода 1.337 он положил в 13,37 (миль) - и дорога длиной всего в 10 милях! Ну, теперь сообщение (модальное деволюция) всплывает и говорит ему, что реальный пробег дороги составляет 0-10, и что его запись будет сочетать три раздела дороги. Затем ему дают три кнопки на выбор. Отмена, что позволяет ему идти и изменить его данные, ограничивать, что преобразует 13,37-10 и переопределить, что позволит ему в любом случае вводить эти данные.

"Йоуза!" Gadget воскликнул и нажал отменить, чтобы вернуться и исправить свою ошибку. Ну, следующий набор данных, которые он вводил правильно, поэтому сообщение подтверждения появилось, показывая ему изменения, которые он собирался сделать и просить, было ли это нормально, чтобы продолжить. Ну, к сожалению, инспектор гаджет постучал над своей кофейной чашкой, рассеял детриту через свой стол. В своей спешках, чтобы убрать его, он нажал «ОК», но не до того, как его Go-Go-Godget Electro-Magnet случайно перевернул несколько битов на своем компьютере, изменив округ в форме из Арканзаса в Akrsanas, doh!

Были ли данные хранились на сервере через кампус, и единственная информация была «ОК» или «Отмена», это было бы избежать.


Конечно, я всегда могу подтвердить опять таки После «ОК», но это просто похоже на хаковый обходной путь.

Во всяком случае, я надеюсь, что это разъясняет!

Это было полезно?

Решение

Я думаю, что вы думаете об использовании кэша веб-сервера. В ASP.NET вы можете использовать Context.che для хранения данных на сервере. Как только один его пользователь кэш, любой другой пользователь на сервере также может получить доступ к нему.

Поскольку данные кэшируются на сервере, вы хотите очистить кеш каждый раз, когда вы вызываете запрос обновления на БД. Затем в следующий раз вы загрузите данные, вы можете сохранить данные в кэше снова.

В вашем методе выбора проверьте, если ваш кеш [ключ] не является нулевым. Если это так, то загрузите данные из БД, а затем сохраните его к кэше [ключ], прежде чем вернуть данные. Если это не ноль, то просто загрузите его из кэша вместо дБ.

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

Я надеюсь, что это помогает.

Другие советы

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

http://en.wikipedia.org/wiki/Concurrency_control.


РЕДАКТИРОВАТЬ: Прочитав ваш пример .... Похоже, вы можете сделать следующее, удачи.

  1. «Заблокировать» запись Использование пессимистической картины параллелизма своего рода (На БД поскольку именно здесь данные на самом деле есть), когда он доступа к пользователю, вводющую ввод данных. Это все равно что сделать только рекордную запись БД.

  2. Когда пользователь поражает ок, вам, вероятно, придется проверить через код ASP.NET, и если проверка передана, обновите DB и разблокируйте запись БД.

  3. Если пользователь ударит отменить, не обновляйте запись БД, просто разблокируйте ее.

  4. Если пользователь хочет заставить ввод, то просто обновите DB и разблокируйте запись БД.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top