Подтвердить что ты не робот

Рамка Vs. API

Теперь это может быть глупый вопрос, но иногда термины Framework и API используются взаимозаменяемо. Способ, которым я это вижу, заключается в том, что Framework является более универсальной вещью, содержащей множество API, которые могут использоваться для различных задач программирования (например,.NET Framework). API меньше и более специализирован (например, Facebook API.) Кто-нибудь хочет поделиться своими соображениями по этому вопросу?

И возьмем, например, что Microsoft назвала .NET платформой, тогда как Sun называет свою платформу... так что это может быть также решение для бизнеса/маркетинга о том, как вызвать "коллекцию библиотек".

4b9b3361

Ответ 1

Шаблоны проектирования содержат следующие определения:

  • toolkits: "часто приложение будет включать классы из одной или нескольких библиотек предопределенных классов, называемых инструментами. Инструментарий представляет собой набор связанных и многоразовых классов, предназначенных для предоставления полезных функциональных возможностей общего назначения".
  • framework: "framework - это набор взаимодействующих классов, которые составляют многоразовый дизайн для определенного класса программного обеспечения".

Ключевым моментом здесь является то, что, хотя инструментальные средства (API) могут быть полезны во многих доменах, фреймворки предназначены для решения проблем для определенных классов проблем, которые могут быть настроены "путем создания подклассов конкретных классов абстрактных классов структуры".

Более того, и, что еще важнее, "структура диктует архитектуру вашего приложения": Inversion Of Control является одной из характеристик фреймворков (см. Martin Фаулер на этом); вместо того, чтобы ваше приложение вызывало определенные API-интерфейсы для реализации определенного поведения, это фреймворк, который вызывает ваш код.

Ответ 2

Я всегда думал, что инфраструктура - это все, внутренний код, API и т.д.

Хотя API - это только бит, который вы используете, когда хотите использовать фреймворк.

Другими словами, платформа .NET состоит из библиотек .NET, всех языков и т.д. API - это то, как вы вызываете функции.

Ответ 3

В каркасе вводится понятие инверсия управления
(т.е. общий программный поток управления не продиктован вызывающим абонентом, а каркасом)

Когда вы ссылаетесь на языковые рамки (такие как Java Framework или .Net Framework), вы фактически включаете больше, чем просто библиотеки и их API (что было бы более ограниченным Software Framework, если эти библиотеки обеспечивают инверсию управления).

Язык Framework включает среды разработки и исполнения, которые будут вызывать ваш код (для его компиляции или для его выполнения).
Вот почему .Net Framework - это "Framework".


Java может ссылаться на свои Framework (JDK, JRE) как " Java Platform", чтобы подчеркнуть его "независимую от платформы" функцию языка программирования.

От О технологии Java

Платформа - это аппаратная или программная среда, в которой запускается программа. (включая Microsoft Windows, Linux, ОС Solaris и Mac OS).
Большинство платформ можно охарактеризовать как комбинацию операционной системы и базового оборудования.
Платформа Java отличается от большинства других платформ тем, что она является платформой только для программ, которая работает поверх других аппаратных платформ.

Платформа Java имеет два компонента:

  • Виртуальная машина Java
  • Интерфейс прикладного программирования Java (API)

Java Platform

Ответ 4

Как следует из его названия (Интерфейс прикладного программирования), API является всего лишь интерфейсом фреймворка.

Ответ 5

По моему мнению, API - это, в основном, способ взаимодействия с существующим приложением (например, Facebook), тогда как структура - это в основном инструмент для создания собственного приложения с нуля.

Ответ 6

  • Рамка программного обеспечения: Является повторно используемым дизайном для программной системы (или подсистемы). Рамки программного обеспечения могут включать в себя программы, библиотеки кода, язык сценариев, другое программное обеспечение, которое помогает разрабатывать и склеивать различные компоненты программного проекта. Различные части структуры могут быть представлены через API.

  • API (Application Programming Interface):. Это набор подпрограмм (методы, функции AKA), структуры данных, классы объектов и/или протоколы, предоставляемые библиотеками и/или службами операционной системы, чтобы для поддержки создания приложений.
    Подробнее с другими Ссылка на эту тему http://aprogrammersday.blogspot.com/2009/02/difference-between-framework-and-api.html

Ответ 7

A Библиотека - это фрагмент кода, который вы можете вызывать из своего собственного кода, чтобы помочь вам сделать что-то более быстро/легко. Например, библиотека Bitmap Processing будет предоставлять средства для загрузки и обработки растровых изображений, что позволит вам записать весь этот код для себя.

API (интерфейс прикладного программирования) - это термин, означающий функции/методы в библиотеке, которые вы можете вызвать, чтобы попросить его сделать что-то для вас - интерфейс к библиотеке.

A framework - это большая библиотека, которая предоставляет множество сервисов (а не только одну сосредоточенную способность, как это делает большинство библиотек). Например,.NET предоставляет фреймворк приложения - он предоставляет большинство (если не всех) служб, которые вам нужны для написания широкого спектра приложений, поэтому одна "библиотека" обеспечивает поддержку почти всего, что вам нужно. Часто структура предоставляет базу, на которой вы создаете свой собственный код, вместо того, чтобы создавать приложение, которое потребляет библиотечный код.

Ответ 8

Я хотел бы думать, что API - это подмножество фреймворка

Ответ 9

По моему опыту, структура часто включает в себя две вещи (по крайней мере), которые простой API не выполняет:

  • Расширяемость: вы можете создавать компоненты подкласса или подкласса для расширения или настройки его функциональных возможностей.

  • Инструменты для генерации кода, администрирования или диагностики, связанные с разработкой приложений.

Ответ 10

Структура - это в основном набор классов, которые абстрагируют процесс разработки и способствуют повторному использованию кода, например, у вас могут быть классы базы данных, сеанса и разбиения на страницы, которые не зависят от приложения, которое вы создаете. Но API-интерфейс - это интерфейс исходного кода, который позволяет взаимодействовать с двумя или несколькими компонентами разных систем, например, добавление API Google Maps на ваш сайт, вы и Google - это две разные системы, Google закодировал базовый интерфейс для включения своих продуктов на ваш сайт/выражение. В общем, просто работайте с каркасной работой при создании вашей системы, а затем разрабатывайте API, когда предлагаете расширения для других людей, таких как Facebook и Google.

Ответ 11

Я знаю, что это старый поток, и это действительно не имеет значения, но я просто не могу не перезвонить своим собственным взглядам. API (например, API-интерфейс драйвера устройства, Windows API и т.д.) Предоставляет основные и важные функции для платформы, так что программист может реализовать свое творчество и сделать что-то с платформой - да, в том числе использовать его для создания фреймворка. Структура представляет собой более высокий уровень функции и абстракции и предоставляет набор многоразовых и удобных функций/классов/соглашений для облегчения разработки приложений, которые имеют общие общие атрибуты (например, приложения для iPad, веб-сервисы и т.д.).

Ответ 12

Рамка реализует очень важный параметр, называемый IoC (Inversion of Control), что означает, вкратце, что ваш код имеет, не более, вещи в руке.

В то время как в API ваш код вызывает другие коды (libraries), когда вы используете определенную инфраструктуру, это фреймворк, который контролирует потоки приложений.