0

私はMSDNのOfficeアドイン(office.js)ドキュメントの大部分を使って始めてスキミングしましたが、私の質問に対する答えは見つかりませんでした。Office Online用のOffice.jsを使用して開発されたOfficeアドインでは、Officeアプリケーションをホストするプロセスはどこですか?

私は答えを提供してください。可能であれば、私の質問に答えるMSDNのページを教えてください。クライアントコンピュータは、Microsoft Officeがインストールされていない、とOfficeオンラインにアクセスするには、ブラウザを使用している、と彼はオフィスアドインでOffice.jsを、使用して書かれたロードシナリオで

質問

このようなシナリオでは、COMオブジェクトをホストするコンピュータとその中のOfficeプロセスはどこにありますか?ここで

は、アドインをOffice.jsの使用に関連する要素の私の理解です:

  1. データを持っているオープンXML文書があります。これはちょうど死んだ肉です。プロセスにロードする必要がありました。

    のプロセスは、アンマネージWINWORD.EXE(またはEXCEL.EXEまたはPOWERPNT.EXEまたは他のオフィスアプリケーション)プロセスに使用されていました。

    Office Onlineを使用しているWebクライアントの場合、管理対象外のOfficeプロセスは、まだ一部のコンピュータのメモリに割り当てられている必要があります?基本的には、それが私の質問の核心です。

    私の推測は であること、それはサーバーが のリモートで実行されている可能性があることです。ドキュメント自体がリモートでホストされている可能性があります.DOCは ではありませんが、プロセスも必要です。 オンラインの場合、アンマネージオフィスプロセスはリモートコンピュータ上で実行されます。それは です。これを確認または無効にしたいという前提です。

  2. クライアントのUIがあります。これは、VSTOとWindows FormsまたはWPFを使用して.NETによって作成された、オフィスアプリケーション内のアンマネージC++コードとマネージ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クライアントに対して個別のプロセスを実行しますか?あなたは私にこのすべてを説明するページを教えてください。そのページには、あなたのHTML/JS/CSSとあなたが持っているサーバーサイドコードをxcopyで展開するWebサーバーがあるとしか書いていません。 –

答えて

3

コードが実行される場所の質問に答える:「COM」オブジェクト自体はありません(Office.js APIの新しい波は、少なくとも直接的ではないが、VBA COMオブジェクトに基づいていません)。しかし、実際には、文書を開いてメモリ内にあるバッキングサーバーがあります。 Excelの場合、Excel Onlineのフロントエンドはかなり薄いレイヤーであり、ほとんどの操作はサポートサーバーによって実行されます。そのサーバーはEXCEL.exeを直接実行するのではなく、「ヘッドレス」モードで実行される、Excelと同じ種類のC++コードを多く含むWebサービスを持っていますドキュメントごとに。一方、Wordの場合、Word Onlineにはローカルで実行できるビジネスロジックが多くあり、多くの操作がブラウザで実行され、アイドル時にサーバーに同期バックアップされます(エンドユーザー操作)、Word Onlineフロントエンドに適切なデータを提供し、一部の操作(たとえば、range.getOoxml()またはimage.getImage())を処理するバッキングサーバーが依然として存在します。

これが役に立ちます。

+0

ありがとう、マイケル。 2つのフォローアップの質問。 (1)「ヘッドレス」モードとは何ですか? (2)各ドキュメントのオフィスアプリケーションプロセスのインスタンスを実行するには、それぞれのインスタンスが大量のRAMを占有するため、1台のマシンで2〜3インスタンスしか処理できないため、多くのハードウェアを使用する必要があります。 –

+0

「ヘッドレス」とはUIがないことを意味します。つまり、あなたが知っているExcel.exeではなく、Excelの計算エンジンをカプセル化しているWebサーバーです。私は、マシンごとにこのようなプロセスを実行することも可能だと考えていますが、最終的には、開発者とユーザーにとっては100%は見えない実装の詳細です –

2

Office Webアドイン(office-js)は、アドインとホストアプリケーション間の通信を容易にするために特定のライブラリ(office-js)を活用するWebアプリケーションです。

これらのアドインは単なるWebアプリケーションであるため、さまざまなOfficeプラットフォーム(Windows、Web、Mac、iOS)で動作します。ブラウザベースのOfficeエディションの場合、アドインはiframeに表示されます。ネイティブエディションの場合、それらは組み込みブラウザ(プラットフォームに応じてIE11、Webkitなど)でホストされます。

アドインは、XMLマニフェストとWebアプリケーションの2つのコンポーネントで構成されています。マニフェストは、直接サイドロード、ネットワーク共有、Office Storeの複数の場所からロードできます。 Webアプリケーションは、通常はあなたのWebアプリケーションをホストする場所(私はAzureをお勧めしますが、私はちょっと偏っています)でホストされています。彼らはMicrosoftによって直接ホストされることはありません。

関連する問題