2017-07-28 113 views
0

我已經閱讀完整的VSTO文檔,並開始瀏覽MSDN上的大多數Office加載項(office.js)文檔,但沒有找到我的問題的答案。在使用Office Online的Office.js開發的Office加載項中,託管Office應用程序的進程在哪裏?

您能否給我一個答案,如果可能的話,請將我指向MSDN上的頁面以回答我的問題?

問題

在一個場景中,客戶端計算機沒有安裝Microsoft Office,並使用瀏覽器訪問Office Online和他加載一個Office加載使用Office.js寫的,在這種情況下,駐留COM對象和Office進程的計算機在哪裏?

這是我參與使用Office.js插件元素的理解:

  1. 有擁有數據的開放式XML文檔。這只是死肉。它必須被加載到一個進程中。

    此前,該進程曾經是非託管的WINWORD.EXE(或EXCEL.EXE或POWERPNT.EXE或其他辦公應用程序)進程。

    現在,有了office.js,當使用Office Online,即Web客戶端時,非託管Office進程仍然必須在某些計算機的內存中分配?基本上,這是我的問題的核心。

    我的猜測是 它必須,並且該過程可以在 服務器上遠程運行。文檔本身可能是遠程託管的,這不是一個大問題,但這個過程也是必需的,而在Office的情況下,非託管辦公室進程在遠程計算機上運行。它 是我想確認或無效的這個假設。

  2. 有客戶端用戶界面。這曾經是Office應用程序中的非託管C++代碼的網格,以及由.NET使用VSTO和Windows Forms或WPF創建的託管UI。現在,使用Office.js,這是使用HTML/CSS/JavaScript完成的,並且可以通過任何類型的客戶端(桌面/ Web)加載。

  3. 託管的文檔,並提供底層DocumentBookmarkRange對象的過程。我的問題是 - 對於沒有在客戶端計算機上安裝MS Office的Office Online客戶端,如果他們使用使用office.js編寫的Office加載項,現在此過程在哪裏?

我錯誤地認爲用於Office加載項的JavaScript API僅調用我們已知的現有Office COM基礎結構?如果我是對的,那麼承載Winword.exe(或任何Office應用程序)的計算機在哪裏?

+0

有一個Web服務器在某處... https://dev.office.com/docs/add-ins/overview/office-add-ins#anatomy-of-an-office-add-in –

+0

謝謝閱讀我的問題和迴應。在發佈此問題之前,我已從文檔中閱讀了該頁面。你看,它沒有說辦公室程序,例如WINWORD.EXE在服務器上運行。沒有關於「如何」工作的頁面。您是否建議Web服務器關閉Office應用程序進程?它是否爲每個Web請求/ office.js客戶端執行單獨的過程?你能不能指出一個解釋所有這一切的頁面?該頁面只說有一個Web服務器,您可以在其中部署HTML/JS/CSS和任何服務器端代碼。 –

回答

3

要回答執行代碼的位置:本身沒有「COM」對象(Office.js API的新浪潮不是基於VBA COM對象,至少不是直接)。但確實有一個支持文件打開和內存的服務器。就Excel而言,Excel Online前端是一個相當「薄」的層,幾乎所有的操作都由支持服務器執行。該服務器不直接運行EXCEL.exe,但它有一個與Excel類似的Web服務(並且共享許多相同的底層C++代碼),它以「無頭」模式運行,一個實例每份文件。另一方面,在Word中,Word Online有更多的業務邏輯可以在本地執行,因此很多操作在瀏覽器上執行,並在空閒時間同步備份到服務器(很像最終用戶操作),但仍有一臺支持服務器將相應的數據提供給Word Online前端,並處理一些操作(例如,range.getOoxml()image.getImage())。

希望這會有所幫助。

+0

非常感謝,邁克爾。兩個後續問題。 (1)什麼是「無頭」模式? (2)爲每個文檔運行辦公應用程序實例的實例必須佔用大量硬件,因爲每個實例會佔用大量RAM,因此一臺機器只能承載兩到三個實例? –

+0

「無頭」我的意思是沒有UI。也就是說,它不是Excel.exe,而是一個封裝了核心Excel計算引擎的Web服務器。我認爲這也允許更多這樣的進程在每臺機器上運行,但最終它是一個實現細節,應該對開發人員和用戶來說是100%不可見的 –

2

辦公室Web加載項(office-js)是利用特定庫(office-js)來促進加載項與主機應用程序之間通信的Web應用程序。

由於這些加載項只是Web應用程序,因此它們可以在各種Office平臺(Windows,Web,Mac,iOS)上運行。對於基於瀏覽器的Office版本,加載項將顯示在iframe中。對於本地版本,它們託管在嵌入式瀏覽器(IE11,Webkit等,取決於平臺)。

加載項包含兩個組件,一個XML清單和Web應用程序。清單可以從多個位置直接從側面加載到網絡共享,加載到Office Store。該網站應用程序託管在任何你通常託管你的網絡應用程序(我建議Azure,但後來我有點偏見)。他們從不直接由微軟託管。

相關問題