Лучший способ связи между консольным приложением dotnet-core и обычным приложением winforms - PullRequest
0 голосов
/ 10 июня 2019

Итак, я хочу иметь два приложения: первое будет графическим интерфейсом WinForms (возможно, .NET Framework), а второе - консольное приложение .NET Core, которое выполняет всю обработку.

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

Я думал, что смогу запустить консольное приложение, используя ProcessStartInfo, которое перенаправит вывод консольного приложения. Консольное приложение будет просто выводить все важные данные каждую секунду, а приложение WinForms будет затем фильтровать и обрабатывать эти выходные данные для получения данных.

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

1 Ответ

0 голосов
/ 10 июня 2019
  1. Я никогда не делал то, что вы пытаетесь сделать, но я хотел бы взглянуть на программирование сокета C # таким образом, вы можете установить связь между двумя приложениями, которые могут свободно передавать данные между ними, но для этого потребуется сервер / клиентХорошая новость заключается в том, что вы можете запустить сервер, запустив процесс и затем установив соединение.

https://docs.microsoft.com/en-us/dotnet/framework/network-programming/socket-code-examples

Создайте службу, которая работает в фоновом режиме с использованием SOAP или Socket https://www.guru99.com/soap-simple-object-access-protocol.html

ASP.NET MVC API (наименее предпочтительный), но он будет поддерживатьмногие другие проекты и могут работать по HTTP

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

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