API、フレームワーク、ミドルウェアの違いは何ですか? 基本的に、それらはすべて抽象的な低レベル サービスをアプリに提供します。その場合、なぜ dot net はフレームワークと呼ばれ、windows API は、うーん... API と呼ばれるのですか?
5 に答える
API は、アプリケーション プログラマ インターフェイスです。これは、プログラマーがソフトウェアとのインターフェイスに使用する方法を指す用語です。たとえば、DAO に save() メソッドがあるとします。保存は DAO API の一部です。大まかに言うと、ユーザーをシステムに追加する機能があるかもしれません。これはシステム API の一部です。
フレームワークは、ツールまたはツールのセットです。たとえば、Spring は、制御の反転、依存性注入を管理し、気の利いたテンプレートを提供して作業を楽にするフレームワークです。API を介して Spring を使用します。
ミドルウェアは、孤立したシステムまたは機能の束が相互作用できるようにするソフトウェアです。したがって、Web サイトと支払いシステムがある場合は、ミドルウェアを使用して接続します。
APIは、プログラミングライブラリ(または複数のライブラリ)へのインターフェイスです。それはあなたに何かをする方法を課しません。たとえば、OpenGLはそれを使ってできることを制限しません。
フレームワークは、問題に対する部分的に完成したソリューションを提供します。あなたはあなたが望むものを作るために空白を埋めます。これにより、実行が加速する可能性がありますが、設計、パフォーマンス、機能など、フレームワークの制限によっても制限されます。--たとえば、MFCはUIを作成する方法を提供しました。ダイアログはサポートされていましたが、フォームはサポートされていませんでした。ドッキングなどは制限されており、バグが含まれていました。Windowsフォームは、(Borland Delphiのアーキテクトによる)はるかに有能なフレームワークであり、設計、柔軟性、ツールなど、あらゆる点で優れています。フレームワークは、実行したいことを実行しなくなるまでは優れています。それらを回避しようとして得た時間のほとんどを失う可能性があります。
ミドルウェアは垂直スライスです。ソフトウェアを階層化されたもの(OS、ハードウェアの抽象化、ユーティリティライブラリなど)と考える場合、ミドルウェアはこれらの層の多くを垂直に組み込んでいます。これは、アプリケーション内の領域に完全または部分的なソリューションを提供します。たとえば、仲介されたメッセージングシステム、またはレンダリングライブラリ/エンジン。ミドルウェアは、基本的なライブラリだけでなく、ロギング、デバッグ、パフォーマンス測定などの関連ツールも提供します。ミドルウェアを使用するときに注意しなければならないことの1つは、DRYの原則です。ミドルウェアは垂直システムであるため、アプリケーションの他の部分と競合または重複する可能性があります。
フレームワークは API を実装します。API は、フレームワーク クライアントを、基礎となるフレームワークの実装の詳細から分離します。したがって、(大まかに言えば) Mono または .Net Framework を使用して、共通のソース コードに基づいてプログラムを実行できます。これは、どちらのフレームワークに対する API も同じであるためです。
ミドルウェアは通常、プロセス間通信に特化したフレームワークです。
API は、システムへのプログラム インターフェイスです。システムと対話するために使用しますが、プログラムに構造を強制することはありません (理想的には)。
フレームワークは、必要なボイラープレートの量を減らすために、特定のタイプのアプリケーションを作成する方法を決定します。それは、そのタイプのアプリケーションのいくつかの一般的な問題を解決します。
ミドルウェアは主にマーケティング用語です。多くの定義がありますが、通常は、いくつかのツールが構築された大きなフレームワークが含まれます。一部の商用ゲーム エンジンはミドルウェアと考えることができ、SOA プラットフォームもミドルウェアと呼ばれます。
主な違いは、機能の目的です。
API は、特定のドメインの特定の問題を解決するように設計されています。必要なデータ構造、クラス、メソッド、インターフェイスなどが含まれています。ADO.net API などは、Microsoft SQL Server に接続する機能を提供します。
開発者が再利用可能でスケーラブルなソフトウェア アプリケーションを作成できるように設計されたフレームワーク。フレームワークには、API のような特定の機能はありませんが、API によって公開されるさまざまな機能があります。など、ADO.net は、データ サービスにアクセスするための .net フレームワークの API です。フレームワークには、コンパイラ、プログラム、クラス ライブラリ、ランタイムがあり、プラグインを追加できます。