在编写新的c#应用程序以替换vb6应用程序时,可以用来替换COM对象的内容是什么?

时间:2018-11-08 15:28:17

标签: c# com vb6

背景:

我有一个旧的vb6应用程序,我真的需要摆脱这种生活。我喜欢用C#编写代码,并希望创建一个应用程序来替换旧的vb6应用程序。

vb6应用程序具有通过IIS安装的组件应用程序,并且主GUI vb6应用程序已连接到该组件应用程序以用于各种目的。 COM应用程序/组件存在的原因是,使所做的所有事情都来自同一来源。

例如:我正在远程工作,需要连接到只能从我的工作网络访问的FTP服务器。主GUI应用程序连接到COM对象,发出命令,然后该组组件从我的工作网络/ ip(而不是我的家庭网络/ ip)创建FTP连接。

问题:

在替换此旧的应用程序GUI和COM对象时,c#中的最佳方法是什么?我应该仍然使用我讨厌的旧Component Services吗?还是有更新,更好的方式来完成相同的任务?

1 个答案:

答案 0 :(得分:1)

使用需要COM的FTP并没有什么特别的(当然,用C#编写GUI也不需要COM)。

如果我正在这样做:

确保通过适当的接口/模式将GUI与后端通信分开,以便可以轻松地替换事物,并使应用程序更加“面向未来”。

编辑:

那么,您真正想得到的是:我怎么有一个GUI前端通过各种方式与后端对话?

因此,对此有很多答案,基本上可以归结为:不要这样做,“选择并坚持使用车道”或“使用WCF”。

WCF(Windows Communication Framework https://docs.microsoft.com/en-us/dotnet/framework/wcf/whats-wcf)是一种后端服务器端技术,它同时支持多种通信协议,但通常允许您在客户端和服务器之间进行交互。 SOAP最初是流行的选择,但它也支持Remoting(您提到过),您可以通过DIME发送附件,就像FTP一样,也可以自己动手做任何您想做的事(例如,使用Capn Proto( https://capnproto.org/)发送二进制消息。

或者,如果您可以尝试做所有事情,那么您可能需要研究REST,而REST是Web API(https://msdn.microsoft.com/en-us/library/dn448365(v=vs.118).aspx所支持的)。这样一来,您就可以来回发送轻量级数据,并且通常是如今的“完成方式”。

祝你好运!