在编写新的c#应用程序来替换vb6应用程序时,可以使用什么来替换COM对象? 背景:

在编写新的c#应用程序来替换vb6应用程序时,可以使用什么来替换COM对象? 背景:,c#,com,vb6,C#,Com,Vb6,我有一个旧的vb6应用程序,我真的需要摆脱我的生活。我喜欢用c#编写代码,并想制作一个应用程序来取代旧的vb6应用程序 vb6应用程序有一个组件应用程序,该组件应用程序通过IIS安装,并且主GUI vb6应用程序出于各种目的连接到该组件应用程序。COM应用程序/组件存在的原因是,所做的一切都来自同一来源 我正在远程工作,需要连接到只能从works网络访问的FTP服务器。主GUI应用程序连接到COM对象,发出命令,然后该组组件从我的工作网络/ip(而不是我的家庭网络/ip)创建FTP连接 问题:

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

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

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

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

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

如果我在做:

  • WPF GUI(WinForms消失后的未来证明…并为您提供了WinRT的支持,WinRT还支持XAML)
  • FTP库中的Nuget,如下所示:
确保通过适当的接口/模式将GUI与后端通信分开,这样您就可以轻松地替换东西,并使应用程序更“经得起未来的考验”

编辑:

所以,您真正想要的是:如何让GUI前端通过各种方式与后端对话

所以,有很多答案,基本上可以归结为:不要这样做,“选择一条车道并坚持下去”,或者“使用WCF”

WCF(Windows Communication Framework)是一种后端服务器端技术,它同时支持多种通信协议,但通常允许您在客户端和服务器之间进行交互。SOAP最初是流行的选择,但它也支持远程处理(您提到过),您可以通过类似FTP的DIME发送附件,或者您可以自己滚动并执行任何您想要的操作(例如,使用Capn Proto()发送二进制消息)

或者,如果您不想尝试做任何事情,您可能希望转而研究Web API()支持的REST。这将允许您来回发送轻量级数据,这通常是目前“完成的方式”


祝你好运

从未使用过COM对象。。。你能用某种RPC机制替换它吗?我能看到否决票的唯一原因是,在没有对COM的深入了解的情况下,我不知道你想要实现什么,以便提出备选方案。我没有否决票,但我相信这是因为不清楚你在这里要求什么。一般来说:在你所说的(通过FTP进行对话的GUI)中似乎没有任何暗示它甚至需要COM的东西。你能澄清一下吗?COM通常在与遗留元素对话时非常有用。。。你有没有什么遗产方面的东西是你想要完成的?@BradleyDotNET谢谢,我不确定。我会调查的。@ReginaldBlue我100%的回答了你的问题。不知道我怎么能说得更清楚。我谈到了当我在不同的位置(家)工作时,我需要如何通过FTP发送文件。这与IP限制等有关。是否有人认为这里找到的
.NET Framework Remoting Application
是我更换组件的一个好方法?我想你可能把重点放在了这个问题的错误想法上。应用程序和组件做很多事情(不仅仅是FTP)。FTP只是一个通常最了解的常见任务/协议,所以我以它为例。我必须从特定的IP地址发送数据。这就是为什么我必须在这个旧的vb6应用程序中使用COM。另外,第一句话我喜欢你的答案!它会给我一些可以射击的东西。我一直在寻找一个进入WPF的理由,尽管我已经逃避了这么久。谢谢这就是你的问题让人困惑的地方。:-)很抱歉。我是不是在评论中说了什么让问题更清楚了?如果是这样的话,我可以编辑我的问题。谢谢你的编辑,有很多很棒的信息,我还有很多研究要做。我知道我必须支持的操作之一是FTP。我不需要向我开发的客户端和服务器发送数据,也不需要从客户端和服务器发送数据,但最终使用gui的用户需要将文件发送到我无法控制的第三方FTP服务器。有很多事情要考虑。在这一点上,我不知道我将走向何方。但我想使用众所周知的、实践过的方法,比如远程DLL等等。