VSTO と Aspose.Cells for .NET の比較

概要

Microsoft Excel は、あらゆる業種の企業や個人に広く使用されています。スプレッドシート アプリケーションはどこにでもあり、ユーザーはデータを保存して整理するだけでなく、数式を使用して複雑なモデルを構築し、高度な書式設定とグラフを使用してデータを明確に提示できます。

VSTO では、Microsoft Office ドキュメントが .NET アセンブリにラップされたコードを実行できます。 Microsoft Office のファイルと機能を操作するアプリケーションの開発に使用されます。開発者は、アプリケーションで ASP、Office Web コンポーネント、および COM 相互運用機能を何年も使用してきました。 Microsoft は VSTO を拡張して、アプリケーションの開発と展開を行い、メモリ管理を改善しました。しかし、疑問が残ります。VSTO は、現在利用可能な他のアプローチよりも使いやすく、信頼性が高くなるように設計されているのでしょうか?開発者は、パフォーマンス、セキュリティ、スケーラビリティ、安定性、信頼性、または機能の向上という点で期待を裏切らないソリューションを使用したいと考えています。

Asposeは、.NET、Java、クラウドおよび Android API の優れたラインを提供します。 Aspose API には、Aspose.Cells、Aspose.Words、Aspose.Pdf、Aspose.Slides などの製品が含まれています。[開発者は、XLS、XLSX、DOC、DOCX、HTML、PDF、PPT などのさまざまな形式のドキュメントを開き、変更、生成、保存、マージ、および変換します。

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

[Aspose.Cells]](https://products.aspose.com/cells/net/)は独立した Microsoft Excel スプレッドシート操作 API で、クライアントまたはサーバー側に Microsoft Excel がインストールされていなくても Microsoft Excel スプレッドシートを読み書きします。 Aspose.Cells は機能豊富なコンポーネントであり、基本的なデータのエクスポートだけではありません。 Aspose.Cells を使用すると、開発者は、データのエクスポート、スプレッドシートの書式設定、画像のインポート、チャートの作成と操作、Excel データのストリーミング、およびさまざまな形式への保存を行うことができます。製品とその機能の詳細を確認するには:

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

.NET フレームワーク要件

VSTO では、最終的なアプリケーションを実行するために、クライアント側で .NET フレームワーク (Visual Studio Tools for Office SE Runtime を含む) が必要です。ほとんどの企業環境、特に Web シナリオでは、エンド ユーザーはアプリケーション ソフトウェアと関連するランタイム フレームワークをインストールできません。この要件だけでも、VSTO ベースのアプリケーションが問題になります。 VSTO に基づく既製のアプリケーションは事実上除外されます。

反対に、Aspose.Cells for .NET は、基になるシナリオのクライアント側で .NET フレームワークを必ずしも必要としません。このコンポーネントで構築された Office アプリケーションは軽量で、大きな負荷がかかる Microsoft Windows システムで動作することが保証されています。

特徴

VSTO が提供する機能は、インストールした VSTO と Visual Studio 製品の組み合わせによって異なります。 Microsoft Office Excel 2003 に対して VSTO によって実行される一般的なタスクには、Cells へのデータの追加、ワークブックの作成、開いて保存、ワークシートの追加、移動、および非表示、ワークシートの保護、名前付き範囲、リスト オブジェクト、スタイルの書式設定、セル内のテキストの検索、データの並べ替え、印刷と Excel 数式の計算。

Aspose.Cells は、Microsoft Office Excel ファイルの管理に必要なすべてのものに加えて、さらに多くの機能を提供します。 API は、開発者に最小限の労力で素晴らしい結果をもたらします。 Aspose.Cells は、多くの強力で時間を節約する機能を提供します。 API は、あらゆる種類のスプレッドシート管理アクティビティに使いやすい API を提供し、Microsoft Excel が提供するほぼすべての機能をカバーします。 VSTO についてリストされているすべてのタスクは、Aspose.Cells で簡単に実行できます。

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

安全

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

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

Aspose.Cells for .NET は、中程度の信頼のセキュリティ レベルで実行できます。ホストされた環境でアセンブリを実行するために、特別な権限は必要ありません。中程度の信頼では、アプリケーションがアクセスできる共有システム リソースの種類が制限されます。多くの Web アプリケーションが Web Hosting サーバーで実行されています。 Web ホスティング モードでは、それらのほとんどは中程度の信頼のセキュリティ レベルでのみ実行できます。 Aspose.Cells for .NET は、この点で彼らのニーズに十分に応えることができます。

パフォーマンス

ソリューションを構築するためのアプローチや方法論を選択する場合、パフォーマンスは最も重要な要素です。

一部のユーザーのレポートによると、VSTO アプリケーションのパフォーマンスは VBA および COM アプローチに依存します。 VSTO のパフォーマンスに影響を与える要因はいくつかありますが、これらの要因を大局的に捉えることが重要です。

  • .NET 起動コストは本質的に高価です。 .NET で作成されたアプリケーションは、ジャスト イン タイム (JIT) コンパイルのオーバーヘッドが発生する必要があるため、JIT コンパイルは回避できません。
  • VSTO ベースのアプリケーションに影響を与えるもう 1 つのパフォーマンス要因は、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 アプリケーションは、何百、何千ものユーザーが同時に使用するようには設計されていません。ただし、Aspose.Cells です。 API は安定しており、単一のサーバー上で単一のアプリケーションを駆動する場合でも、負荷分散された Web ファーム上で企業全体のアプリケーションを駆動する場合でも、スプレッドシート タスクを完璧に実行できます。

システム要求

これら 2 つのアプローチのシステム要件を分析すると、VSTO はより高価であり、より多くの基本機能が必要であることがわかります。

VSTO には、前提条件の長いリストがあります。

  • サポートされているオペレーティング システム: Windows 2000; Windows サーバー 2003; Windows ビスタ; WindowsXP
  • .NET サポートされているフレームワークのバージョン.NET フレームワーク 2.0 以降のみ。
  • Visual Studio Tools for Office の次のエディションの 1 つ以上:
  • Microsoft Microsoft Office System 用の Visual Studio 2005 ツール Microsoft 2007 用の Visual Studio 2005 ツール Microsoft Office System
  • Visual Studio 2008 プロフェッショナル版 Visual Studio 2008 チーム スイート エディション Microsoft Office の 1 つのバージョン:
  • Microsoft オフィス プロフェッショナル 2003 SP1
  • 2007 Microsoft オフィスシステム

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

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

インストールと展開

VSTO のインストールは、大きくて面倒な作業になる可能性があります。場合によっては、インストール時に、ツールの一部を手動で再インストールし、手動で登録する必要があります。複雑になる可能性があります。

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

タスク例

つのアプローチの違いを示すために、次のコードは、VSTO と Aspose.Cells の両方の API を使用してテンプレート ファイルにデータを入力する方法を示しています。

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

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

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

VSTO コード

Aspose.Cells コード

結果

その結果、VSTO API を使用するとタスクを完了するのに約 2.5 分 (約 150 秒以上) かかりましたが、Aspose.Cells は通常のシステム構成の一般的なハードウェアで 1 秒未満しかかかりませんでした。

ループが拡張された場合、たとえば 10,000*20 セルを埋める場合、Aspose.Cells はジョブを実行するのに約 5.5 秒かかります。

結論

Microsoft Office テクノロジをビジネス ソリューションに使用することを検討している場合は、まず利用可能な代替手段に慣れてください。さまざまな製品に基づいていくつかのテストを実行し、負荷やストレスなどのさまざまな実際の条件にそれらをさらして、それらがどの程度うまく機能するかを確認します。

Aspose.Cells は、安定した成熟した製品であり、世界中に顧客基盤があり、高負荷下でも十分に機能するスケーラビリティを備えています。

VSTO のパフォーマンスはまだ洗練されていません。これらのパフォーマンスの問題の一部は、VSTO 自体に関連しているのではなく、.NET JIT コンパイル プロセスに関連している可能性があります。しかし、それでも、VSTO アプリケーションが負荷の増加に応じてスケーリングされるかどうかについては、一定の疑問があります。 VSTO の新しいモデルでは、ドキュメント処理のために Web サーバーに Excel を常駐させる必要はありませんが、VSTO が実際に影響を与えるにはまだ長い道のりがあると思います。