【发布时间】:2012-09-20 18:38:15
【问题描述】:
我支持安装在 Web 服务器上的 ASP.NET 应用程序和安装在不同应用程序服务器上的 VB6 应用程序。 VB6 应用程序和 ASP.NET 应用程序中存在代码重复。我想在 VB6 的 ASP.NET 应用程序中使用一些代码。我相信我有三个选择:
- 在 ASP.NET Web 服务中公开所需的功能。 VB6 应用将使用 Web 服务。
- 在 .NET 中重写 vb6 应用程序的一小部分并扩展 asp.net 应用程序。这将消除一些代码重复。
- 为 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 服务是关键任务并且需要立即备份,或者如果它们可以等待恢复,则将它们备份在故障转移集群上...