我有一个旧的vb6应用程序,我真的需要摆脱这种生活。我喜欢用C#编写代码,并希望创建一个应用程序来替换旧的vb6应用程序。
vb6应用程序具有通过IIS安装的组件应用程序,并且主GUI vb6应用程序已连接到该组件应用程序以用于各种目的。 COM应用程序/组件存在的原因是,使所做的所有事情都来自同一来源。
例如:我正在远程工作,需要连接到只能从我的工作网络访问的FTP服务器。主GUI应用程序连接到COM对象,发出命令,然后该组组件从我的工作网络/ ip(而不是我的家庭网络/ ip)创建FTP连接。
在替换此旧的应用程序GUI和COM对象时,c#中的最佳方法是什么?我应该仍然使用我讨厌的旧Component Services
吗?还是有更新,更好的方式来完成相同的任务?
答案 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所支持的)。这样一来,您就可以来回发送轻量级数据,并且通常是如今的“完成方式”。
祝你好运!