Comments 25
каркас
каркас
каркас

Слово "фреймворк" уже давно стало устоявшимся термином, чтобы его использовать без дурацкого перевода.

А мне нравится каркас, что за пренебрежение к русскому? либо каркас либо framework.
Я называю это импортозамещением по-русски. Это французское слово (carcass — скелет).

Какая-то длинная статья. Чтобы понять фреймворк это или библиотека, достаточно ответить на вопрос "управляет ли оно потоком выполнения моей программы?". Если да, то это фреймворк, если нет, то это библиотека.


Если вопрос кажется дурацким или непонятным, его можно переформулировать вот так: "в своём коде я отвечаю на вопросы или скорее делаю утверждения?". Первое — использование фреймворка, второе — использование библиотеки.

Подробно разобраться хотелось, со своим «велосипедом».
На ваш взгляд ORM это фреймворк или библиотека?
Где в .net framework собственно сам фреймворк?
UFO landed and left these words here
UFO landed and left these words here

Хороший ОРМ (для дотнета, например, linq2db, бывший bl toolkit) — библиотека, плохой — фреймворк (пример — первые версии entity framework, linq 2 sql).

как-то странно получается, что в одном случае это фреймворк, а в другом библиотека. попробуем порассуждать: ORM реализует шаблон Data Mapper, но только в слое доступа к данным и заставляет нас строить эту часть приложения определенным образом, основным "потоком" выполнения приложения он не управляет, в таком случае в применении к всему приложению это библиотека, а в слое доступа данных — фреймворк.

Если принять, что фреймворк влияет в том числе на дизайн приложения, то, например, в первых версиях Entity Framework нужно было наследоваться от классов фреймворка, использовать только сгенерированный код, использовать edmx, использовать unit of work. В смысле ограничений весьма сильно.

В дотнете фреймворк — это джит-компилятор и рантайм. Остальное — это библиотеки.

Какой же это фреймворк. То, как оно там внутри работает не влияет на то, как проектируется приложение.
На самом деле всё сложнее, и чёткого определения или даже границы нет.
Например Symfony — это и фреймворк, и набор библиотек одновременно. И всё зависит от подхода, который выберет разработчик при работе с ним.

При вызове библиотеки и передаче коллбека, инициатива все равно была за вами.


Фреймворк стартует сам, при запуске приложения, и вызывает ваш код из определенного места.

Ну, есть фреймворки, которые требуют написать определённый код для своего старта.
Первое что под руку попалось:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');

$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();

Подобный бойлерплейт код мастхэв при использовании фреймворков на языках, где точку входа нельзя задать (или крайне редко задают) стандартными средствами языка, чтобы сразу указать на код фреймворка. Часто этот код можно сгенерировать средствами фреймворка, но даже сгененерированный фреймворком формально это не код фреймворка.
Бедные подписчики ваших издателей, только один из них получит сообщение о событии, так еще и заставят данные вернуть.

Вы сами придумали такую интерпритацию паттерна “подписчик/издатель”?
Only those users with full accounts are able to leave comments. Log in, please.