Цитатка из Фаулера
От: Зверёк Харьковский  
Дата: 04.10.05 00:04
Оценка: 2 (2)
Понравилось статья:
http://www.martinfowler.com/bliki/InversionOfControl.html

Наибольшее впечатление на меня произвела цитата (это, правда, не Фаулер сказал, а процитировал Ralph Johnson and Brian Foote):

Важная характеристика фреймворка — то, что определенные пользователем методы взаимодействия с фреймворком вызываются из фреймворка, а не из пользовательского кода. Фреймворк, как правило, играет роль основной программы, координируя всю деятельность приложения. Такая "инверсия управления" дает фреймворку мощность расширяемого скелета. Пользовательские методы вшиваются в общий алгоритм, определенный фреймворком для конкретного приложения.


И дальше — уже сам Фаулер:

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

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


Перевод мой, на скорую руку — ногами не бить.

Такие дела.
FAQ — це мiй ай-кью!
Re: Цитатка из Фаулера
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.10.05 03:39
Оценка: 2 (1)
Здравствуйте, Зверёк Харьковский, Вы писали:

http://www.optim.ru/cs/2004/3/spring/spring.asp
http://www.optim.ru/cs/2004/3/hibernate/hibernate.asp

А то ведь люди не поймут о чем речь.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Цитатка из Фаулера
От: Дарней Россия  
Дата: 04.10.05 03:49
Оценка: 24 (2) +2 -1
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>

ЗХ>Важная характеристика фреймворка — то, что определенные пользователем методы взаимодействия с фреймворком вызываются из фреймворка, а не из пользовательского кода. Фреймворк, как правило, играет роль основной программы, координируя всю деятельность приложения. Такая "инверсия управления" дает фреймворку мощность расширяемого скелета. Пользовательские методы вшиваются в общий алгоритм, определенный фреймворком для конкретного приложения.


Получается, что .NET Framework — на самом деле не очень то и framework?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: Цитатка из Фаулера
От: Зверёк Харьковский  
Дата: 04.10.05 03:56
Оценка: :))
Здравствуйте, Дарней, Вы писали:

ЗХ>>

ЗХ>>Важная характеристика фреймворка — то, что определенные пользователем методы взаимодействия с фреймворком вызываются из фреймворка, а не из пользовательского кода. Фреймворк, как правило, играет роль основной программы, координируя всю деятельность приложения. Такая "инверсия управления" дает фреймворку мощность расширяемого скелета. Пользовательские методы вшиваются в общий алгоритм, определенный фреймворком для конкретного приложения.


Д>Получается, что .NET Framework — на самом деле не очень то и framework?


Именно что. Это огромная пачка фреймворков, библиотек, компонентов, и прочего хлама (зачеркнуто).
FAQ — це мiй ай-кью!
Re[2]: Цитатка из Фаулера
От: EXO Россия http://www.az.inural.ru
Дата: 04.10.05 05:17
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>

ЗХ>>Важная характеристика фреймворка — то, что определенные пользователем методы взаимодействия с фреймворком вызываются из фреймворка, а не из пользовательского кода. Фреймворк, как правило, играет роль основной программы, координируя всю деятельность приложения. Такая "инверсия управления" дает фреймворку мощность расширяемого скелета. Пользовательские методы вшиваются в общий алгоритм, определенный фреймворком для конкретного приложения.


Д>Получается, что .NET Framework — на самом деле не очень то и framework?


Да нет, в обще-то framework, но только не на уровне пользовательских функйий, а на уровне IL.
Поскольку для IL-команд есть инверсия. Но вот только они ... не пользовательские
С другой стороны, во фреймворках есть два уровня логики: логика отдельных (встраиваемых)
пользовательских функций (для которых есть инверсия управления) и логикак конфигурирования
фреймворка целиком. Первое в .Net пользователю (почти!) не отдано и есть только второе.
В общем — какой-то странный гибоид получается...
Re[3]: Цитатка из Фаулера
От: ie Россия http://ziez.blogspot.com/
Дата: 04.10.05 05:34
Оценка:
Здравствуйте, EXO, Вы писали:

Д>>Получается, что .NET Framework — на самом деле не очень то и framework?


EXO>Да нет, в обще-то framework, но только не на уровне пользовательских функйий, а на уровне IL.

EXO>Поскольку для IL-команд есть инверсия. Но вот только они ... не пользовательские
EXO>С другой стороны, во фреймворках есть два уровня логики: логика отдельных (встраиваемых)
EXO>пользовательских функций (для которых есть инверсия управления) и логикак конфигурирования
EXO>фреймворка целиком. Первое в .Net пользователю (почти!) не отдано и есть только второе.
EXO>В общем — какой-то странный гибоид получается...

А вообще что MS говорит по этому поводу? Кто-нибудь встречал их формальное определение .NET Framework?
Превратим окружающую нас среду в воскресенье.
Re[2]: Цитатка из Фаулера
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 04.10.05 10:55
Оценка: +1 -1 :)
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>

ЗХ>>Важная характеристика фреймворка — то, что определенные пользователем методы взаимодействия с фреймворком вызываются из фреймворка, а не из пользовательского кода. Фреймворк, как правило, играет роль основной программы, координируя всю деятельность приложения. Такая "инверсия управления" дает фреймворку мощность расширяемого скелета. Пользовательские методы вшиваются в общий алгоритм, определенный фреймворком для конкретного приложения.


Д>Получается, что .NET Framework — на самом деле не очень то и framework?


Совершенно верно. .NET Framework — это не фрэймворк, а обычная библиотека классов.
Re[3]: Цитатка из Фаулера
От: Дарней Россия  
Дата: 04.10.05 11:07
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

Д>>Получается, что .NET Framework — на самом деле не очень то и framework?


СГ>Совершенно верно. .NET Framework — это не фрэймворк, а обычная библиотека классов.


Ну, не стоит забывать еще про виртуальную машину и общую систему типов. Но в целом название неудачное, ИМХО. Мне больше нравится CLI — это намного информативнее и точнее.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: Цитатка из Фаулера
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.10.05 12:08
Оценка: +1
Здравствуйте, EXO, Вы писали:

EXO>Да нет, в обще-то framework, но только не на уровне пользовательских функйий, а на уровне IL.

EXO>Поскольку для IL-команд есть инверсия. Но вот только они ... не пользовательские
В каком это смысле? Все совершенно верно. Мы отдаем фреймворку фактически бинарный MSIL. Фреймворк джиттит его и вызывает наши методы. Даже для плоского exe файла это так. Для ASP.NET все еще более прозрвчно: именно фреймворк вызывает наш код для выполнения некоторых стадий обработки HTTP запроса.
... << RSDN@Home 1.1.4 stable rev. 510>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Цитатка из Фаулера
От: iZEN СССР  
Дата: 04.10.05 14:28
Оценка: 1 (1)
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Понравилось статья:

ЗХ>http://www.martinfowler.com/bliki/InversionOfControl.html
<...>
ЗХ>Перевод мой, на скорую руку — ногами не бить.
ЗХ>Такие дела.

Ну так давно же так. Когда появился первый событийно-ориентированный интерфейс (API) операционной системы.
Фактически, Win32 API является фреймворком. Но вот GTK+ и Qt уже в меньшей степени фреймворки. Но это GUI, а что до системных сервисов, то ясно же, что современные многозадачные OS — не что иное как фреймворки.
С другой стороны, DOS — это библиотека.
Re: Цитатка из Фаулера
От: GlebZ Россия  
Дата: 04.10.05 15:32
Оценка: +1 :))
Здравствуйте, Зверёк Харьковский, Вы писали:

А какая разница как называется, framework или библиотека. Юзать или не юзать, вот в чем вопрос?

С уважением, Gleb.
Re[2]: Цитатка из Фаулера
От: Дарней Россия  
Дата: 05.10.05 03:56
Оценка: +1 :))
Здравствуйте, GlebZ, Вы писали:

GZ>А какая разница как называется, framework или библиотека. Юзать или не юзать, вот в чем вопрос?


Это уже давно не вопрос. Конечно, юзать
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[4]: Цитатка из Фаулера
От: Павел Кузнецов  
Дата: 05.10.05 20:27
Оценка:
ie,

> А вообще что MS говорит по этому поводу? Кто-нибудь встречал их формальное определение .NET Framework?


Определение Framework приведено в спецификации CLI. Вольный перевод здесь
Автор: Павел Кузнецов
Дата: 19.02.05
.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: Цитатка из Фаулера
От: Павел Кузнецов  
Дата: 05.10.05 20:29
Оценка:
Sinclair,

> EXO> Да нет, в обще-то framework, но только не на уровне пользовательских функйий, а на уровне IL.

> EXO> Поскольку для IL-команд есть инверсия. Но вот только они ... не пользовательские

> В каком это смысле? Все совершенно верно. Мы отдаем фреймворку фактически бинарный MSIL. Фреймворк джиттит его и вызывает наши методы. Даже для плоского exe файла это так.


Это делает не .Net Framework, а CLR, реализация CLI от Microsoft. .Net Framework — такая же CLS-compliant библиотека, как и любая другая framework.

> Для ASP.NET все еще более прозрвчно: именно фреймворк вызывает наш код для выполнения некоторых стадий обработки HTTP запроса.


Для ASP.Net — уже вполне может быть, здесь не знаю
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: Цитатка из Фаулера
От: Павел Кузнецов  
Дата: 05.10.05 20:31
Оценка:
Дарней,

> Д>> Получается, что .NET Framework — на самом деле не очень то и framework?


> СГ> Совершенно верно. .NET Framework — это не фрэймворк, а обычная библиотека классов.


> Ну, не стоит забывать еще про виртуальную машину и общую систему типов.


А для этого есть свои аббревиатуры, CLR и СTS соответственно.

> Но в целом название неудачное, ИМХО. Мне больше нравится CLI — это намного информативнее и точнее.


Это немного о другом. В CLI (а точнее, CLR) .Net Framework не входит, равно как и наоборот.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[5]: Цитатка из Фаулера
От: Дарней Россия  
Дата: 06.10.05 03:57
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Это немного о другом. В CLI (а точнее, CLR) .Net Framework не входит, равно как и наоборот.


CLI — это подмножество мелкософтовской реализации .NET Framework
точнее — та его часть, которая стандартизована в ECMA
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[5]: Цитатка из Фаулера
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.10.05 06:35
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> В каком это смысле? Все совершенно верно. Мы отдаем фреймворку фактически бинарный MSIL. Фреймворк джиттит его и вызывает наши методы. Даже для плоского exe файла это так.

ПК>Это делает не .Net Framework, а CLR, реализация CLI от Microsoft.
Хм. Я не силен в терминах, но до сих пор полагал, что CLR — это часть фреймворка, ...
ПК>.Net Framework — такая же CLS-compliant библиотека, как и любая другая framework.
... а CLS-compliant библиотека в нем называется FCL.
... << RSDN@Home 1.1.4 stable rev. 510>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Цитатка из Фаулера
От: Павел Кузнецов  
Дата: 07.10.05 04:15
Оценка:
Дарней,

> ПК>Это немного о другом. В CLI (а точнее, CLR) .Net Framework не входит, равно как и наоборот.

>
> CLI — это подмножество мелкософтовской реализации .NET Framework
> точнее — та его часть, которая стандартизована в ECMA

CLI -- спецификация того, что в исполнении Microsoft называется CLR, соответственно, реализацией она никак быть не может. Кроме этого в спецификации ECMA описаны CLI Libraries (partition IV), которые тоже реализацией не являются.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Цитатка из Фаулера
От: Павел Кузнецов  
Дата: 07.10.05 04:22
Оценка:
Sinclair,

>>> В каком это смысле? Все совершенно верно. Мы отдаем фреймворку фактически бинарный MSIL. Фреймворк джиттит его и вызывает наши методы. Даже для плоского exe файла это так.


> ПК> Это делает не .Net Framework, а CLR, реализация CLI от Microsoft.


> Хм. Я не силен в терминах, но до сих пор полагал, что CLR — это часть фреймворка, ...


> ПК> .Net Framework — такая же CLS-compliant библиотека, как и любая другая framework.


> ... а CLS-compliant библиотека в нем называется FCL.


Честно говоря, у них черт ногу сломит... С одной стороны:

(Определение framework из спецификации CLI)

A library consisting of CLS-compliant code is herein referred to as a framework.


С другой:

(MSDN)

The .NET Framework consists of:

  • The Common Language Runtime (CLR) A language-neutral development & execution environment that provides services to help "manage" application execution
  • The Framework Class Libraries (FCL) A consistent, object-oriented library of prepackaged functionality


  • Posted via RSDN NNTP Server 2.0 beta
    Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
    Re[7]: Цитатка из Фаулера
    От: Sinclair Россия https://github.com/evilguest/
    Дата: 07.10.05 06:06
    Оценка: 2 (2) :))) :))) :)))
    Здравствуйте, Павел Кузнецов, Вы писали:

    ПК>Честно говоря, у них черт ногу сломит...


    У меня лично сложилось впечатление, что наиболее точным переводом термина Framework от MS будет "фиговина" . А фиговина — она, тскать, неотъемлемо то содержит в себе другие фиговины, то наоборот в них содержится... Ибо точную границу фмговины провести возможным не представляется.
    ... << RSDN@Home 1.1.4 stable rev. 510>>
    Уйдемте отсюда, Румата! У вас слишком богатые погреба.
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.