【问题标题】:Creating a web application that can be accessed both online and offline创建一个可以在线和离线访问的 Web 应用程序
【发布时间】:2014-02-12 22:48:56
【问题描述】:

我是网络编程的新手。在过去的 8 年里,我一直担任桌面应用程序程序员。现在我的一个项目是使用 HTML 5 和一些 Java 脚本创建一个 Web 应用程序,该脚本可以在云端运行,也可以作为桌面应用程序下载以离线工作。我不需要任何数据库来存储任何数据。我正在考虑编写一个带有 Web 浏览器控件的 C# win 表单应用程序来加载 HTML 页面和 .js 文件。

我的问题是:

  1. 有可能实现吗?如果是的话,除了我上面提到的还有其他方法吗?
  2. 访问文件(html 文件、java 脚本文件等)等安全问题如何?是否可以从本地硬盘调用到我的应用程序中?
  3. 如果我可以将其作为桌面应用程序运行,如何确保客户端计算机中的任何人都无法访问源代码?

【问题讨论】:

  • Silverlight 怎么样(并在浏览器外运行)?
  • 我考虑过 Brad Christie,但我的应用程序更多的是计算,其中 HTML 和 java 脚本是最好的选择。
  • 如果您的 Web 应用程序仅由 html、css 和 javascript 组成,那么无论如何都可以下载所有文件,以便它们可以在本地浏览器上呈现/运行。添加带有 Web 组件的 Windows 窗体与仅在浏览器中运行没有什么不同。
  • 谢谢斯坎贝尔。我明白你的意思了。我的想法是编写 HTML、CSS 和 Java 脚本并将其作为在线应用程序发布到云上。要将其用作独立应用程序(适用于没有网络连接的不同客户),请创建 win form 应用程序。
  • 如果 Web 服务器是带有 ASP.NET 的 IIS,那么您的应用程序逻辑可以存在于动态生成 HTML 和 JavaScript 并将其发送到浏览器/浏览器控件的 DLL 程序集中,以防万一桌面应用程序的(可能使用内存流来放置然后读取代码)。这将需要更多的初步努力,但您只需编写一次代码创建部分,并且使用相同技术的 Web 和桌面将是相同的。

标签: c# html web


【解决方案1】:
  1. 这是可以实现的,但是为什么要将它包装在 C# Web 浏览器控件中对我来说并不真正有意义。使用 HTML5,您可以定义缓存清单文件来创建在任何支持它的浏览器中运行的离线应用程序,只要客户端有一个功能强大的浏览器,就不需要用任何东西包装它。他们甚至不必知道这是一个离线应用!
  2. 不太清楚您在此处关于安全问题的意思。这是一个巨大的话题。只需使用常识并意识到他们可以访问您存储在他们计算机上的任何内容(例如,不要给他们您的公钥/私钥对或存储任何密码或任何您不希望他们在您发送的文件中阅读的内容给他们)并使用安全连接在客户端和您的服务器之间来回发送敏感数据。
  3. 如果源代码在他们的机器上,你真的不能阻止任何人访问源代码。您可以做的最好的事情是在部署之前将其混淆到合理的程度,以使尝试阅读它的人更难阅读。

【讨论】:

  • 感谢 BoredBlazer。你的回答对我来说更有意义。但是,您能否进一步了解缓存清单文件?一些教程链接会很有用。
  • 关于数字 3.: 基本上是对的,但是 IMO 反编译和理解二进制文件的努力比理解和阅读纯 HTML / JavaScript 的努力更大,所以不能那么容易比较.
  • 这里有一个Mozilla article 关于它。基本上,HTML5 引入了一个称为应用程序缓存的标准,只要客户端访问过一次,它就允许您的 Web 应用程序 100% 正常运行。他们将始终为 Web 应用程序访问相同的 URL,但如果您尚未更新它,服务器已关闭,或者他们的网络已关闭,它将充当离线应用程序。当您更新应用程序时,只需更新缓存清单文件,他们下次访问 BOOM 时就会得到更新的应用程序。
  • @pasty 我同意你的观点,但由于他说它也将成为一个在线应用程序,因此将其包装在一个动态生成 HTML 的编译应用程序中确实不会更安全。客户端将能够以任何方式观察传递给他们的 html/javascript 内容。
  • 不完全正确,因为可以将 Web 浏览器组件配置为不允许显示上下文菜单和源代码!并且 OP 表示他想创建一个带有浏览器控件的 Windows 窗体应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 2014-07-10
  • 2018-03-13
相关资源
最近更新 更多