Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Просветите чайника 
:(
    Опции темы
RockClimber
Дата 20.11.2008, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Четверть века живу, столько же пытаюсь учиться...
Вот наткнулся на фразу (даже лозунг почти) в интернете - что .net решит проблему dll hell. А я вот, помнится, не далее как летом ставил программулину одну. Не помню, на какой комп и что за программулина... Программулина ставиться отказалась по причине отсутствия .net framework 1.1. Лезу в список программ (ведь было же!) и обнаруживаю, что версии 2.0 и 3.5 есть, а 1.1 - нет. Не знаю, кто и когда снес и зачем. Может, я сам от скуки.
Получается, не решит?


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
youri
Дата 1.12.2008, 05:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 1
Всего: 16



dll hell - когда программа при установке ставит свою версию dll и при этом перестают работать программы, которые использовали дургую версию dll (по причине их несовместимости)
PM   Вверх
RockClimber
Дата 6.12.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15





Я конечно понимаю, что википедия - не истина в последней инстанции. Но, тем не менее, как мне казалось, понятие это немного шире: http://ru.wikipedia.org/wiki/DLL_hell
А если библиотека версии 2.0 неспособна заменить библиотеку версии 1.1, и это не dll hell - тогда это нечто еще более страшное... Руки оторвать хочется кому-нибудь... И заставить пользоваться всеми этими программами... Вот. Это мое мнение законченного пользователя.

Цитата(youri @  1.12.2008,  05:07 Найти цитируемый пост)
при этом перестают работать программы, которые использовали дургую версию dll (по причине их несовместимости)

Опять же... В моем случае программа не хочет работать с 2.0 и требует 1.1. Это нельзя назвать "несовместимостью"? Я никогда не пойму, что такое программирование, видимо...


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
youri
Дата 7.12.2008, 19:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 1
Всего: 16



не понимаю, в чем я не прав. Если я был излишне краток, то количество букв можно увеличивать до невозможности

Цитата(RockClimber @  6.12.2008,  22:42 Найти цитируемый пост)
Это нельзя назвать "несовместимостью"?

это и есть несовместимость
PM   Вверх
RockClimber
Дата 7.12.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Уже неважно. Патологическая нелюбовь (моя) к Microsoft и ее продукции не лечится. Это главное...


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
kemiisto
Дата 2.1.2009, 23:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 1
Всего: 160



Цитата(RockClimber @  20.11.2008,  21:56 Найти цитируемый пост)
Получается, не решит? 

Уже решил. Итак, во-первых, youri дал вполне корректное описание проблемы:
Цитата(youri @  1.12.2008,  03:07 Найти цитируемый пост)
dll hell - когда программа при установке ставит свою версию dll и при этом перестают работать программы, которые использовали дургую версию dll (по причине их несовместимости) 

Что тут непонятного. Ну, например такая ситуация. Программа A при установке тащит за собой какую-нибудь dll (foo.dll) и устанавливает её в папку C:\Windows\System32. Эта программа A в процессе работы обращается к этой foo.dll и вызывает из неё какую-то функцию (bar). Всё хорошо, всё работает. Но тут мы устанавливаем программу B, которая по чистой случайности тоже тащить за собой foo.dll и тоже устанавливает её в C:\Windows\System32. Файл dll будет перезаписан, и программа A при попытке вызвать функции bar из foo.dll её там попросту не обнаружит! Всё - ад! smile 
Цитата(RockClimber @  6.12.2008,  20:42 Найти цитируемый пост)
А если библиотека версии 2.0 неспособна заменить библиотеку версии 1.1, и это не dll hell - тогда это нечто еще более страшное...

Как видите, это как раз противоположенная ситуация. Две библиотеки с одинаковым именем, но разных версий не могут заменить друг друга. Так и должно быть, такая идея и была заложена при создании .NET - отсутствие обратной совместимости. Strong Naming и GAC - Вам это что-нибудь говорит? Если нет - курим .NET! Даже в рифму получилось. smile 

Цитата(RockClimber @  7.12.2008,  17:23 Найти цитируемый пост)
Патологическая нелюбовь (моя) к Microsoft и ее продукции не лечится.

 smile Видимо, это ключевой момент. Вы даже не пытаетесь понять...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
RockClimber
Дата 9.2.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Цитата(kemiisto @  2.1.2009,  23:05 Найти цитируемый пост)
Так и должно быть, такая идея и была заложена при создании .NET - отсутствие обратной совместимости. 

Так бы сразу и сказали прямым текстом. Я-то по началу думал - отсутствие обратной совместимости это тоже часть dll hell. Перечитал статью - нет, не часть. Но решение проблемы dll hell в *nix системах мне нравится больше. Любви к Micro$oft родиться не суждено  smile


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
Torsten
Дата 11.2.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 10.6.2008
Где: Pskov

Репутация: нет
Всего: 7



Цитата(youri @  1.12.2008,  05:07 Найти цитируемый пост)
dll hell - когда программа при установке ставит свою версию dll и при этом перестают работать программы, которые использовали дургую версию dll (по причине их несовместимости)

это не программа виновата, а разработчики, которые dll нужные в корневой каталог программы должны были положить.
И программы бы работала и оригинальная dll не трогалась бы. 
Да конечно если программ несколько - то нужно уже какой-нить способ.


Цитата(RockClimber @  9.2.2009,  15:39 Найти цитируемый пост)
Но решение проблемы dll hell в *nix системах мне нравится больше.

Да ушь как это решено в nix это ваще ###. Мне пожалуйсто вот эту библиотеку, а вот эту не надо, а вот эта зависимость мне мешает, а той не хватает ... В итоге чтобы работало нужно пересобрать кучу библиотеку, а после этого обнаружить в системе странные глюки, удалить долбанную прогу, для которой собирались библиотеку и вернуть старые библиотеки на место. Ну дня 2-3 точно, уходит.

Не спасибо, лучше уж МС с dll hell, чем этот lib hell.
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
Goliaf777
Дата 14.2.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 19.11.2008

Репутация: нет
Всего: нет



Цитата(RockClimber @ 7.12.2008,  19:23)
Уже неважно. Патологическая нелюбовь (моя) к Microsoft и ее продукции не лечится. Это главное...

Воть и разрабатывай программы под GNUподобные ОП и будет тебе благодат и снизойдет на тебя свет божий! 
PM MAIL ICQ Skype Jabber   Вверх
makarov_dv
Дата 14.2.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.1.2008

Репутация: нет
Всего: нет



ну вообще то странно и то, и другое

изначально зачем все эти библиотеки деланы были.....чтобы повторное использование кода было....тем самым экономим память оперативную и место на жестком диске.

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

чего то я вот тоже не понимаю
PM MAIL   Вверх
RockClimber
Дата 14.2.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Цитата(Torsten @  11.2.2009,  19:57 Найти цитируемый пост)
Да ушь как это решено в nix это ваще ###. Мне пожалуйсто вот эту библиотеку, а вот эту не надо, а вот эта зависимость мне мешает, а той не хватает

Разница между виндой и никсами простая: никсы хоть как-то пытаются задачу решить (и решают, пусть и криво временами), а винда даже не пытается. При этом после выхода .net это отсутствие попыток объявлено "фичей"...


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
youri
Дата 15.2.2009, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 1
Всего: 16



Цитата(makarov_dv @  14.2.2009,  16:51 Найти цитируемый пост)
если все равно для каждой программы хранится своя версия библиотеки, то на кой эти библиотеки регистрировать в системе, действительно положил в свой каталог и живи с ней сам....механизм доступа организовывать через систему.....на кой, если она моя вот тут лежит рядом....

подразумевалось, что общедоступные библиотеки будут регистрироваться в системе и для всех программ будет использоваться один экземпляр кода в памяти. И подразумевалось, что новые версии не будут противоречить предыдущим. В общем, хотелось как лучше а вышло как всегда


Цитата(RockClimber @  14.2.2009,  22:24 Найти цитируемый пост)
Разница между виндой и никсами простая: никсы хоть как-то пытаются задачу решить (и решают, пусть и криво временами), а винда даже не пытается. При этом после выхода .net это отсутствие попыток объявлено "фичей"...

насколько я знаю, с появлением .NET появился GAC и проблема была решена - в системе могут быть зарегистрированы несколько версий сборки
PM   Вверх
source777
Дата 19.2.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(makarov_dv @  14.2.2009,  16:51 Найти цитируемый пост)
если все равно для каждой программы хранится своя версия библиотеки, то на кой эти библиотеки регистрировать в системе, действительно положил в свой каталог и живи с ней сам....механизм доступа организовывать через систему.....на кой, если она моя вот тут лежит рядом....

чего то я вот тоже не понимаю 
Почитай Рихтера "CLR via C#", там это всё подробно расписано(глава 2 (закрытое развёртывание), глава 3 (совместно используемые сборки)), лень пересказывать...


Цитата(youri @  15.2.2009,  03:05 Найти цитируемый пост)
насколько я знаю, с появлением .NET появился GAC и проблема была решена - в системе могут быть зарегистрированы несколько версий сборки 

Да, проблема dll-hell`a полностью решена, но как видно многие не удосужились узнать про это... у меня даже есть подозрение, что некоторые до сих пор не в курсе, что такое "политика издателя" применительно к совместно используемым библиотекам... smile 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.