【问题标题】:Alternatives For ActiveX in .NET [closed].NET 中 ActiveX 的替代方案 [关闭]
【发布时间】:2015-08-13 03:57:11
【问题描述】:

我知道有很多线程在讨论这个话题,但请让我详细讨论一下我的问题。

在我们的项目中,我们在桌面应用程序中使用了大量设备(相机、打印机、指纹设备、智能卡读卡器),并且我们已经开发了 C# 组件来使用它们的 SDK 处理这些设备。

现在的问题是我们正在转向 Web 开发,我们应该将 WPF 桌面应用程序转换为 ASP.NET MVC Web 应用程序,并且我们应该使用我们现有的设备组件。

处理来自 web .Net 应用程序的设备的可能解决方案是:

  1. 使用 ActiveX(已死或即将死,需要一些 COM 经验且很难开发)。
  2. 使用 Silverlight(另外,已死或即将死,并且非常有限,因此我们无法添加对现有 C# 组件的引用)。
  3. 使用 Java 小程序(需要一些 Java 经验,我们将用 Java 重写现有的 c# 组件)。

还有其他解决方案可以让我们通过 Intranet 处理来自 ASP.NET MVC 应用程序的设备吗?

【问题讨论】:

  • 浏览器中的Java小程序已经死了。
  • stackoverflow.com/questions/13021723/… 接受的答案可能会有所帮助。
  • The problem now is that we are moving into web development - 完全正确。当您需要这样的硬件访问时,Web“应用程序”不适合。保留您的桌面应用程序并将网络用于网络的目的。
  • 我还在寻找相同的解决方案吗?

标签: c# asp.net asp.net-mvc wpf activex


【解决方案1】:

您可以为ChromeFirefox 和 Edge(很快)编写浏览器扩展。如果您需要将浏览器全部定位,我不确定您将在浏览器中获得多少代码重用,并且我不确定您可以在多大程度上运行任意代码以从您的扩展程序连接到设备,但它是你应该调查的东西。然后,您可以让您的浏览器扩展程序与您的网页通信以传递必要的数据。

您的用户需要为其浏览器安装扩展程序才能使用该功能。

【讨论】:

    【解决方案2】:

    您仍然可以分发基于当前 WPF 应用程序的精简版本的小型“帮助”应用程序。这些将执行设备访问,并直接与您的 Web 服务器通信。该网站将用作界面。

    这将允许您利用现有的设备通信代码。不利的一面是,它需要在客户端上进行单独安装,这意味着用户要做的另一件事和保持更新的另一件事。

    【讨论】:

    • 我不认为这是一个解决方案。仅仅为了使用蹩脚的网络浏览器而将单个 .Net 应用程序拆分为多个较小的应用程序是一个非常糟糕的决定。
    • @HighCore 这是我见过的公司使用的完全可行的替代方案。它并不适合所有情况,但它是一种可能的解决方案。
    • 这种方法与成熟的 .Net (WPF) 应用程序相比有什么优势?
    • @HighCore 该问题明确指出他们正在转向网络界面。我不知道为什么。这有很多优点。你应该能够想到其中的一些。例如,也许您的站点应该与 GPS 设备通信,因此您可以利用现有的 .NET 代码来执行同步,同时利用网络在任何设备上运行的能力,编写一次即可在任何地方运行。也许他的新老板喜欢网络。或者他们发现招聘 Web 开发人员比 WPF 更容易。就像我说的,我不知道转向网络的确切原因,但稍微想象一下就会发现原因。
    • @HighCore 如果您看不到网络的好处,那也没关系。但是你没有为这个讨论做出任何贡献。我没有说 .NET 应用程序可以在任何地方运行,我说 Web 可以。对于 GPS 应用程序,例如跟踪慢跑,您可能希望利用现有代码在 Windows 计算机上执行同步,但用户应该能够从任何计算机、平板电脑或手机查看当天。网络是一次编写,随处运行。现在您只需要一个,而不是为每个平台维护多个不同的应用程序。这种方法有很多优点。
    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 2010-10-11
    • 2017-03-23
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2013-04-04
    相关资源
    最近更新 更多