如何在桌面上运行的C#创建一个程序,但在某些情况下可以将变量和对象传递给服务器。然后,服务器将在将结果返回到桌面上的程序之前进行处理。
因此,例如,我想将双打3.5和4.5传递给服务器。然后,服务器将添加3.5和4.5,以将8返回到桌面上的程序。然后,该程序将在桌面上进一步使用8号。
我必须编写两个单独的程序吗?一个在服务器上,一个在桌面上。如果是这样,我该如何链接它们。即,如何将数据从桌面上的程序传递到服务器上的程序,反之亦然?
非常感谢您的任何帮助。
您不需要两个不同的程序。虽然可以更容易地坚持使用以不同模式运行的方式。
WCF
, WebApi
, ServiceStack
, MessageBus
可用于。
但是您正在做一个很难立即实现的跳跃。
您有一个同步的本地应用程序(所有内容都在一个应用程序中运行),并且您想进入异步远程应用程序(所有内容都是并行化并在另一台计算机上执行的)。 WCF
等。
首先保留同步应用并使其异步。因此,它会在多线程环境中向其发出一些消息(例如两个双打),并在不阻止的情况下等待它。
这引入了自己的一组问题(线程,等待,锁)。
完成后,应将您的功能外部化为单独的应用程序或以"服务器"模式运行的同一应用程序,从而导致异步本地应用程序。在此步骤中,您在已经达到线程并仍然是本地的同时,跨越了应用边界。
完成此操作后,开始考虑将服务器应用程序放在远程计算机上并处理(通信,资源可用性,协议等)
)每个步骤都是复杂的。通过立即完成所有操作,您将需要处理多线程,阻止应用程序,WCF
的复杂性,连接处理(超时,代理,不可用资源,连接中断等)和同时外包处理。
是的,您确实需要两个程序。如前所述,WCF和ASP.NET Web API是最常见的Microsoft技术,尽管您可以使用任何想要的技术。基本上,您需要在WCF或ASP.NET中构建服务器端应用程序,然后将服务引用添加到客户端应用程序中。创建该服务参考时,您将指定服务的URL和Visual Studio的URL,将构建在应用程序之间进行通信所需的类。完成此操作后,您可以按照使用任何普通方法的方式对服务器应用程序进行呼叫。