アプリケーションフレームワーク

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

アプリケーションフレームワーク (えい: application framework) とは、プログラミングにおいて、典型てんけいてき定型ていけいてきアプリケーションソフトウェア標準ひょうじゅん構造こうぞう実装じっそうするのに使つかわれる枠組わくぐみやテンプレートのことであり、ライブラリサブルーチンクラスなど)の集合しゅうごうふく[1]ソフトウェアフレームワーク一種いっしゅであり、たんフレームワークともぶ。特定とくていのプラットフォーム(オペレーティングシステム)のための専用せんようフレームワークであることもあれば、複数ふくすうのプラットフォームをサポートするものもある。

概要がいよう[編集へんしゅう]

おおくのさい利用りよう可能かのうなコードをフレームワークにまとめることによって、開発かいはつしゃ手間てまはぶき、あらたなアプリケーションのために定型ていけいてき標準ひょうじゅんてきなコードを毎回まいかいあらためてかなくてむようにする。アプリケーションフレームワークはとくに、グラフィカルユーザインタフェース (GUI) が普及ふきゅうするにつれて一般いっぱんしてきた。というのも、GUIはオペレーティングシステムの仕様しよう密接みっせつ関係かんけいがあり、一般いっぱんてき操作そうさ共通きょうつうする観点かんてんから、アプリケーションの基本きほんてき構造こうぞう外観がいかんルック・アンド・フィール)の標準ひょうじゅん促進そくしんする傾向けいこうがあるためである。GUIアプリケーションはCUIアプリケーションとくらべて実装じっそうむずかしく、GUI部品ぶひんウィジェット)の描画びょうがや、イベントハンドリングのためのイベントループ(メッセージループ)などの記述きじゅつ煩雑はんざつになりがちだが、ほとんどのアプリケーションはおなじようなGUI部品ぶひん必要ひつようとし、おなじようなイベントループ構造こうぞうっているため、あたらしいアプリケーションを開発かいはつするたびにあたらしくくだすのは労力ろうりょく無駄むだとなる。GUIではアプリケーションの基本きほんコード構造こうぞうあきらかであるため、標準ひょうじゅんフレームワークには自動じどうGUI作成さくせいツール(テンプレートやコードジェネレーター)が用意よういされていることがおおく、サードパーティーによるツール開発かいはつ比較的ひかくてき容易よういである。

フレームワークの実装じっそうにはオブジェクト指向しこうプログラミング技法ぎほうやオブジェクト指向しこうプログラミング言語げんご一般いっぱん使つかわれ、フレームワークない既存きそんのクラスを継承けいしょうして、あるアプリケーションの独自どくじ派生はせい部品ぶひん定義ていぎすることができる。アプリケーションによる特定とくてい処理しょり部分ぶぶんてきカスタマイズには、コールバック関数かんすう仮想かそう関数かんすうによるたいせいもちいたカスタマイズポイントをフレームワークない用意よういすることで、差分さぶんプログラミングが可能かのうとなる。

事例じれい[編集へんしゅう]

商用しょうよう最初さいしょのフレームワークとしてMacApp英語えいごばんがある。Apple ComputerMacintoshけに開発かいはつしたものである。当初とうしょオブジェクト指向しこう拡張かくちょうされたPascal言語げんごであるObject Pascalかれていたが、のちC++言語げんごなおされた。MacintoshけのほかのフレームワークとしてMetrowerks PowerPlant英語えいごばんやMacZoopがある(いずれもCarbonベース)。べつ系統けいとうであるNeXTSTEP由来ゆらいmacOSけアプリケーションフレームワークとしてCocoaがある。

フリーソフトウェアとしては、MozillaOpenOffice.orgGNOMEKDEといったプロジェクトにはアプリケーションフレームワークがふくまれている。

マイクロソフトは、Microsoft Foundation Class (MFC) とばれる Windows けの同様どうよう製品せいひん開発かいはつしている。MFCはWindows APIうすくラップしたC++言語げんご専用せんようのクラスライブラリおよびフレームワークであり、マイクロソフトはほかにもActive Template Library (ATL) やWindows Template Library (WTL) といったC++のテンプレート機能きのう活用かつようしたクラスライブラリやフレームワークを開発かいはつしている。.NET Framework基本きほんクラスライブラリのほかにいくつかのアプリケーションフレームワークをふくんでおり、Windowsデスクトップアプリケーションけの標準ひょうじゅんてきなGUIフレームワークとしてWindows Forms (WinForms) やWindows Presentation Foundation (WPF) がある。そのほか、Windows 8以降いこうのModern UIアプリケーション開発かいはつ基盤きばんとなるWindows Runtime (WinRT) に対応たいおうしたWindows UI Library (WinUI) も存在そんざいする。

wxWidgetsFOX toolkit英語えいごばんのようなウィジェット・ツールキットのように、Macintosh、Windows、Linuxなどの複数ふくすうのプラットフォームけのアプリケーションを同一どういつソースコードから作成さくせいできるクロスプラットフォームなフレームワークも多数たすう存在そんざいする。Java標準ひょうじゅんてきなGUIツールキットとしてSwingそなえている。Mono対応たいおうしたクロスプラットフォームなフレームワークとしては、Gtk#Xamarin.Formsがげられる。

また、ウェブアプリケーション構築こうちくのためのアプリケーションフレームワークも多数たすう存在そんざいする(ASP.NETApache StrutsRuby on Railsなど)。

脚注きゃくちゅう[編集へんしゅう]

関連かんれん項目こうもく[編集へんしゅう]