【问题标题】:VB6 and ASP.NET interoperabilityVB6 和 ASP.NET 互操作性
【发布时间】:2012-09-20 18:38:15
【问题描述】:

我支持安装在 Web 服务器上的 ASP.NET 应用程序和安装在不同应用程序服务器上的 VB6 应用程序。 VB6 应用程序和 ASP.NET 应用程序中存在代码重复。我想在 VB6 的 ASP.NET 应用程序中使用一些代码。我相信我有三个选择:

  1. 在 ASP.NET Web 服务中公开所需的功能。 VB6 应用将使用 Web 服务。
  2. 在 .NET 中重写 vb6 应用程序的一小部分并扩展 asp.net 应用程序。这将消除一些代码重复。
  3. 为 ASP.NET 应用程序设置类库。在 Web 服务器上安装 vb6 应用程序。在类型库中公开类库中所需的功能。

哪个选项最好?我认为选项 2 是最好的。

【问题讨论】:

  • 我个人会选择#1,但我不知道从 VB6 调用 Web 服务有多难。而且我很支持面向服务的体系结构......但我不确定这个问题是否在主题上。这更像是一个软件工程/设计问题,而不是一个特定的编码问题。
  • @David Stratton,你能描述一下你的意思吗:“我很喜欢面向服务的架构。”谢谢。
  • 我的意思是“有偏见”。几年前,我们开始通过 Web 服务使用 SOA,这样做使编码更简单,维护更简单,故障排除也更简单。必须在一个地方更改代码,因为更改是在 Web 服务级别,因为它在多个应用程序中使用,所以必须重新编译相同的 .dll 一百个地方要容易得多。权衡是,如果 Web 服务“破坏”了数百个应用程序失败,但在我们的例子中,通过知道如果数百个应用程序破坏,我们可以将其固定到 Web 服务来抵消。但这是在我们的企业环境中。
  • @David Stratton,对性能有影响吗?
  • 我们看不到它们。我们实际上运行了测试,比较了使用 Web 服务将 SQL 调用定向到我们的 SQL Server 和我们的 IBM DB2,并且与直觉相反,Web 服务更快。分析数据包后,发现他们更有效地利用了数据包。最重要的考虑因素是灾难恢复 IMO。如果 Web 服务是关键任务并且需要立即备份,或者如果它们可以等待恢复,则将它们备份在故障转移集群上...

标签: asp.net vb.net vb6


【解决方案1】:

选项 1。这会将您共享的、已经测试过的代码留在最现代的平台上。

【讨论】:

    【解决方案2】:

    这很难回答,因为每个公司和每种情况都会有所不同。

    作为一般规则,我非常赞成在可能的情况下使用 Web 服务,特别是如果多个应用程序出于以下原因使用相同的逻辑:

    • 如果我必须更改逻辑,我可以在一处完成并修复所有依赖它的应用
    • 数据库连接字符串等也是如此。
    • 错误修复通常也可以在一个地方修复。
      • 我在处理需要处理的特定数据库时遇到了困难,供应商的更新往往会破坏他们的 .NET 适配器。我不得不两次修改/重新编译大量应用程序来解决这个问题。从那时起,我们制定了仅通过 Web 服务连接到该数据库的政策,因此我以后只需要更新 一个 应用程序。
    • 在开发移动应用程序时,我们已经在 Web 服务中拥有了所有代码这一简单事实使得编写严格的 UI 应用程序并将业务/数据库访问逻辑保持在现有 Web 服务中的状态变得更加容易。

    所有这些都是 SOA 方法的“标准”论据。

    考虑到所有因素,我的第一个建议是,不知道您的具体情况是选项#1。

    还有第四个选项 - 完全重写 VB6 应用程序,如果可行,并且您可以说服那些控制预算和时间分配的人。即使这样,您也可以使用面向服务的架构并将大部分逻辑拆分为 Web 服务。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多