.Net TCP vs WCF vs Powershell

时间:2012-06-03 10:16:17

标签: c# .net wcf powershell

这已经被问了很多,但我正在寻找更具体的答案。

我正在设计/开发一套依赖于与代理和经理沟通的应用程序。他们将沟通命令(从经理到代理)和统计(代理到经理)。目前,这套应用程序只能在Windows平台上运行,但最终应该扩展到其他系统。使用此应用程序的某些地方可能不希望在他们的系统中安装大量应用程序,有些人可能不希望管理器端坐在那里榨汁(分析!)因此可能需要它在云中。

所以,我知道我可以使用.Net TCP套接字,它似乎具有良好的原始性能并且允许我具有很大的灵活性。

我也知道我可以使用Windows Communication Foundation,这似乎是一个更好的选择。

但是,当我发送命令和接收统计信息时,我可以使用Powershell远程连接并使用服务器提供的大量命令,排除编写客户端应用程序的全部停止。

请记住,这些应用程序(特别是客户端)应该只是坐在那里,保持安静,做好自己的工作而不干扰一般操作,你会建议哪些更好?

如果您需要更多说明,我会很乐意这样做!

感谢。

2 个答案:

答案 0 :(得分:1)

  

他们将传达命令(从服务器到客户端)和   统计信息(客户端到服务器)。目前,这套套房   应用程序只能在Windows平台上运行,但最终会运行   应该扩展到其他系统。

在您的描述中,有一项要求与Power Shell不兼容。 Power Shell仅适用于Windows世界。

如果配置正确,WCF服务不应使用任何资源。 IIS和WAS能够按需加载服务(从客户端获取请求时),并在不需要时卸载。

http://blogs.msdn.com/b/blambert/archive/2009/02/13/enable-iis.aspx

http://msdn.microsoft.com/en-us/library/ms731053.aspx

从性能的角度来看,TCP套接字是最好的,但不幸的是,实现将需要大量额外的DEV和QA工作来实现WCF中已存在的所有管道。当你完成这项工作后,你将有一个与行业标准不兼容的“自行车”。

我的投票是WCF。

答案 1 :(得分:1)

您描述应用程序的方式,我会将其重新定位为位于客户端的“代理”和位于服务器上的经理。如果是这样,管理员就会向代理发送命令,代理会响应或存储管理员可用的静态信息。

对于这样的体系结构,您可以想象使用 WMI ,在代理上使用WMI提供程序,并在服务器上观察您想要的内容。可以在服务器上使用Powershell来查询代理。在不久的将来,您可以使用相同的体系结构,将您的代理放在具有NanoWBEM的Linux机器上,位于WS-Man协议之上(请参阅Standards-based Management in Windows Server “8”)。