Параллельность между окнами и веб-приложением C # asp.net - PullRequest
0 голосов
/ 28 апреля 2009

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

Спасибо

Ответы [ 2 ]

1 голос
/ 11 мая 2009

Я бы предложил ввести шлюз в вашу систему. Шлюзом будет отдельное приложение (или часть одного из ваших существующих приложений: приложение winforms или веб-приложение), которое выступает в качестве посредника для БД как для приложения Windows, так и для веб-приложения. Таким образом, у вас есть только одна точка отказа между запросами БД и самой БД. Спроектируйте этот шлюз для управления параллелизмом, и вам не придется беспокоиться о других процессах, записывающих в вашу базу данных.

Если бы я был на вашем месте, я мог бы выбрать веб-приложение в качестве шлюза. Создайте набор сервисов / репозиториев для взаимодействия с базой данных и обеспечьте доступ к этим сервисам на уровне пользовательского интерфейса веб-приложения. Затем предоставьте эти сервисы через веб-сервисы (или сервисы WCF) вашему приложению Windows, чтобы оно получало доступ к БД, а не напрямую к БД. Таким образом, вы развязали свою систему и создали единую точку входа в хранилище данных. С этим подходом вы, вероятно, решите намного больше проблем, чем параллелизм.

0 голосов
/ 28 апреля 2009

не зная бизнес-правил относительно того, как товар может быть зарезервирован в корзине (например, срок действия корзины), вы не можете вести подсчет «зарезервировано» и «продано»?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...