Форум программистов, компьютерный форум, киберфорум
Теория и практика программирования
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
1

Отличия между API и Framework

03.05.2017, 19:55. Показов 3316. Ответов 13
Метки нет (Все метки)

Ребята, опять я со своими вопросами хочу потревожить вас!
Не могу понять разницу между API (application programming interface) и Framework'ом.

Люблю все воспринимать, строя аналоги.
Пусть у нас есть ОС (операционная система), API для нее.
> Песочница -- ОС, а лопатка -- API. (Правильный аналог? Поправляйте!)
> Получается, ограждение вокруг песка -- framework?

Развейте туман неясности, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2017, 19:55
Ответы с готовыми решениями:

Отличия между префиксами is и has в методах
В чем отличия между префиксами is и has? К примеру isset() и hasError()

Отличия между книгами
Добрый день! Решил прикупить себе Искусство программирования Кнута. Так вот... не могу понять в...

.NET Framework 2 - отличия версий
Может немного тупой вопрос, но все же хотелось бы знать. Есть .NET Framework 2, .NET Framework 2...

В чем отличия win api от windows forms?
Сабж ясен из заголовка!

13
Модератор
2818 / 1978 / 429
Регистрация: 26.03.2015
Сообщений: 7,544
03.05.2017, 22:27 2
В википедии смотрели определения апи и фреймворка?
0
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
04.05.2017, 00:46  [ТС] 3
Shamil1,
Цитата Сообщение от Shamil1 Посмотреть сообщение
В википедии смотрели определения апи и фреймворка?
Да. И не только. Все пишут по-разному, я запутался.

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

Цитата Сообщение от Википедия
Framework -- программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.
После прочтения этого определения на ум ничего не приходит... Кажется, я просто не понимаю что такое framework.
Вот есть .NET Framework, но я не понимаю что это и как юзать
Есть глупое предположение, что есть как бы класс, который нужно наследовать и реализовать/переопределить все его методы. Хм. Тогда JFrame, получается, не API, а framework.

Буду ждать подзатыльников с пояснениями...) Повременим)
0
959 / 699 / 228
Регистрация: 30.06.2015
Сообщений: 3,746
Записей в блоге: 37
04.05.2017, 13:48 4
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Песочница -- ОС, а лопатка -- API. (Правильный аналог? Поправляйте!)
Правильно.
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Получается, ограждение вокруг песка -- framework?
Что-то вроде того.
Фрэймворк помимо библиотек задаёт ещё и шаблон проектирования, - структуру проекта. Например тот же QT.
1
Модератор
2818 / 1978 / 429
Регистрация: 26.03.2015
Сообщений: 7,544
04.05.2017, 14:02 5
Лучший ответ Сообщение было отмечено Captain Maxee как решение

Решение

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

Фреймворк - это каркас. Фактически, это готовое приложение, в котором программист может заменять отдельные куски. Windows Forms - это пример фреймворка.
1
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
04.05.2017, 14:15  [ТС] 6
Цитата Сообщение от Shamil1 Посмотреть сообщение
Windows Forms - это пример фреймворка.
Ну теперь я точно запутался. Windows Forms разве не API?
0
959 / 699 / 228
Регистрация: 30.06.2015
Сообщений: 3,746
Записей в блоге: 37
04.05.2017, 14:39 7
Лучший ответ Сообщение было отмечено Captain Maxee как решение

Решение

Цитата Сообщение от Captain Maxee Посмотреть сообщение
Windows Forms разве не API?
Скорее всего это обёртка над апи.
1
433 / 425 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
04.05.2017, 15:18 8
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Ну теперь я точно запутался. Windows Forms разве не API?
Простейший пример: если в win forms надо прочитать выбранный пользователем файл, то вызывается метод фреймворка .NET OpenFileDialog.OpeFile(). Этот метод в свою очередь вызывает .NET функцию Open(), она в конце концов вызовет API функцию OpenFile() операционной системы windows, которая в свою очередь вызовет системную функцию ZwCreateFile() для чтения файла в ядре ОС

Может быть есть кактие-то неточности, но в целом вроде как то так
2
Модератор
2818 / 1978 / 429
Регистрация: 26.03.2015
Сообщений: 7,544
04.05.2017, 16:47 9
Лучший ответ Сообщение было отмечено Captain Maxee как решение

Решение

В общем случае API не имеет никакого отношения к Windows вообще и к WinAPI в частности.

Упрощённо:
Есть некая программа (библиотека), которую программист может использовать в своей программе, вызывая некие функции. Набор сигнатур этих функций и есть АПИ.

Цитата Сообщение от Captain Maxee Посмотреть сообщение
Windows Forms разве не API?
Нет, не АПИ.
(Это как тёплое с мягким сравнивать)
1
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
04.05.2017, 18:01  [ТС] 10
Цитата Сообщение от Shamil1 Посмотреть сообщение
Упрощённо:
Есть некая программа (библиотека), которую программист может использовать в своей программе, вызывая некие функции. Набор сигнатур этих функций и есть АПИ.
Это то, что нужно! Начинаю разбираться.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Скорее всего это обёртка над апи.
Точно. Теперь все сходится.

Спасибо всем, кто пытался вразумить меня

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
В общем случае API не имеет никакого отношения к WinAPI.
Хотя это осталось неясным
0
Модератор
2818 / 1978 / 429
Регистрация: 26.03.2015
Сообщений: 7,544
04.05.2017, 18:06 11
Чужой код можно условно поделить на библиотеки и фреймворки.
Библиотеки предоставляют набор функций (апи), которые может вызывать наш код.
Фреймворки предоставляют каркас приложения и точки расширения, в которых может вызываться наш код.
То есть, в первом случае мы пишем функции, которые вызывают библиотечные функции, а во втором случае мы пишем функции, которые будут вызываться фреймворком.

Цитата Сообщение от Captain Maxee Посмотреть сообщение
Теперь все сходится.
Ну и чтобы совсем всё сошлось: .NET Framework не является фреймворком.

Добавлено через 1 минуту
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Хотя это осталось неясным
WinAPI - это всего лишь одно из множества различных API.
1
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
04.05.2017, 18:23  [ТС] 12
Цитата Сообщение от Shamil1 Посмотреть сообщение
Ну и чтобы совсем всё сошлось: .NET Framework не является фреймворком.
Это и вызывало путаницу. Теперь-то понятно, что .NET Framework всего лишь набор продуктов(WinAPI, различные фреймворки, CLR) для разработки ПО от (и под) Microsoft. Аналог Java (не языка программирования).

Цитата Сообщение от Shamil1 Посмотреть сообщение
WinAPI - это всего лишь одно из множества различных API.
Ну так я об этом и говорил
0
433 / 425 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
05.05.2017, 00:46 13
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Теперь-то понятно, что .NET Framework всего лишь набор продуктов(WinAPI, различные фреймворки, CLR)
Winapi не входит в. Net
1
Велосипедист...
351 / 218 / 73
Регистрация: 15.12.2015
Сообщений: 785
05.05.2017, 14:03  [ТС] 14
oldnewyear, точно, ошибся. Я имел ввиду BCL.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2017, 14:03

Отличия между ++value и value++
Все используют по разному, чем эти отличия отличаются друг от друга. Или ничем ?

Отличия между видеокартами
Доброго вечера форумчане! в чем отличия от Radeon R9 280X от R9 280 (без икса) сильно ли они...

Отличия между DVD
Задали мне тут вопрос, в чем отличие между двумя этими оптическими носителями, с точки зрения...

Отличия между загрузками макета
Всем добрый день! Такой вопрос - загружаю свой макет в конфигураторе - всё ок, макет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.