コンテンツにスキップ

「アプリケーションフレームワーク」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Cewbot (会話 | 投稿記録)
5行目: 5行目:
多くの再利用可能なコードをフレームワークにまとめることによって、開発者の手間を省き、新たなアプリケーションのために定形的で標準的なコードを毎回改めて書かなくて済むようにする。アプリケーションフレームワークは特に、[[グラフィカルユーザインタフェース]] (GUI) が普及するにつれて一般化してきた。というのも、GUIはアプリケーションの基本的構造や外観([[ルック・アンド・フィール]])の標準化を促進する傾向があるためである。アプリケーションの基本コード構造が明らかであるため、標準フレームワークを使えば自動GUI作成ツール([[テンプレートエンジン|テンプレート]]やコードジェネレーター)が作り易くなる。フレームワークの実装には[[オブジェクト指向]]プログラミング技法やオブジェクト指向プログラミング言語が一般に使われ、フレームワーク内の既存のクラスを[[継承 (プログラミング)|継承]]して、あるアプリケーションの独自の派生部品を定義することができる。
多くの再利用可能なコードをフレームワークにまとめることによって、開発者の手間を省き、新たなアプリケーションのために定形的で標準的なコードを毎回改めて書かなくて済むようにする。アプリケーションフレームワークは特に、[[グラフィカルユーザインタフェース]] (GUI) が普及するにつれて一般化してきた。というのも、GUIはアプリケーションの基本的構造や外観([[ルック・アンド・フィール]])の標準化を促進する傾向があるためである。アプリケーションの基本コード構造が明らかであるため、標準フレームワークを使えば自動GUI作成ツール([[テンプレートエンジン|テンプレート]]やコードジェネレーター)が作り易くなる。フレームワークの実装には[[オブジェクト指向]]プログラミング技法やオブジェクト指向プログラミング言語が一般に使われ、フレームワーク内の既存のクラスを[[継承 (プログラミング)|継承]]して、あるアプリケーションの独自の派生部品を定義することができる。


商用の最初のフレームワークとして{{仮リンク|MacApp|en|MacApp}}がある。[[アップル (企業)|アップルコンピュータ]]が[[Macintosh]]向けに開発したものである。当初、[[オブジェクト指向]]に拡張された[[Pascal]]言語である[[Object Pascal]]で書かれていたが、後に[[C++]]言語で書き直された。Macintosh向けの他のフレームワークとしてMetrowerks PowerPlantやMacZoopがある(いずれも[[Carbon]]ベース)。別の系統である[[NeXTSTEP]]由来の[[macOS]]向けアプリケーションフレームワークとして[[Cocoa]]がある。
商用の最初のフレームワークとして{{仮リンク|MacApp|en|MacApp}}がある。[[Apple|Apple Computer]]が[[Macintosh]]向けに開発したものである。当初、[[オブジェクト指向]]に拡張された[[Pascal]]言語である[[Object Pascal]]で書かれていたが、後に[[C++]]言語で書き直された。Macintosh向けの他のフレームワークとしてMetrowerks PowerPlantやMacZoopがある(いずれも[[Carbon]]ベース)。別の系統である[[NeXTSTEP]]由来の[[macOS]]向けアプリケーションフレームワークとして[[Cocoa]]がある。


[[フリーソフトウェア]]としては、[[Mozilla]]、[[OpenOffice.org]]、[[GNOME]]、[[KDE]]といったプロジェクトにはアプリケーションフレームワークが含まれている。
[[フリーソフトウェア]]としては、[[Mozilla]]、[[OpenOffice.org]]、[[GNOME]]、[[KDE]]といったプロジェクトにはアプリケーションフレームワークが含まれている。

2021年5月20日 (木) 10:31時点における版

アプリケーションフレームワーク (: application framework) とは、プログラミングにおいて、アプリケーションソフトウェアの標準構造を実装するのに使われるライブラリサブルーチンクラスなど)の集まりである。単にフレームワークとも呼ぶ。特定のプラットフォーム(オペレーティングシステム)のための専用フレームワークであることもあれば、複数のプラットフォームをサポートするものもある。

概要

多くの再利用可能なコードをフレームワークにまとめることによって、開発者の手間を省き、新たなアプリケーションのために定形的で標準的なコードを毎回改めて書かなくて済むようにする。アプリケーションフレームワークは特に、グラフィカルユーザインタフェース (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向けのGUIフレームワークとしてはWindows Forms (WinForms) やWindows Presentation Foundation (WPF) が挙げられる。そのほか、Windows 8以降のModern UIアプリケーション開発に対応したWindows Runtime (WinRT) も存在する。

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

また、ウェブアプリケーション構築のためのアプリケーションフレームワークも多数存在する(Apache StrutsRuby on Railsなど)。

関連項目