5

可能周围有很多类似的问题,但是由于我只知道很少有解决方案,我不确定是否对我们有用,所以我正在寻找其他东西,也许是新技术......

我们所拥有的是这个不那么花哨的 USB 设备(当然,它需要加载驱动程序),并且它有几个 C++ dll 来帮助从中获取某些输出。最重要的是,我们制作了一个 C# 桌面应用程序,它以更有吸引力的方式使用设备(内部有大量互操作)。

到目前为止一切都很好,但是为了获得更大的灵活性,将应用程序提升到网络上......有哪些选择?

已知的解决方案是:

  • 1) ActiveX - 有点老技术,不是跨浏览器;
  • 2) .Net 'applet' - 不那么常见(这甚至是一个解决方案吗?)
  • 3) Java 小程序- 众所周知,但需要 JVM(因为我们选择了 C++,C# 可能超出了范围);
  • 4) USB 设备本身的 Web 服务- 我们的设备很轻,我们不能在那里拥有它。

还有其他方法吗?Silverlight 4、5(可能“脱离浏览器”)是一个可行的解决方案吗?现在这些新技术怎么样了?HTML 5还是什么?

EDIT1:特别是我对 Silverlight 感兴趣。有没有使用Silverlight的方法?

EDIT2:我发现了这个问题:Silverlight 可以访问访问 USB 端口的 .Net 库吗?. 从中我能理解什么?Silverlight 真的不是我的方案的可行解决方案吗?

编辑 3:非常重要!

这些设备需要在客户端使用!浏览的人必须在他们的 PC 上本地使用它们!

提前致谢。

4

3 回答 3

3

将应用程序提升到网络 [...]

简单的解决方案:让网络服务器(http 服务器)在连接到 USB 设备的 PC 上运行,并使用网络服务器的其中一个接口(如 CGI)与您的 USB 设备通信。这样,您只需编写一个 USB 转 CGI 包装程序,它可以是 C++ 或 C#。

于 2012-05-26T01:40:26.987 回答
2

另一种方法是编写浏览器插件。

您将面临的问题是浏览器中的内容通常在沙箱中运行,这样 Web 应用程序就无法访问计算机。这有充分的理由 - 主要是安全性。让一些代码在计算机上下文中运行的一种方法是拥有一个浏览器插件,该插件可以访问计算机的硬件资源,但可以与浏览器内容交互。不幸的是,您最终可能会为不同的浏览器编写不同的插件。

确实存在使编写浏览器插件更易于管理的框架。一个简单的搜索应该会找到其中一些候选人。

于 2012-05-22T16:18:03.663 回答
2

您可以使用 Silverlight 5,它可以让您访问您的文件系统和 USB 存储设备。如果您想控制其他 USB 设备(打印机、扫描仪等),您应该提供设备类型。我知道,Silverlight 5 与文件系统和网络摄像头配合得很好......)

于 2012-05-23T07:24:22.380 回答