Передача данных на сервер для вычисления

0 user22119 [2014-02-05 16:40:00]

Как создать программу в С#, которая работает на рабочем столе, но в некоторых случаях может передавать переменные и объекты на сервер. Затем сервер обработает переменные перед возвратом результата в программу на рабочем столе для дальнейшей обработки.

Так, например, я хочу передать удвоениям 3.5 и 4.5 на сервер. Затем сервер добавит 3.5 и 4.5, чтобы вернуть 8 в программу на рабочем столе. Затем программа 8 будет использоваться программой на рабочем столе.

Должен ли я писать две отдельные программы? Один на сервере и один на рабочем столе. И если да, как мне их связать. т.е. как передавать данные из программы на рабочем столе в программу на сервере и наоборот?

Большое спасибо за любую помощь.

c# sockets communication


2 ответа


2 Решение Samuel [2014-02-05 17:04:00]

Вам не нужны две разные программы. Хотя это проще, вы можете придерживаться того, который работает в разных режимах.

WCF, WebApi, ServiceStack, MessageBus могут быть использованы для этого.

Но вы делаете прыжок, который трудно достичь сразу.

У вас есть синхронное локальное приложение (все работает в одном приложении), и вы хотите перейти к асинхронному удаленному приложению (все распараллеливается и выполняется на другой машине). WCF и т.д. Дает вам легкий старт, однако я бы рекомендовал более мелкие шаги, так как он не смягчает все проблемы.

Сначала сохраните синхронное приложение и сделайте его асинхронным. Поэтому он выдает некоторое сообщение (скажем, два удваивается) самому себе в многопоточной среде и ждет его без блокировки.

Это вводит свой собственный набор проблем (потоки, ожидания, блокировки).

После того, как вы это сделали, вы должны экстеризировать свои функциональные возможности в отдельное приложение или одно и то же приложение, работающее в режиме "сервер", что приведет к асинхронному локальному приложению. На этом этапе вы пересекаете границы приложений, уже достигнув потоков и все еще являющихся локальными.

После того, как вы это сделали, начните думать о размещении серверного приложения на удаленной машине и справиться с этим (связь, доступность ресурсов, протоколы и т.д.),

Каждый шаг сложный. Выполняя все сразу, вам нужно будет обрабатывать многопоточность, блокировать приложение, сложность WCF, обработку соединения (тайм-ауты, прокси, недоступные ресурсы, прерывания соединения и т.д.) И одновременно выполнять аутсорсинг.


0 mmilleruva [2014-02-05 16:53:00]

Да, вам нужны две программы. Как уже упоминалось, WCF и ASP.NET WEB API являются двумя наиболее распространенными технологиями Microsoft, которые можно использовать, хотя вы можете использовать любую технологию, которую хотите. В основном вам необходимо создать приложение на стороне сервера в WCF или ASP.NET, после чего вы добавите ссылку на службу в свое клиентское приложение. При создании этой служебной ссылки вы укажете URL-адрес своей службы, а Visual Studio построит классы, необходимые для связи между приложениями. Как только это будет сделано, вы можете делать вызовы к серверному приложению таким же образом, как и любой обычный метод.