Цитатка из Фаулера
От: Зверёк Харьковский  
Дата: 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>>
    Уйдемте отсюда, Румата! У вас слишком богатые погреба.
    Re[4]: Цитатка из Фаулера
    От: gear nuke  
    Дата: 09.10.05 08:52
    Оценка: +1 :)
    Здравствуйте, Дарней,

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


    Д>Ну, не стоит забывать еще про виртуальную машину и общую систему типов. Но в целом название неудачное, ИМХО.


    Как же это неудачное? С точки зрения маркетинга, таки очень хорошо назвали .
    Библиотек-то и так миллион.
    People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.