当编写一个新的c#应用程序来替换vb6应用程序时,什么可以用来替换COM对象



背景:

我有一个旧的vb6应用程序,我真的需要离开我的生活。我喜欢用c#编写代码,并想制作一个应用程序来取代旧的vb6应用程序。

vb6应用程序有一个组件应用程序,它是通过IIS安装的,主GUI vb6应用程序连接到该组件应用程序用于各种目的。COM应用程序/组件存在的原因是,所做的一切都来自同一个来源。

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

问题:

在替换这个旧的应用程序GUI和COM对象时,c#中最好的方法是什么?我还应该使用我非常讨厌的旧Component Services吗?或者有没有一种新的、更好的方法来完成同样的任务?

使用FTP并不需要COM(当然,用C#编写GUI也不需要COM(。

如果我在做:

  • WPF GUI(当WinForms不复存在时的未来证明…并为您提供支持XAML的WinRT(
  • FTP库中的Nuget,如下图所示:https://www.nuget.org/packages/Ftp.dll/

请确保通过适当的接口/模式将GUI与后端通信分离,这样您就可以轻松地更换应用程序,而且更"经得起未来考验"。

编辑:

所以,你真正想要的是:我如何才能有一个通过各种方式与后端对话的GUI前端?

因此,有很多答案,基本上可以归结为:要么不要这样做,要么"选择一条车道并坚持下去",要么"使用WCF"。

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

或者,如果您可以摆脱一切尝试,您可能需要研究Web API支持的REST(https://msdn.microsoft.com/en-us/library/dn448365(v=vs.118(.aspx(。这将允许您来回发送轻量级数据,通常是目前的"工作方式"。

祝你好运!

最新更新