なぜオートメーションではないのか

重要な質問

  • AsposeコンポーネントはなぜMicrosoft Office Automationよりも優れた選択肢なのでしょうか?

Asposeでよく耳にする2つの質問があります:

  • 製品を動作させるためにMicrosoft Officeをインストールする必要がありますか?

簡潔で明確な答え—ありません

AsposeおよびAsposeコンポーネントは完全に独立しており、Microsoft Corporationに関連付けられていたり、許可されていたり、後援されたり、その他の形で承認されたりすることはありません。

  • Microsoft Office Automationではなく、なぜAspose製品を使用するべきなのでしょうか?

一つには、Aspose.Slidesを使用することで享受できる多くの利点があります

さらに、Microsoft自身がOffice Automationの使用をソフトウェアソリューションから強く推奨していません

概要

前述のように、Asposeコンポーネントがオートメーションのより良い代替手段である理由はいくつかあります。主な理由は以下の通りです:

  • セキュリティ
  • 安定性
  • スケーラビリティ/速度
  • 価格
  • 機能

以下の段落で主な理由を詳述します。

セキュリティ

以下はMicrosoftの記事からの直接引用です:

“Officeアプリケーションはサーバー側での使用を意図しておらず、したがって分散コンポーネントが直面するセキュリティ問題を考慮していません。Officeは受信リクエストを認証せず、意図せずマクロを実行したり、サーバー側のコードからマクロを実行する他のサーバーを起動したりすることから保護することはありません。匿名のWebからサーバーにアップロードされたファイルを開いてはいけません! 最後に設定されたセキュリティ設定に基づいて、サーバーは管理者またはシステムコンテキストでフル権限の下でマクロを実行し、ネットワークを危険にさらす可能性があります! さらに、Officeはクライアント認証情報をキャッシュする多くのクライアント側コンポーネント(Simple MAPI、WinInet、MSDAIPPなど)を使用して、処理を高速化しています。Officeがサーバー側で自動化されている場合、1つのインスタンスが複数のクライアントにサービスを提供する可能性があり、そのセッションの認証情報がキャッシュされているため、1つのクライアントが別のクライアントのキャッシュされた資格情報を使用し、他のユーザーをなりすますことによって不正アクセス権を取得する可能性があります。”

Aspose製品は非常に安全です。AsposeコンポーネントはすべてのASP.NETアプリケーション(ASPNETユーザーの下)と同じユーザーコンテキストで実行されます。したがって、Asposeコンポーネントはセキュリティリスクをもたらしません。また、重要なシステムリソースを消費しません。さらに、Asposeコンポーネントがドキュメントを開くと、自動的にマクロが実行されることはありません。Asposeコンポーネントは開発者がOfficeファイルを作成、操作、および保存できるように設計されています。

安定性

このテキストは、前述のMicrosoftの記事からの直接引用です:

“Office 2000、Office XP、およびOffice 2003は、エンドユーザーにとってインストールとセルフリペアを容易にするためにMicrosoft Windows Installer(MSI)テクノロジーを使用しています。MSIは「初回使用時にインストール」という概念を導入しており、機能がランタイム(システムまたは特にユーザー用)で動的にインストールまたは構成されることを可能にします。サーバー側の環境では、これによりパフォーマンスが低下し、ユーザーにインストールの承認や適切なインストールディスクの提供を求めるダイアログボックスが表示される可能性が高まります。エンドユーザー製品としてOfficeの耐障害性を高めるために設計されていますが、サーバー側環境におけるOfficeのMSI機能の実装は逆効果です。さらに、一般的にOfficeがサーバー側で実行される際の安定性は保証されません。なぜなら、このタイプの使用に対して設計またはテストされていないからです。オフィスをネットワークサーバでサービスコンポーネントとして使用すると、そのマシンの安定性が低下し、ひいてはネットワーク全体に影響を及ぼす可能性があります。サーバー側でOfficeを自動化する予定がある場合は、重要な機能に影響を与えない専用のコンピュータにプログラムを隔離し、必要に応じて再起動できるようにすることをお勧めします。”

Asposeコンポーネントは単一のDLLにパッケージ化されているため、ユーザーはそれを機能させるために追加の部品やパーツをインストールする必要がありません。Asposeコンポーネントは.NETアプリケーションによってのみ使用され、コンポーネントコードの一部には人間の応答を待つように設計された部分はありません。

スケーラビリティ/速度

以下はMicrosoftの記事からの直接引用です:

“サーバー側コンポーネントは、高い再入性を持ち、オーバーヘッドが最小限で高スループットなマルチスレッドのCOMコンポーネントでなければなりません。Officeアプリケーションはほとんどすべての点で正反対です。彼らは再入性がなく、STAベースのオートメーションサーバであり、単一のクライアントのために多様でありながらリソース集約的な機能を提供するように設計されています。サーバー側ソリューションとしてのスケーラビリティはほとんどなく、構成で変更できない重要な要素に固定制限があります。さらに重要なのは、グローバルリソース(メモリマップドファイル、グローバルアドインまたはテンプレート、共有オートメーションサーバなど)を使用しており、同時に実行できるインスタンスの数を制限する可能性があり、マルチクライアント環境で設定されている場合、レースコンディションを引き起こすことがあります。Officeアプリケーションの同時に複数のインスタンスを実行しようとする開発者は、デッドロックやデータ破損を避けるためにOfficeアプリケーションへのアクセスのプール化または直列化を検討する必要があります”。

Asposeコンポーネントは非常にスケーラブルで、超高速です。Officeアプリケーションは数百または数千のユーザーが同時に使用するように設計されていませんが、Asposeコンポーネントはまさにそれに合わせて設計されています。私たちのコンポーネントは真の.NETソリューションです。

価格

アプリケーションがMicrosoft Office Automationを利用する場合、アプリを実行するすべてのマシンにMicrosoft Officeのコピーを購入する必要があります。アプリケーションがOfficeファイルを作成または操作する必要がある場合は多くありますが、そのプロセスにMicrosoft Officeは必要ありません。

Webベースのアプリケーションを作成する場合、Microsoft Office Automationコンポーネントはサーバー側ソリューションに対して価格設定されていないかライセンスされていないことを忘れないでください。したがって、Microsoft Officeコンポーネントを利用するWebアプリケーションの展開に良いライセンシングソリューションはありません。一方、Asposeはサーバーベースのアプリケーション向けにも非常にコスト効果の高いソリューションを提供します。

機能

Asposeコンポーネントは、Officeファイルを管理するために必要なすべてと、それ以上のものを提供します。我々は、開発者が最小限の労力で最大の成果を達成することを支援するという哲学に基づいてそれらを設計しました。

たとえば、Aspose.Cellsは、開発者がDataTableまたはDataViewから直接Excelファイルにデータをインポートする能力を提供します。Aspose.Wordsは、開発者が任意の.NETデータオブジェクトから直接Word(つまり、メールマージ)文書を生成することを可能にする類似の機能を提供します。Asposeファミリーの各コンポーネントは、それぞれ独自の強力な機能を提供します。

Asposeコンポーネントを購入する最良の理由は、私たちの開発チームへのアクセスを得られることです。たとえば、Office Automationオブジェクトを使用し、特定の機能が必要な場合、それらの機能が追加される可能性は非常に低いです。しかし、Asposeコンポーネントでは状況が異なります。

私たちのチームは、支援を提供する際に常にオープンマインドで柔軟な姿勢を保っており、これがAsposeコンポーネントが現在のように強力になった理由です。

結論