Комментарии 25
каркас
каркас
каркас
Слово "фреймворк" уже давно стало устоявшимся термином, чтобы его использовать без дурацкого перевода.
Какая-то длинная статья. Чтобы понять фреймворк это или библиотека, достаточно ответить на вопрос "управляет ли оно потоком выполнения моей программы?". Если да, то это фреймворк, если нет, то это библиотека.
Если вопрос кажется дурацким или непонятным, его можно переформулировать вот так: "в своём коде я отвечаю на вопросы или скорее делаю утверждения?". Первое — использование фреймворка, второе — использование библиотеки.
На ваш взгляд ORM это фреймворк или библиотека?
Где в .net framework собственно сам фреймворк?
Хороший ОРМ (для дотнета, например, linq2db, бывший bl toolkit) — библиотека, плохой — фреймворк (пример — первые версии entity framework, linq 2 sql).
как-то странно получается, что в одном случае это фреймворк, а в другом библиотека. попробуем порассуждать: ORM реализует шаблон Data Mapper, но только в слое доступа к данным и заставляет нас строить эту часть приложения определенным образом, основным "потоком" выполнения приложения он не управляет, в таком случае в применении к всему приложению это библиотека, а в слое доступа данных — фреймворк.
В дотнете фреймворк — это джит-компилятор и рантайм. Остальное — это библиотеки.
Фреймворк вызывает ваш код, ваш код вызывает библиотеки.
При вызове библиотеки и передаче коллбека, инициатива все равно была за вами.
Фреймворк стартует сам, при запуске приложения, и вызывает ваш код из определенного места.
А можете привести пример?
Без него сложно вам как-то ответить
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();
Подобный бойлерплейт код мастхэв при использовании фреймворков на языках, где точку входа нельзя задать (или крайне редко задают) стандартными средствами языка, чтобы сразу указать на код фреймворка. Часто этот код можно сгенерировать средствами фреймворка, но даже сгененерированный фреймворком формально это не код фреймворка.
Вы сами придумали такую интерпритацию паттерна “подписчик/издатель”?
Отличие каркаса от библиотеки