2012-04-07 2 views
0

Я работаю над большим проектом (команды работают отдельно), и теперь, когда большинство приложений завершены, нам нужно объединить все вместе. Множество приложений/форм необходимо передавать информацию другим приложениям или формам или запрашивать информацию у других; Интересно, есть ли стандартные способы сделать это. То, как мы планируем это делать, - это использование общих файлов (например, одно приложение записывает информацию в файл, а другое - читает). Какие-либо предложения?Связь между приложениями WinForms в крупном проекте

+0

очень сильно зависит от того, что вы хотите поделиться, и когда. Не могли бы вы добавить какой-то контекст? Грубое описание рабочего процесса, в котором участвуют ваши различные приложения, помогло бы, а также то, являются ли эти приложения совладельцами в одном и том же поле, составляют часть распределенного приложения и т. Д. –

+1

Я бы использовал центральную базу данных для связи. –

+0

@ValAkkapeddi Это приложение для изучения языка (клиент-сервер). Вот быстрый сценарий: учитель входит в систему (приложение учетной записи mgmt) -> учитель создает/редактирует/... викторины или тесты, оценки завершенных экзосов и т. Д. (Тестовое приложение для создания). Последнее приложение нуждается в верительных грамотах учителя для работы. – saadtaame

ответ

0

Что касается вашего вопроса, я считаю, что существует очевидный недостаток в использовании совместного использования файлов, что является задержкой в ​​работе из-за операций ввода-вывода.

Кроме того, есть и другие варианты, пожалуйста, смотрите ниже:

Чтобы полностью реализовать свои потребности, вы должны отделить связь между приложениями и связи между формами внутри приложения.

Чтобы реализовать связь между приложениями, я бы предложил использовать шаблон подписчика/издателя с использованием WCF. Реализация довольно проста. Вы можете это сделать. Одним из примеров является here. Таким образом, вы можете точно контролировать, когда что-то произойдет, а другое приложение должно повториться, как вы ожидаете.

Чтобы реализовать связь между формами в приложении, лучше создать агрегатор событий с использованием шаблона Pub/Sub, а затем ввести его в ваше приложение. Вы можете посмотреть, как это реализовано в SCSF.

1

Да, как @Uwe Keim сказал в комментарии, вы обязательно должны использовать базу данных для всего. Ответ на SO не предназначен для того, чтобы начать преподавать вам реляционные базы данных и как правильно их использовать из приложений C#. Вы должны сказать человеку, управляющему командами, что это путь, и попросите их выяснить, кого нанять, чтобы решить эту проблему.

0

Еще одно решение - реализовать протокол сообщений, чтобы приложения обменивались данными друг с другом. Чтобы избежать узких мест, служба обмена сообщениями может осуществлять обмен сообщениями message queue.

Ссылки:

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