2016-06-23 3 views
0

Есть ли способ вызвать функцию для запуска во всех экземплярах приложения Windows Forms по локальной сети?Как вызвать функции на других компьютерах?

У меня есть приложение, которое содержит панель их собственного списка вакансий. Я хочу, чтобы другой пользователь на другом ПК создавал и назначал работу этому пользователю. После создания и сохранения я хотел бы обновить метод GetJobs();. Я еще ничего не сделал, поэтому, пожалуйста, пройдите :)

+0

Функция в программе на другом компьютере является большим прыжком сама по себе. Там есть много вещей, которые учитывают: Брандмауэры, учетная запись пользователя, в которой работает программа. Какой * интерфейс * вы собираетесь использовать для вызова функции в программе. Один optinon должен не использовать WinForms, но настроить «службу» на компьютерах для обработки этой функции. По крайней мере, для программы WinForms должен быть настроен какой-то приемник (TCP Socket) или Remote Procedure Call или Pipe. Вид интерфейса должен быть разработан с мыслью. –

+0

@ChrisWalsh: Все эти соображения были сделаны и решены почти 2 десятилетия назад. Эта технология называется [COM или DCOM] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa366757.aspx) (см. Также [История DCOM] (https://msdn.microsoft .com/en-us/library/6zzy7zky.aspx)) и реализует все возможности, необходимые для того, чтобы удаленные вызовы процедур были такими же легкими, как и вызовы локальной процедуры. Все проксирование и маршалинг выполняются автоматически. – IInspectable

+0

@ Необычный, вы имели в виду обратиться ко мне или к оригинальному плакату? –

ответ

3

У Криса Уолша отличный отзыв в его комментарии. Тем не менее, приложения Windows Forms могут взаимодействовать друг с другом, а самый простой метод для меня - WCF, сам сервер. Обычно код сервера не работает в потоке пользовательского интерфейса - по крайней мере, я не рекомендую его. Фактически, все WCF лучше всего работать в фоновом потоке в приложении Windows Forms, чтобы избежать блокировки пользовательского интерфейса. WCF имеет множество ошибок, с которыми вам придется обращаться.

Еще одна вещь, которую вы можете захотеть - это MSMQ, теперь называемый Message Queuing. Он может хранить очередь заданий для вас, и он не потеряет их, если мощность будет потеряна.

0

Я предполагаю, что у вас есть SQL Server Express Edition, установленный в качестве базы данных.

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

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

Вам нужен только один сервер, на котором размещена база данных.