在使用 Office.js 为 Office Online 开发的 Office 加载项中,托管 Office 应用程序的进程在哪里?
In an Office Add-in developed using Office.js for Office Online, where is the process hosting the office application?
我已经阅读了整个 VSTO 文档,并浏览了 MSDN 上的大部分 Office 加载项 (office.js) 文档,但没有找到我的问题的答案。
能否请您提供一个答案,如果可能的话,请将我指向 MSDN 上回答我问题的页面?
问题
在客户端电脑没有安装Microsoft Office,使用浏览器访问Office Online的场景下,他加载了使用Office.js编写的Office插件,在这样的场景下,托管 COM 对象及其驻留的 Office 进程的计算机在哪里?
以下是我对使用 Office.js 插件所涉及元素的理解:
有包含数据的打开 XML 文档。这只是死肉。它必须加载到进程中。
早些时候,该进程曾经是非托管的WINWORD.EXE(或EXCEL.EXE或POWERPNT.EXE或其他办公应用程序)进程。
现在,office.js,当使用 Office Online,即 Web 客户端时,非托管 Office 进程仍然需要在某些计算机的内存中分配?基本上,这是我问题的核心。
我的猜测是
它必须,并且该过程可能 运行 远程在
服务器。文档本身可能被远程托管,这不是
没什么大不了的,但是这个过程也是必需的,对于 Office
在线,非托管办公进程在远程计算机上运行。它
这个假设我想确认还是无效
有客户UI。这曾经是办公应用程序中的非托管 C++ 代码网格,由 .NET 使用 VSTO 和 Windows Forms 或 WPF 创建的托管 UI。现在,使用 Office.js,这是使用 HTML/CSS/JavaScript 完成的,并且可以由任何类型的客户端 (desktop/Web) 加载。
托管文档并提供基础 Document
、Bookmark
、Range
等 对象的进程。我的问题是——对于未在客户端计算机上安装 MS Office 的 Office Online 客户端,如果他们使用使用 office.js?
[=49= 编写的 Office 加载项,这个过程现在在哪里]
我假设 Office 加载项的 JavaScript API 只是调用我们已知的现有 Office COM 基础结构是错误的吗?如果我是对的,那么托管 Winword.exe(或任何 Office 应用程序)进程的机器在哪里?
Office Web 加载项 (office-js) 是利用特定库 (office-js) 促进加载项与主机应用程序之间通信的 Web 应用程序。
由于这些加载项只是 Web 应用程序,因此它们可以跨各种 Office 平台(Windows、Web、Mac、iOS)工作。对于基于浏览器的 Office 版本,加载项显示在 iframe
中。对于本机版本,它们托管在嵌入式浏览器中(IE11、Webkit 等,具体取决于平台)。
加载项由两个组件组成,XML 清单和 Web 应用程序。清单可以从许多位置加载,从直接侧面加载到网络共享,再到 Office Store. The web app is hosted wherever you would normally host your web apps (I recommend Azure 但我有点偏颇)。它们从不直接由 Microsoft 托管。
回答代码在何处执行的问题:本身没有 "COM" 对象(新一波 Office.js API 不是基于 VBA COM 对象,至少不是直接的)。但是确实有一个支持服务器打开了文档并在内存中。在Excel的情况下,Excel在线前端是一个相当"thin"层,几乎所有的操作都由支撑服务器执行。该服务器不直接 运行 EXCEL.exe,但它有一个有点像 Excel 的 Web 服务(并且共享许多相同的底层 C++ 代码),这运行s 在 "headless" 模式下,每个文档一个实例。另一方面,就 Word 而言,Word Online 有更多可以在本地执行的业务逻辑,因此很多操作都在浏览器上执行,并在空闲时间同步回服务器(很像最终用户操作),但仍有一个后备服务器为 Word Online 前端提供适当的数据,并处理一些操作(例如,range.getOoxml()
,或 image.getImage()
)。
希望对您有所帮助。
我已经阅读了整个 VSTO 文档,并浏览了 MSDN 上的大部分 Office 加载项 (office.js) 文档,但没有找到我的问题的答案。
能否请您提供一个答案,如果可能的话,请将我指向 MSDN 上回答我问题的页面?
问题
在客户端电脑没有安装Microsoft Office,使用浏览器访问Office Online的场景下,他加载了使用Office.js编写的Office插件,在这样的场景下,托管 COM 对象及其驻留的 Office 进程的计算机在哪里?
以下是我对使用 Office.js 插件所涉及元素的理解:
有包含数据的打开 XML 文档。这只是死肉。它必须加载到进程中。
早些时候,该进程曾经是非托管的WINWORD.EXE(或EXCEL.EXE或POWERPNT.EXE或其他办公应用程序)进程。
现在,office.js,当使用 Office Online,即 Web 客户端时,非托管 Office 进程仍然需要在某些计算机的内存中分配?基本上,这是我问题的核心。
我的猜测是 它必须,并且该过程可能 运行 远程在 服务器。文档本身可能被远程托管,这不是 没什么大不了的,但是这个过程也是必需的,对于 Office 在线,非托管办公进程在远程计算机上运行。它 这个假设我想确认还是无效
有客户UI。这曾经是办公应用程序中的非托管 C++ 代码网格,由 .NET 使用 VSTO 和 Windows Forms 或 WPF 创建的托管 UI。现在,使用 Office.js,这是使用 HTML/CSS/JavaScript 完成的,并且可以由任何类型的客户端 (desktop/Web) 加载。
托管文档并提供基础
[=49= 编写的 Office 加载项,这个过程现在在哪里]Document
、Bookmark
、Range
等 对象的进程。我的问题是——对于未在客户端计算机上安装 MS Office 的 Office Online 客户端,如果他们使用使用 office.js?
我假设 Office 加载项的 JavaScript API 只是调用我们已知的现有 Office COM 基础结构是错误的吗?如果我是对的,那么托管 Winword.exe(或任何 Office 应用程序)进程的机器在哪里?
Office Web 加载项 (office-js) 是利用特定库 (office-js) 促进加载项与主机应用程序之间通信的 Web 应用程序。
由于这些加载项只是 Web 应用程序,因此它们可以跨各种 Office 平台(Windows、Web、Mac、iOS)工作。对于基于浏览器的 Office 版本,加载项显示在 iframe
中。对于本机版本,它们托管在嵌入式浏览器中(IE11、Webkit 等,具体取决于平台)。
加载项由两个组件组成,XML 清单和 Web 应用程序。清单可以从许多位置加载,从直接侧面加载到网络共享,再到 Office Store. The web app is hosted wherever you would normally host your web apps (I recommend Azure 但我有点偏颇)。它们从不直接由 Microsoft 托管。
回答代码在何处执行的问题:本身没有 "COM" 对象(新一波 Office.js API 不是基于 VBA COM 对象,至少不是直接的)。但是确实有一个支持服务器打开了文档并在内存中。在Excel的情况下,Excel在线前端是一个相当"thin"层,几乎所有的操作都由支撑服务器执行。该服务器不直接 运行 EXCEL.exe,但它有一个有点像 Excel 的 Web 服务(并且共享许多相同的底层 C++ 代码),这运行s 在 "headless" 模式下,每个文档一个实例。另一方面,就 Word 而言,Word Online 有更多可以在本地执行的业务逻辑,因此很多操作都在浏览器上执行,并在空闲时间同步回服务器(很像最终用户操作),但仍有一个后备服务器为 Word Online 前端提供适当的数据,并处理一些操作(例如,range.getOoxml()
,或 image.getImage()
)。
希望对您有所帮助。