Есть множество альтернатив, которые вы могли бы использовать для достижения этой цели.Как правило, это называется межпроцессное взаимодействие (IPC).
Из всех подходов я считаю встраивание веб-сервера в приложение Winforms наиболее гибким и простым решением, но имейте в виду, что это мой личный выбор.Я постараюсь дать вам другие возможные решения в этом посте:
1.Встроить сервер в ваше приложение Winforms
Это мой личный выбор.Вы можете углубиться в эту тему, ища больше о встраивании HTTP-сервера в Winforms, но вот несколько ссылок, которые могут дать указание на это:
Используя этот подход, выВ итоге получится полноценное приложение AspNet и легкое веб-приложение, которое напрямую интегрируется с кодом рабочего стола.Вы интегрируете эти два, как если бы вы интегрировали два веб-сервера: используя HTTP-вызовы и т. Д.
2 - Именованные каналы и TCP
Именованные каналы очень интересны, но вы должны тщательно выбратьмежду ними или TCP, так как у каждого есть свои плюсы и минусы.Вы можете найти пример Names Pipe / TCP здесь: https://github.com/jacqueskang/IpcServiceFramework
Для получения дополнительной информации об именованных каналах x tcp за и против, я нашел этот пост действительно полезным: http://saurabhsinhainblogs.blogspot.com/2015/09/what-is-difference-between-tcp-ip-and-Named-Pipes.html
3 - Очереди сообщений
Я как серебряная пуля.Огромная и тяжелая серебряная пуля, но все же серебряная пуля.Это прекрасно работает, в основном, с любым типом межпроцессного взаимодействия, поскольку у вас будет третий игрок, отвечающий за получение и передачу сообщений, и оба игрока (сервер / клиент) будут прослушивать или публиковать в этой очереди.Вы можете проверить NetMQ , RabbitMQ , MSMQ , RestBus , ActiveMQ , ZeroMQ или вы можете даже создать свой собственный, например, на основе SQL Server (хотя я бы не рекомендовал этого, если вы действительно не уверены в том, что делаете).
4 - Другие
У вас есть сокеты, файлы (с автоматическим контролем физической файловой системы) и множество других возможных подходов для выполнения интеграции без взаимодействия с пользователем.Даже если я приведу здесь 20 других подходов, скорее всего, будет пропущен один или два других.Просто найдите AspNet Core Interprocess Communication
, и вы найдете множество ресурсов об этом:)
Некоторые другие полезные ресурсы:
В этом посте есть надежная подборка ссылок, которая поможет вам на каждом этапе IPC.может пожелать проверить: https://weblogs.asp.net/ricardoperes/local-machine-interprocess-communication-with-net