特集ASP.NET vs. Struts フレームワーク徹底比較[前編]―― Webアプリケーション構築のための2大基盤を比較する ――
山田 祥寛 |
|
本稿では、Webアプリケーション構築のための代表的なアプリケーション・フレームワークである「.NET FrameworkをベースとしたASP.NET」そして「J2EE(Java2 Enterprise Edition)をベースとしたStruts」を比較し、それらの共通点、または相違点を解説する。
ただし、最初に強調しておきたいのは、本稿は、ASP.NETとStrutsとを比較してどちらが優れている、どちらがより良いなどといった論評を目的としたものではない。もちろん、個々の機能同士を比べれば、それぞれに優劣もあれば、使い勝手にも差異はある。しかし、個々の機能などは、しょせんは限られた一時点でのスナップショットにすぎない。今後、いくらでも拡張/改善されていくはずなので、これらをいちいちあげつらうことには何の意味もないだろう。
また、これからご覧いただけば分かるように、ASP.NETとStrutsとでは、内部的な構造も問題解決へのアプローチもさまざまな点で異なる。もちろん、それぞれに一長一短があるだろう。しかし、両者はターゲットとする問題領域も、フレームワークそのものがはぐくまれてきた技術の土壌も異なるわけで、これもまた、一概にフレームワークそのものの良否を判断する指標になるものではない。ある局面においては長所と思われる特性も、異なる局面においては短所になり得るのだ。要は、それぞれがここまで普及してきた技術である以上、それぞれに浸透するに至った前提・要因が(当然)あるわけで、表面的なよし悪しを対比することはまったくナンセンスであるといってよいだろう。
本稿が目的とするのは、あくまでASP.NETとStrutsという生まれも育ちも違うフレームワークが、どのような点で共通しているのか、あるいは異なっているのかを比較することで、ASP.NETユーザーにはStrutsを、Struts(J2EE)ユーザーにはASP.NETをより克明に理解していただくことにある。また、これまでASP.NET(あるいはStruts)しか知らなかった開発者が異なる視点を身に付けることで、ASP.NET(あるいはStruts)への従来の理解をより深めることを目的としている。そのような視点で、以降の内容をご覧いただければ幸いである。
フレームワークとは何か?
いまさらと思われるかもしれないが、まずは本稿で扱う「フレームワーク」とはどのようなものなのか、概説しておくことにしよう。
フレームワークという言葉を辞書で引いてみると、「枠組み・骨組み・体制」などといった説明が書かれている。例えば、「戦略分析のためのフレームワーク」といったら「戦略分析を行う際に必要となる考え方やルール」のことであるし、「マーケティング立案のためのフレームワーク」といったら「マーケティング立案に際して必要となるものの考え方であり、ルールである」ということになる。
そして、本稿で扱うASP.NET/Strutsは「アプリケーション開発のためのフレームワーク」――「アプリケーション・フレームワーク」だ。つまり、ASP.NETもStrutsも、要はアプリケーション開発のために必要となるものの考え方やルール、思想を具現化したものということになる。
もっとも、このように説明すると、フレームワークとはいかにも漠然としたものに思われるかもしれない。そのとおり、アプリケーション・フレームワークとは、往々にしてとてもあいまいな概念だ。時として、開発プロセスやそれに基づいて標準化されたドキュメントがフレームワークと呼ばれることもあれば、何かしらの目的に特化した開発ツール、あるいは、クラス・ライブラリをもってフレームワークと称する場合もある。つまり、フレームワークは、問題領域や適用範囲、文脈によって実に広範な意味合いを含んでおり、あいまいもことした概念でもある。
よって、本稿では別稿「アプリケーション・フレームワークの誤解と真実」に倣って「ユーザー・コードを呼び出すオブジェクト指向的なクラス・ライブラリ」のことを「アプリケーション・フレームワーク」と呼ぶことにしたい。そして、繰り返しではあるが、これから紹介するASP.NETもStrutsも、上記の意味での「狭義のフレームワーク」に該当する製品である。
アプリケーション・フレームワークの定義 |
本稿では「ユーザー・コードを呼び出すオブジェクト指向的なクラス・ライブラリ」のことを「アプリケーション・フレームワーク」と呼ぶ。ASP.NETもStrutsも狭義の意味での「フレームワーク」に該当する製品である。 |
アプリケーション・フレームワークを利用することの意味合い・効果については、拙稿「フレームワーク・プログラミングの準備」や「システム開発最前線〜サーバーサイド技術におけるフレームワーク比較〜」などで紹介しているので、詳しくはそちらを参照していただきたい。
それではまず、両フレームワークの実行環境から比較してみよう。
INDEX | ||
[特集]ASP.NET vs. Struts フレームワーク徹底比較[前編] | ||
1.フレームワークとは何か? | ||
2.実行環境から見るASP.NETとStruts | ||
3.開発環境から見るASP.NETとStruts | ||
4.フレームワークの内部構成 | ||
[特集]ASP.NET vs. Struts フレームワーク徹底比較[後編] | ||
1.ユーザー・インターフェイス構築要素 | ||
2.入力妥当性チェック機能/アプリケーションの構成ファイル | ||
3.セキュリティ管理/セッション管理/国際化機能 | ||
4.キャッシング機能/テンプレート機能 | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|