SpreadJS

  ホーム   技術資料   なにが違うの?SPREAD for ASP.NET vs SpreadJS

なにが違うの?SPREAD for ASP.NET vs SpreadJS


SPREADシリーズにはWebアプリケーションの開発を支援するツールとして、SpreadJSのほか、ASP.NET向けのSPREAD for ASP.NETが提供されています。どちらもブラウザ上でExcelライクなUIを簡単に実現することができます。
これら二つの製品のインタフェースは非常によく似ており、実際の外観や使い勝手、また搭載される機能はほぼ同様です。
 
[製品情報]- [SPREAD for ASP.NET 10.0J]
「プラットフォーム間比較」を見る
 
それではなぜ、Webアプリケーションの開発ツールとして二つのSPREADが存在するのでしょうか。ここでは、各製品の違いや特長について、以下の項目に分けて解説します。
 


ベーステクノロジの違い

SPREAD for ASP.NETとSpreadJSはどちらもWebアプリケーションの開発を支援する製品です。しかし、それぞれ異なるテクノロジをベースに開発され、それぞれのテクノロジに応じた形態で提供されています。

製品 SPREAD for ASP.NET SpreadJS
ベーステクノロジ ASP.NET JavaScript
できること WebアプリケーションでExcelライクな機能を実現
種類 ASP.NETコントロール JavaScript UIウィジェット
実装されている処理 サーバー側処理
クライアント側処理
サーバー・クライアント連携処理
クライアント側処理

これらのテクノロジは製品の特長をそのまま象徴しています。WebアプリケーションにとってASP.NETやJavaScriptはどのような技術でしょうか。


ASP.NETの特長

ASP.NETの基本構造

Webアプリケーション開発では、一般にサーバー側とクライアント側処理、およびサーバーとクライアントを通信などで結ぶ連携処理の設計・実装が必要です。
 
ASP.NETはこのような構造において複雑・煩雑になりがちな処理を抽象化したフレームワークです。このフレームワークはWebアプリケーションの基盤となり、前述したサーバー・クライアント間の連携処理や、それに伴うHTTP通信の手続きなどを開発者に代わって実行します。
 

WebアプリケーションでのASP.NETの位置付け

ASP.NETの位置付け
 
ASP.NETを活用することで、開発者は面倒な処理に煩わされることなくアプリケーションの要件実装に集中できるようになります。また、フレームワークが担う機能については開発やテストの必要がないため、従来の開発に比べて大幅な開発工数の削減が見込めるのもこのテクノロジの特長です。
 
ASP.NETを使用したWebアプリケーションは「ASP.NETアプリケーション」と呼ばれ、現在広く採用されている開発形態のひとつとなっています。

ASP.NETによる開発

ASP.NETアプリケーションの開発はGUIベースです。アプリケーションのUIに必要なボタンやテキストボックスなどがASP.NETの標準コントロールとして提供されています。
 
実際の開発では、Visual Studioで「Webフォーム」と呼ばれるWebページの土台にコントロールを配置してイベント処理などを実装し、アプリケーションを作成していきます。
 
SPREAD for ASP.NETはこのASP.NETアプリケーション用に開発されたグリッドコントロールです。標準コントロールと同様の仕組みで動作し、ASP.NETアプリケーションでのグリッド開発を強力に支援します。

SPREAD for ASP.NETの位置付け

SPREAD for ASP.NET


JavaScriptの特長

JavaScriptの基本機能

ASP.NETに対し、JavaScriptはどのような位置付けにある技術でしょうか。こちらは一般にクライアント側でWebページの構成要素(HTMLのDOM要素やCSS設定)をコントロールする技術として利用されています。
JavaScriptの処理はクライアント側のみで完結します。ASP.NETのように、フレームワークによるサーバー側処理やサーバー・クライアント間の連携処理などがないため、これらの処理にJavaScriptは直接関係しません。
 

WebアプリケーションでのJavaScriptの位置付け

JavaScript

JavaScriptによる開発

JavaScriptはインタプリタ方式の言語であるためコンパイラを必要とせず、開発ツールやフレームワークに依存しません。HTMLファイルに直接スクリプトを記述するだけでも動作します。JavaやPHPなど、動作環境の選択は自由です。当然、ASP.NETで開発するWebアプリケーションにJavaScriptを実装することもよくあるケースです。
JavaScriptの開発はGUIベースではありませんが、特定の機能が実装されたJavaScriptライブラリを読み込むことで、Webアプリケーションに柔軟な機能を付与します。
 
SpreadJSはJavaScriptをベースとしたUIウィジェットライブラリです。WebアプリケーションのフロントエンドUI(クライアント側で表示されるUI)として動作し、Excelライクなインタフェースをエンドユーザに提供します。
 

クライアント側処理におけるSpreadJSの位置付け

SpreadJS


SPREAD for ASP.NET vs SpreadJS

では、実際の開発では、どのようなときにどちらの製品を使用すればよいでしょうか。
ここでは、さまざまな観点から両製品を比較します。

環境

開発ツールやWebアプリケーションを実行するブラウザといった環境に関する点で比較します。

製品 SPREAD for ASP.NET SpreadJS
開発ツール Visual Studioが必要 専用ツールは不要
ブラウザ Internet Explorer 11(エンタープライズモードを含む)、
Microsoft Edge、Chrome、Firefox、
Safari for iOS
HTML5が動作するブラウザ全般
運用環境 IISが必要 開発プラットフォームに依存

 

SPREAD for ASP.NETは、Visual Studioでの開発が必須となり、また運用サーバーにはIISが必要です。これに対して、SpreadJSの自由度は高く、専用のツールは不要でメモ帳などのテキストエディタがあれば開発でき、逆にどのツールにも対応できます。Visual StudioのほかEclipseなどでの開発も可能です。運用環境も特に指定はなく、IISでもApacheでも問題なく動作します。
対応ブラウザに関しては、SPREAD for ASP.NETでは限りがあるものの、SpreadJSはHTML5が動作するブラウザであれば問題なく動作します。ただし、HTML5をサポートしないInternet Explorer 8以前のバージョンでは正しく動作しません。そのため、Internet Explorer 11でのエンタープライズモードにも未対応です。この点ではSPREAD for ASP.NETに軍配が上がります。

開発方法

次に、開発に必要なプラットフォームや開発手法について比較します。

製品 SPREAD for ASP.NET SpreadJS
フレームワーク .NET Framework 依存しない
対応JSライブラリ jQuery jQuery
AngularJS
Knockout
BreezeJS
MVCでの開発 未対応 対応
ASP.NET MVCの使用も可
画面設計 Visual StudioおよびSPREAD付属の専用デザイナによる視覚的な設計が可能 専用のUI設計ツールなどはなく、基本的にコーディングによる開発
Windwosフォーム
からの移行
作り直しにはなるが、C#、VB.NETの言語知識はそのまま生かすことができ、またSPREAD for Windows Formsと同名のメンバが多いため、Windowsフォームとほぼ同様の感覚で開発できる。 まったく異なる設計思想で成り立っているため流用できる部分は少なく、学習時間も含め、多くの工数がかかる場合がある。

 
前述のとおり、SPREAD for ASP.NETはVisual Studioでの開発が必須となりますが、視覚的なデザイン画面やコーディング時のインテリセンス表示など、Visual Studioの強力な開発支援機能を活用できます。SpreadJSは開発ツールを選びませんが、どのツールでもUI設計は支援されず、コーディングを行う必要があります。
また、Windowsフォームからの移行といった視点からも、ASP.NETが優位です。同じ.NET FrameworkをベースとしていることやC#やVB.NETといった既知の技術はそのまま使用でき、学習コストがかからず、また流用できる資産が多いといえます。
これに対して、SpreadJSはピュアJavaScriptで作成されているため、多くのJavaScriptライブラリをサポートします。また、近年はMVCモデルを使用したWebアプリケーション開発がその存在感を強めていますが、SpreadJSはMVCアプリケーションでの使用を前提としています。ASP.NET MVCでの利用も可能です。
 
SpreadJSのASP.NET MVCでの使い方を見る

パフォーマンス

最後にパフォーマンスについて比較します。

製品 SPREAD for ASP.NET SpreadJS
ページサイズ 表示データに比例して大きくなる。状態管理にViewStateを使用するためサイズは大きい。 軽量。必要なファイルのみダウンロードされる。コアモジュールは約400キロバイト。
処理速度 ユーザー操作によるアクションに対してポストバック、ページ全体の最読み込みなどが発生する。 ユーザー操作によるアクションに対して、必要な部分のみ更新される。

 
パフォーマンスの点では、圧倒的にSpreadJSが優位です。ベーステクノロジの機能が大きく影響しているのですが、ASP.NETの特性であるサーバーとクライアント間でのデータ送信には、ポストバックやページの再読み込みが必要となり、どうしても時間を要します。一方で、クライアント側で完結するJavaScriptは、このような処理がなく必要な部分のみ更新され、最小限のファイルのみダウンロードされます。
両製品のパフォーマンスの違いは、実際に操作して確認してみてください。SpreadJSの驚異的なスピードが体感できます。
 
SPREAD for ASP.NETのパフォーマンスデモを見る
SpreadJSのパフォーマンスデモを見る


まとめ

SPREAD for ASP.NETとSpreadJSの違いとは、ベーステクノロジの違いに直結していると言えます。簡単にまとめると、Windowsフォームからの移行や開発支援ツール(Visual Studio)での開発に適しているのはSPREAD for ASP.NETであり、パフォーマンスを重視する場合や、MVCモデルを使用した開発、またPHP、Java、Linuxといった環境で開発を行う場合はSpreadJSが適しています。
 
両者ともメリット、デメリットがありますが、WebアプリケーションにExcelライクなUIを実現するという点では非常に強力です。各製品の特長を把握して、快適に高機能なWebアプリケーション開発を実施いただければ幸いです。
 


本記事はPDF形式でご覧いただけます。
PDF版をダウンロードする