2014-01-23 2 views
0

Я ищу, чтобы изменить текущую архитектуру распределенного приложения winforms, разработанного с использованием TCP-сообщений, и клиент напрямую связывается с базой данных. Я знаю, что это плохой дизайн, и мне поручено изменить это. Я был принят на работу за то же самое.Приложение с распределенными Winforms

бит Обзора:

  1. Клиент использует WinForms приложение
  2. Клиент загружает исходные данные из базы данных непосредственно
  3. Клиентов прислушивается к серверу (Winforms приложение с TCP слушателем)
  4. Если обновление создается в любом из объектов, клиент будет напрямую обновлять базу данных и отправляет сообщение серверу, который, в свою очередь, отправляет информацию другим клиентам. Затем эти клиенты будут обновлять данные из базы данных

Используемые технологии: VB.NET, инфраструктура Entity, база данных Oracle и прослушиватель TCP.

Мне нужно все ваши советы о том, что было бы лучшим решением/архитектурой для того же самого. Я думаю об использовании WCF с дуплексной связью для сообщений.

Благодарим вас за ваши ответы.

ответ

1

Используйте простой WinForms (или WPF если вы можете) клиент, сервер WCF, EntityFramework для ORM и Oracle для DB. Клиент вызывает сервер. сервер использует EF для вызова DB. Этот трехуровневый дизайн довольно распространенный и простой. Что с этим не так?

PS: Я бы рекомендовал не использовать дуплексную связь, потому что это сложнее и не всегда работает. Какова ваша конкретная потребность в этом?

+1

+1 для упоминания WPF. Это ** путь ** проще и лучше для приложений, ориентированных на данные, чем winforms. –

+0

Как я могу немедленно направить изменения, сделанные на одном клиенте другому клиенту? –

+0

Общим способом является цикл обновления опросов сервера. Для более быстрого уведомления обратите внимание на WebSockets или SignalR – i3arnon

Смежные вопросы