【问题标题】:When writing a new c# app to replace a vb6 app, what can be used to replace COM objects?在编写新的 c# 应用程序来替换 vb6 应用程序时,可以使用什么来替换 COM 对象?
【发布时间】:2019-04-12 03:37:02
【问题描述】:

背景:

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

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

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

问题:

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

【问题讨论】:

  • 从来没有使用过 COM 对象...你能用某种 RPC 机制替换它吗?我认为不赞成投票的唯一原因是,如果没有对 COM 的深入了解,我不知道您要完成什么以提出替代方案
  • 我没有投反对票,但我相信这是因为您在这里要求的内容并不完全清楚。一般来说:你所说的(通过 FTP 对话的 GUI)似乎没有任何暗示它甚至需要 COM。你能澄清一下吗? COM 通常对于与遗留元素进行对话很有用......您是否正在尝试完成一些遗留方面?
  • @BradleyDotNET 谢谢,我不确定。我会调查的。
  • @ReginaldBlue 我 100% 确实解决了您的问题。不知道我怎么能更清楚。我谈到了在不同的位置(家)时我需要如何通过 FTP 从工作中发送文件。它与IP限制等有关。
  • 有人认为.NET Framework Remoting Application 在这里找到docs.microsoft.com/en-us/previous-versions/dotnet/… 是我更换组件的好方法吗?

标签: c# com vb6


【解决方案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/) 发送二进制消息)。

或者,如果您可以避免尝试做任何事情,您可能需要研究 Web API (https://msdn.microsoft.com/en-us/library/dn448365(v=vs.118).aspx) 支持的 REST。这将允许您来回发送轻量级数据,并且通常是这些天的“完成方式”。

祝你好运!

【讨论】:

  • 我认为您可能会关注这个问题的错误想法。应用程序和组件做了很多事情(不仅仅是 FTP)。 FTP 只是一个通常最了解的常见任务/协议,所以我以它为例。我必须从特定的 IP 地址发送数据。这就是为什么我必须在这个旧的 vb6 应用程序中使用 COM。除了第一句话,我喜欢你的回答!它会给我一些可以拍摄的东西。我一直在寻找进入 WPF 的理由,尽管我已经避免了这么久。谢谢!
  • 这就是您的问题令人困惑的地方。 :-)
  • 很抱歉。我在评论中是否说了其他让问题更清楚的内容?如果是这样,我可以编辑我的问题。
  • 感谢您的编辑,提供了很多很棒的信息,我还有很多研究要做。我知道我必须支持的操作之一是 FTP。不适合我向我开发的客户端和服务器发送数据,但最终我的用户使用我的 gui 需要将文件发送到我无法控制的第三方 FTP 服务器。很多事情要考虑。在这一点上,我不知道我会往哪个方向走。但我想使用远程 dll 等众所周知和实践过的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
相关资源
最近更新 更多