VSTOとAspose.Cells for .NETを比較する

概要

Microsoft Excelはあらゆる種類の産業で広く使用されています。このスプレッドシートアプリケーションは普及しており、データの格納や整理だけでなく、数式を使用して複雑なモデルを構築し、高度なフォーマットやグラフでデータを明確に表現することができます。

VSTOはMicrosoft Officeドキュメントにラップされた.NETアセンブリでコードを実行することを可能にするものです。これはMicrosoft Officeファイルや機能と連携するアプリケーションを開発するために使用されます。開発者は長年にわたり、アプリケーションでASPやOffice Webコンポーネント、COMインタープを使用してきました。MicrosoftはVSTOを強化し、アプリケーションの開発や展開を行い、メモリ管理を改善します。しかし、疑問が残るのは、VSTOが今日利用可能な他の手法よりも使用しやすく信頼性があり、性能、セキュリティ、拡張性、安定性、信頼性、または機能の向上という点で開発者を失望させないようなソリューションとして設計されているのでしょうか?

Asposeは優れた.NET、Java、Cloud、AndroidのAPIを提供しています。AsposeのAPIにはAspose.Cells、Aspose.Words、Aspose.Pdf、Aspose.Slidesなどが含まれており、これらのAPIにより開発者はXLS、XLSX、DOC、DOCX、HTML、PDF、PPTなど様々な形式のドキュメントを開き、変更、生成、保存、マージ、変換することができます。

この記事では、VSTOとAspose.Cells for .NETとを比較しています。

Aspose.Cells は、クライアントやサーバーサイドにMicrosoft ExcelがインストールされていなくてもMicrosoft Excelのスプレッドシートを読み書きする独立したMicrosoft Excelスプレッドシート操作APIです。Aspose.Cellsは機能が豊富で、基本的なデータエクスポート以上の機能を提供しています。Aspose.Cellsを使用すると、開発者はデータをエクスポートし、スプレッドシートのフォーマットを整え、画像をインポートし、チャートを作成および操作し、Excelデータをストリームにし、さまざまな形式で保存することができます。製品とその機能について詳しく知りたい場合:

この記事では、Microsoft Excelに関連するさまざまな側面でVSTOとAspose.Cellsを比較しています。リストは完全ではありませんが、意思決定者が最終決定をする前に理解しておかなければならないいくつかの問題を表しています。

.NET Framework 必要条件

VSTOは、最終的なアプリケーションを実行するためにクライアント側で.NET Framework(Visual Studio Tools for Office SEランタイムを含む)が必要です。特にウェブシナリオにおいて、企業環境ではエンドユーザーはアプリケーションソフトウェアや関連するランタイムフレームワークをインストールすることができません。この要件だけでも、VSTOベースのアプリケーションが問題を抱えることがあります。実際には、VSTOをベースにしたシェルフアプリケーションは実質的に除外されます。

一方で、Aspose.Cells for .NETは、基本のシナリオでクライアント側で.NET Frameworkを必要としません。このコンポーネントで構築されたOfficeアプリケーションは軽量であり、Microsoft Windowsシステムで重要な負荷下でも動作が保証されています。

機能

VSTOが提供する機能は、VSTOとVisual Studio製品のどの組み合わせをインストールしているかに依存します。VSTOによって実行されるMicrosoft Office Excel 2003での一般的なタスクには、セルへのデータの追加、ブックの作成、開き、保存、ワークシートの追加、移動、非表示、ワークシートの保護、名前付き範囲、リストオブジェクト、スタイルのフォーマット、セル内のテキストの検索、データのソート、印刷、Excelの計算式が含まれます。

Aspose.Cellsは、Microsoft Office Excelファイルを管理するために必要なすべてを提供し、さらにその上で多くの機能を提供します。APIは、開発者が少ない努力で素晴らしい結果を得ることができます。Aspose.Cellsは多くの強力で時短となる機能を提供します。APIは、ほとんどすべてのMicrosoft Excelが提供する機能をカバーする、あらゆる種類のスプレッドシート管理アクティビティ向けの使いやすいAPIを提供します。VSTOのリストされたすべてのタスクは、Aspose.Cellsで簡単に実行できます。

Aspose.Cellsは、Smart Markersのサポート、さまざまなデータソース、オブジェクト、Excelファイルへのデータのインポートとエクスポート、COMクライアント(ASPクライアント)のサポート、コンポーネントとの相互運用性、ExcelファイルをPDF形式に変換、Excelチャートやワークシートを画像ファイルとして保存するなど、いくつかの高度な機能もサポートしています。

セキュリティ

デフォルトでは、VSTOアプリケーションは実行に完全信頼の権限を必要とするため、部分的に信頼された呼び出し元を許可しません。ホストされた環境でアプリケーションの追加のレベルの分離を提供し、アプリケーションがアクセスできるリソースや実行できる特権操作を制限するために、コードアクセスセキュリティを使用することで、Webアプリケーションをロックダウンすることができます。ただし、.NETセキュリティを理解するためには、ある程度の時間と努力を費やす必要があります。

多くの異なる企業からの多数のアプリケーションをホストするインターネットサービスプロバイダー(ISP)は、アプリケーションがお互いのデータを読み取ったり干渉したりできないようにするために、中程度の信頼レベルを使用する場合があります。セキュリティ上の理由から、ISPは共有サーバー上の個々のWebアプリケーションを部分的信頼に制限する場合があります。

Aspose.Cells for .NETは、ホストされた環境でMedium Trustセキュリティレベルで実行できます。ホストされた環境で組み込まれたシステムリソースの種類に制限がかかります。多くのWebアプリケーションはWebホスティングサーバーで実行されています。Webホスティングモードでは、ほとんどの場合、Medium Trustセキュリティレベルでしか実行できません。このような場合において、Aspose.Cells for .NETはこの要件を満たすことができます。

パフォーマンス

解決策を構築する際に、パフォーマンスは最も重要な要素です。

あるユーザーの報告によると、VSTOアプリケーションのパフォーマンスはVBAとCOMのアプローチに依存することがあります。VSTOのパフォーマンスに影響を与えるいくつかの要因があり、これらの要因を適切な視点で把握することが重要です。

  • .NETの起動にかかるコストは本質的に高額です。.NETで記述されたアプリケーションは、Just-In-Time(JIT)コンパイルのオーバーヘッドを負担しなければならないため、JITコンパイルを避けることはできません。
  • VSTOベースのアプリケーションに影響を与えるもう一つのパフォーマンス要因は、Microsoft Office COMオブジェクトを包む厚いレイヤーを通じて呼び出す費用に関係しています。Microsoft Officeとの相互作用のために構築され、最適化されたVBAは.NETよりも移動距離が短くなっています。
  • 最後に、Visual Studio IDEでExcelオブジェクトをホストすることは、リソースの面で高価です。VSTOアプリケーションはVBAアプリケーションよりもメモリフットプリントが大きくなっています。VSTO Excelアプリケーションは多くのメモリを使用し、Microsoft Excelのすべてのインスタンスが閉じられるまでメモリをOSに戻さないでしまいます。

Microsoft Officeテクノロジーの開発プラットフォームとしてVSTOを採用するかどうか検討する場合は、これらの属性に精通するためのリソースを調査する時間を割いてください。

さらに、常に更新をチェックすることのパフォーマンスへの影響は、ソリューションには適していない場合があります(デプロイメントサーバーの遅延、遅いネットワーク接続、または頻繁にサーバーに到達できないため、読み込み時間に悪影響を及ぼすことがあります)。

一方、Aspose.Cells for .NETは高い拡張性、柔軟性、および高速性を持っています。通常、Officeアプリケーションは100人や1000人のユーザーが同時に使用することを想定しておらず、しかしながら、Aspose.Cellsはこれを実現しています。APIは安定しており、単一のサーバーで単一のアプリケーションをサポートするか、エンタープライズ全体のアプリケーションをパワーにする負荷分散されたWebファームで動作させても、スプレッドシートのタスクを確実に実行します。

システム要件

これら2つのアプローチのシステム要件を分析すると、VSTOはより高価で、より多くの必須要件を必要とします。

VSTOには長い必須事項のリストがあります:

  • サポートされているオペレーティングシステム: Windows 2000; Windows Server 2003; Windows Vista; Windows XP
  • サポートされる.NET Frameworkのバージョン: .NET framework 2.0 以上のバージョンのみ。
  • 以下のVisual Studio Tools for Officeのいずれかのエディション:
    • Microsoft Visual Studio 2005 Tools for the Microsoft Office System
    • Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System
    • Visual Studio 2008 プロフェッショナル エディション
    • Visual Studio 2008 Team Suite エディション
    • 1つのMicrosoft Officeのバージョン:
    • Microsoft Office Professional 2003 SP1
    • 2007 Microsoft Office システム

Aspose.Cellsは、スプレッドシート作成エンジンであるため、クライアントやサーバーにMicrosoft Excelをインストールする必要はありません。ただし、Microsoft Excel文書を表示するには、システムに少なくともMicrosoft Excel Viewerがインストールされている必要があります。

  • サポートされているオペレーティングシステム: Windows 2000; Windows Server 2003; Windows Vista; Windows XP
  • .NET Frameworkバージョンのサポート: すべての.NETフレームワークがサポートされており、1.0、1.1、2.0、3.xなどがサポートされています。

インストールと展開

VSTOのインストールは大変でトラブルが多いことがあります。時々、インストールが必要な部分を手動で再インストールし、手動で登録する必要があります。複雑になることがあります。

一方、Aspose.Cells for .NETは単一のDLLにパッケージ化されているため、追加のアプリをインストールする必要はありません。このコンポーネントは.NETアプリケーションのみで使用され、コンポーネントコードのどの部分も人間の応答を待つように設計されていません。Aspose.Cellsのダウンロードページを訪れ、最新のAspose.Cellsインストーラをダウンロードしてください。ダウンロードしたファイルを実行し、インストーラの指示に従います。その後、コンポーネントを使用するには、プロジェクトで参照してください。

サンプルタスク

両方のアプローチの違いを示すために、以下のコードは、VSTOおよびAspose.Cells APIを使用してテンプレートファイルにデータを埋め込む方法を示しています。

  1. テンプレートとしてMicrosoft Excelファイル(TempBook.xls)を使用します。 ワークブックには、いくつかのワークシートにデータが入力されたいくつかのセルが含まれています。
  2. 例のコードでは、テンプレートのExcelファイルの最初のワークシートに1000*20のレコードを追加します。 ワークシートには定数(ダミー)データがセルに入力されます。

このタスクは、インテル(R) Celeron(R) CPU 2.40 GHz、RAM 760MBを搭載し、Microsoft Windows XP Professionalオペレーティングシステムを搭載したシステムで実行されます。

以下のコードセグメントは、それぞれのAPIでこれらのタスクを実行する方法を説明しています。

VSTOコード

Aspose.Cellsコード

結果

結果によると、VSTO APIを使用すると、タスクの実行に約2.5分(約150秒以上)かかりましたが、Aspose.Cellsは通常のハードウェアと標準的なシステム構成で1秒未満で済みました。

もしループを拡張した場合、例えば10000*20のセルを埋める場合、Aspose.Cellsはその仕事をするのに約5.5秒かかります。

結論

ビジネスソリューションでMicrosoft Officeテクノロジーを使用することを考えている場合、まず利用可能な代替製品について知っておくことをお勧めします。さまざまな製品に基づいていくつかのテストを実施し、負荷やストレスなどのさまざまな実世界の条件に曝して、それらがどのように実行されるかを確認してください。

Aspose.Cellsは、安定していて成熟した製品で、世界中の顧客基盤を持ち、重い負荷の下でも十分にスケーラブルです。

VSTOのパフォーマンスはまだ洗練されておらず、.NET JITコンパイルプロセスとの関連性によるものではなく、VSTO自体にともなうパフォーマンスの問題がある可能性があります。しかし、VSTOアプリケーションが負荷が増加するとスケーリングされる可能性はあります。新しいモデルのVSTOはドキュメント処理にExcelをWebサーバーに配置する必要がなくなりましたが、実際に影響を与えるためにはまだまだVSTOは進化する必要があります。