<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA</id>
	<title>Фреймворк - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA&amp;action=history"/>
	<updated>2026-07-16T14:35:17Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA&amp;diff=12641&amp;oldid=prev</id>
		<title>imported&gt;Sldst-bot: Уточнение даты установки ш:Нет источников: 2010-11-24 (до 2024-10-20 ш:Rq с параметром source)</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA&amp;diff=12641&amp;oldid=prev"/>
		<updated>2025-09-05T14:31:24Z</updated>

		<summary type="html">&lt;p&gt;Уточнение даты установки &lt;a href=&quot;/mediawiki/index.php?title=%D0%A8:%D0%9D%D0%B5%D1%82_%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Ш:Нет источников (страница не существует)&quot;&gt;ш:Нет источников&lt;/a&gt;: &lt;a href=&quot;/mediawiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F/29639949&quot; title=&quot;Служебная:Изменения/29639949&quot;&gt;2010-11-24&lt;/a&gt; (до &lt;a href=&quot;/mediawiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F/140936567&quot; title=&quot;Служебная:Изменения/140936567&quot;&gt;2024-10-20&lt;/a&gt; &lt;a href=&quot;/mediawiki/index.php?title=%D0%A8:Rq&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Ш:Rq (страница не существует)&quot;&gt;ш:Rq&lt;/a&gt; с параметром source)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Фре́ймворк&amp;#039;&amp;#039;&amp;#039;; иногда &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;фреймво́рк&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ([[англицизм]], [[неологизм]] от {{lang-en2|framework}} «[[Несущая конструкция|остов]], каркас, рама; структура») — программная платформа, определяющая структуру программной системы; [[программное обеспечение]], облегчающее разработку и объединение разных компонентов большого программного проекта.&lt;br /&gt;
&lt;br /&gt;
Употребляется также слово &amp;#039;&amp;#039;каркас&amp;#039;&amp;#039; (а некоторые авторы используют его в качестве основного) в том числе не базируясь вообще на англоязычном аналоге&amp;lt;ref name=&amp;quot;Karkas&amp;quot;&amp;gt;В. Фаронов. Создание приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.citforum.ru/SE/project/isr/ Методы и технологии реинжиниринга ИС. К. В. Ахтырченко, Т. П. Сорокваша] {{Wayback|url=http://www.citforum.ru/SE/project/isr/ |date=20090803222040 }}, Институт системного программирования [[РАН]]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;gorbunov&amp;quot; /&amp;gt;. Можно также говорить о [[v:Каркас архитектуры|каркасном подходе]]&amp;lt;ref name=&amp;quot;gorbunov&amp;quot;&amp;gt;{{книга|автор=[[Горбунов-Посадов, Михаил Михайлович|Горбунов-Посадов М. М.]]|заглавие=Расширяемые программы|ссылка=http://keldysh.ru/gorbunov/|место=М.|издательство=Полиптих|год=1999|страниц=336|isbn=5-901-11801-4|archive-date=2012-09-20|archive-url=https://web.archive.org/web/20120920094340/http://keldysh.ru/gorbunov/}}&amp;lt;/ref&amp;gt;, как о подходе к построению программ, где любая конфигурация программы строится из двух частей:&lt;br /&gt;
# Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть;&lt;br /&gt;
# Сменные модули (или точки расширения)&amp;lt;ref&amp;gt;{{Cite web|url=https://kpfu.ru/staff_files/F_1284155032/Arkhitektura_informacionnykh_sistem.pdf|title=АРХИТЕКТУРА ИНФОРМАЦИОННЫХ СИСТЕМ|author=А.Ф. ГАЛИМЯНОВ, Ф.А. ГАЛИМЯНОВ|website=КАЗАНСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ|publisher=ИНСТИТУТ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Отличие от библиотеки ==&lt;br /&gt;
&amp;#039;&amp;#039;Фреймворк&amp;#039;&amp;#039; отличается от понятия &amp;#039;&amp;#039;&amp;#039;[[Библиотека (программирование)|библиотеки]]&amp;#039;&amp;#039;&amp;#039; тем, что последняя может быть использована в программном продукте просто как набор подпрограмм похожей функциональности, не влияя на архитектуру программного продукта и не накладывая на неё никаких ограничений. В то время как &amp;#039;&amp;#039;фреймворк&amp;#039;&amp;#039; диктует правила построения архитектуры приложения, задавая на начальном этапе разработки поведение по умолчанию — «каркас», который нужно будет расширять и изменять согласно указанным требованиям. Пример программного фреймворка — C.M.F. ([[Content Management Framework]]), а пример библиотеки — [[Модуль (программирование)|модуль]] [[Электронная почта|электронной почты]].&lt;br /&gt;
&lt;br /&gt;
Также, в отличие от библиотеки, которая объединяет набор близкой функциональности, — «фреймворк» может содержать большое число разных по тематике библиотек.&lt;br /&gt;
&lt;br /&gt;
Ключевым отличием «фреймворка» от библиотеки является [[инверсия управления]]: пользовательский код вызывает функции библиотеки (или классы) и получает управление после вызова. Во «фреймворке» пользовательский код может реализовывать конкретное поведение, встраиваемое в более общий — «абстрактный» код фреймворка. При этом «фреймворк» вызывает функции ([[Класс (программирование)|классы]]) пользовательского кода&amp;lt;ref&amp;gt;{{cite web|url=http://martinfowler.com/bliki/InversionOfControl.html|title=InversionOfControl|author=Martin Fowler|access-date=2013-11-05|lang=en|archive-date=2011-01-23|archive-url=https://web.archive.org/web/20110123051630/http://martinfowler.com/bliki/InversionOfControl.html|url-status=live}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Фреймворк программной системы ==&lt;br /&gt;
[[Файл:Python Powered.png|thumb]]&lt;br /&gt;
Это &amp;#039;&amp;#039;&amp;#039;каркас&amp;#039;&amp;#039;&amp;#039; программной системы (или подсистемы). Может включать: вспомогательные программы, библиотеки кода, язык сценариев и другое [[Программное обеспечение|ПО]], облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого [[API]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Примеры:&amp;#039;&amp;#039;&amp;#039; [[веб-фреймворк]]и, как PHP-фреймворки [[Zend Framework]], [[Laravel]] или [[Symfony]], или [[Django]], написанный на [[Python]].&lt;br /&gt;
&lt;br /&gt;
== Фреймворк приложения ==&lt;br /&gt;
Одно из главных преимуществ при использовании «каркасных» приложений — «стандартность» структуры приложения. «Каркасы» стали популярны с появлением [[Графический интерфейс пользователя|графических интерфейсов пользователя]], которые имели тенденцию к реализации стандартной структуры для приложений. С их использованием стало гораздо проще создавать средства для &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;автоматического&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; создания графических интерфейсов, так как структура внутренней реализации кода приложения стала известна &amp;#039;&amp;#039;заранее.&amp;#039;&amp;#039; Для обеспечения каркаса обычно используются техники [[Объектно-ориентированное программирование|объектно-ориентированного программирования]] (например, части приложения могут наследоваться от базовых классов фреймворка).&lt;br /&gt;
&lt;br /&gt;
Одним из первых коммерческих фреймворков приложения был {{нп5|MacApp}}, написанный [[Apple]] для «[[Macintosh]]». Первоначально созданный с помощью расширенной (объектно-ориентированной) версии языка «[[Object Pascal]]», впоследствии он был переписан на «[[C++]]». Другие популярные каркасы для «Macintosh» включали:&lt;br /&gt;
&lt;br /&gt;
* {{lang-en2|Metrowerks}} {{нп5|PowerPlant}} и {{нп5|MacZoop}} (все основаны на [[Carbon (API)|Carbon]]);&lt;br /&gt;
* {{нп5|WebObjects}} от [[NeXT]].&lt;br /&gt;
&lt;br /&gt;
В различной степени фреймворки приложения представляют собой «[[Cocoa]]» для [[Mac OS X]], а также [[Свободное ПО|свободные]] фреймворки, существующие как часть проектов [[Mozilla application framework|Mozilla]], [[OpenOffice.org]], [[GNOME]] и [[KDE]].&lt;br /&gt;
&lt;br /&gt;
[[Microsoft]] создала похожий продукт для «[[Windows]]», который называется [[Microsoft Foundation Classes]] (MFC). На данный момент основным продуктом Microsoft для разработки ПО предлагается «[[.NET]]».&lt;br /&gt;
&lt;br /&gt;
[[Кроссплатформенное ПО|Кроссплатформенными]] каркасами приложений (для операционных систем «[[Linux]]», «Macintosh» и «Windows») являются, например, {{нп5|widget toolkit}}, [[wxWidgets]], [[Qt]], [[.NET]], {{нп5|MyCoRe||de|MyCoRe}} или [[FOX toolkit]].&lt;br /&gt;
&lt;br /&gt;
== Фреймворк концептуальной модели ==&lt;br /&gt;
Абстрактное понятие структуры, которое используется в исследованиях для определения возможных способов решения проблемы или представления идеи.&lt;br /&gt;
&lt;br /&gt;
== Реализация фреймворка ==&lt;br /&gt;
«Фреймворк» определяется как множество конкретных и [[абстрактный класс|абстрактных классов]], а также определений способов их взаимоотношения. Конкретные классы обычно реализуют взаимные отношения между классами. Абстрактные классы представляют собой &amp;#039;&amp;#039;точки расширения&amp;#039;&amp;#039;, в которых каркасы могут быть использованы или адаптированы.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Точка расширения&amp;#039;&amp;#039; — это та «часть» фреймворка, для которой не приведена реализация. Соответственно, каркас концептуальной модели состоит из [[концептуальные классы|концептуальных классов]], а каркас программной системы — из классов [[язык программирования|языка программирования]] общего назначения.&lt;br /&gt;
&lt;br /&gt;
Процесс создания фреймворка заключается в выборе подмножества задач проблемы и их реализаций. В ходе реализаций общие средства решения задач заключаются в конкретных классах, а изменяемые средства — выносятся в точки расширения.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Шаблон проектирования]]&lt;br /&gt;
* [[Мультимедийный фреймворк]]&lt;br /&gt;
* [[CSS-фреймворк]]&lt;br /&gt;
* {{нп3|Фреймворк (значения)||en|Framework}}&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
{{Навигация}}&lt;br /&gt;
&lt;br /&gt;
{{Нет источников |дата=2010-11-24}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программирование]]&lt;br /&gt;
[[Категория:Информационные системы]]&lt;br /&gt;
[[Категория:Фреймворки| ]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Sldst-bot</name></author>
	</entry>
</feed>