我正在构建一个分布式菜单系统来支持大型企业的运营方面。 我们的想法是,用户可以使用此应用程序启动Web应用程序(在线或离线),驻留在远程服务器上的虚拟化应用程序,以及我们无法承受的本地安装的传统胖客户端应用程序(阅读:C / C ++ ,基于Java。)
一些额外要求:
服务器端。目前,我已经确定ServiceStack作为我的RESTful Web服务框架,由SQL Server Enterprise数据库支持。目前,服务器端并不是一个关键问题。最后,我需要考虑安全性,角色授权等,但是现在我在服务器上有一个很好的处理。
客户端候选解决方案。客户端是另一回事。我已经研究了这个问题的各种方法,其中没有一个是理想的(主要是由于浏览器沙箱安全性。)我正在寻找更好的替代方案:
如果你已经做到这一点,那就值得称赞!基本上,这个应用程序正在取代用脚本构建的遗留菜单,这需要军队维护和更新。我确信这个问题有一些头重脚轻的SOA解决方案,但预算不会支持对前端设计和长期维护的大量投资。
如果到目前为止我已经检查了候选人的替代方案,请告诉我。鉴于上述要求,我的问题的理想解决方案是什么?
编辑:我对这个SharePoint Quick Launch Web Part很感兴趣。有没有人有这方面的经验,或者知道如何从SP中解决这个问题?
答案 0 :(得分:1)
在我看来,有很多可能的方法来实现您描述的功能集,但您仍然坚持如何以跨浏览器,跨平台的方式从基于浏览器的应用程序执行本机应用程序。
我担心实现这一目标的唯一方法是为每个要支持的浏览器开发一个小插件。对于Firefox来说,这很简单,因为有一个XPCOM API(nsIProcess)用于调用新进程。在IE中,您可以编写一个用C ++实现并授予必要权限的ActiveX。在Chrome中,您别无选择,只能编写NPAPI插件。
如果是我,我会为Firefox和Chrome编写一个NPAPI插件,因为网页可以为两个浏览器使用相同的代码。对于IE,您可以编写一个ActiveX,其访问方式与插件的访问方式大致相同。因此,希望能够启动外部进程的网页将嵌入插件,设置必要的属性值(即执行进程的路径)并在嵌入对象上调用方法。
答案 1 :(得分:0)
基于提供的优秀教程,我尝试使用SiteFusion构建分布式菜单系统。它是基于PHP的XUL应用程序客户端/服务器框架,因此允许客户端执行本地本机应用程序。虽然服务器仅在* NIX平台上受支持,但客户端可以在任何地方运行。这个解决方案似乎是我所陈述的大多数要求的理想选择。