![]() |
|
Модераторы: Се ля ви |
![]()
|
|
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Четверть века живу, столько же пытаюсь учиться...
Вот наткнулся на фразу (даже лозунг почти) в интернете - что .net решит проблему dll hell. А я вот, помнится, не далее как летом ставил программулину одну. Не помню, на какой комп и что за программулина... Программулина ставиться отказалась по причине отсутствия .net framework 1.1. Лезу в список программ (ведь было же!) и обнаруживаю, что версии 2.0 и 3.5 есть, а 1.1 - нет. Не знаю, кто и когда снес и зачем. Может, я сам от скуки. Получается, не решит? -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 1 Всего: 16 |
dll hell - когда программа при установке ставит свою версию dll и при этом перестают работать программы, которые использовали дургую версию dll (по причине их несовместимости)
|
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Я конечно понимаю, что википедия - не истина в последней инстанции. Но, тем не менее, как мне казалось, понятие это немного шире: http://ru.wikipedia.org/wiki/DLL_hell А если библиотека версии 2.0 неспособна заменить библиотеку версии 1.1, и это не dll hell - тогда это нечто еще более страшное... Руки оторвать хочется кому-нибудь... И заставить пользоваться всеми этими программами... Вот. Это мое мнение законченного пользователя.
Опять же... В моем случае программа не хочет работать с 2.0 и требует 1.1. Это нельзя назвать "несовместимостью"? Я никогда не пойму, что такое программирование, видимо... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 1 Всего: 16 |
не понимаю, в чем я не прав. Если я был излишне краток, то количество букв можно увеличивать до невозможности
это и есть несовместимость |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Уже неважно. Патологическая нелюбовь (моя) к Microsoft и ее продукции не лечится. Это главное...
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 1 Всего: 160 |
Уже решил. Итак, во-первых, youri дал вполне корректное описание проблемы: Что тут непонятного. Ну, например такая ситуация. Программа A при установке тащит за собой какую-нибудь dll (foo.dll) и устанавливает её в папку C:\Windows\System32. Эта программа A в процессе работы обращается к этой foo.dll и вызывает из неё какую-то функцию (bar). Всё хорошо, всё работает. Но тут мы устанавливаем программу B, которая по чистой случайности тоже тащить за собой foo.dll и тоже устанавливает её в C:\Windows\System32. Файл dll будет перезаписан, и программа A при попытке вызвать функции bar из foo.dll её там попросту не обнаружит! Всё - ад!
Как видите, это как раз противоположенная ситуация. Две библиотеки с одинаковым именем, но разных версий не могут заменить друг друга. Так и должно быть, такая идея и была заложена при создании .NET - отсутствие обратной совместимости. Strong Naming и GAC - Вам это что-нибудь говорит? Если нет - курим .NET! Даже в рифму получилось.
-------------------- |
||||
|
|||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Так бы сразу и сказали прямым текстом. Я-то по началу думал - отсутствие обратной совместимости это тоже часть dll hell. Перечитал статью - нет, не часть. Но решение проблемы dll hell в *nix системах мне нравится больше. Любви к Micro$oft родиться не суждено -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Torsten |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 10.6.2008 Где: Pskov Репутация: нет Всего: 7 |
это не программа виновата, а разработчики, которые dll нужные в корневой каталог программы должны были положить. И программы бы работала и оригинальная dll не трогалась бы. Да конечно если программ несколько - то нужно уже какой-нить способ.
Да ушь как это решено в nix это ваще ###. Мне пожалуйсто вот эту библиотеку, а вот эту не надо, а вот эта зависимость мне мешает, а той не хватает ... В итоге чтобы работало нужно пересобрать кучу библиотеку, а после этого обнаружить в системе странные глюки, удалить долбанную прогу, для которой собирались библиотеку и вернуть старые библиотеки на место. Ну дня 2-3 точно, уходит. Не спасибо, лучше уж МС с dll hell, чем этот lib hell. --------------------
We have no begining, we have no end. We are infinite. |
|||
|
||||
| Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Воть и разрабатывай программы под GNUподобные ОП и будет тебе благодат и снизойдет на тебя свет божий! |
|||
|
||||
| makarov_dv |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.1.2008 Репутация: нет Всего: нет |
ну вообще то странно и то, и другое
изначально зачем все эти библиотеки деланы были.....чтобы повторное использование кода было....тем самым экономим память оперативную и место на жестком диске. если все равно для каждой программы хранится своя версия библиотеки, то на кой эти библиотеки регистрировать в системе, действительно положил в свой каталог и живи с ней сам....механизм доступа организовывать через систему.....на кой, если она моя вот тут лежит рядом.... чего то я вот тоже не понимаю |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Разница между виндой и никсами простая: никсы хоть как-то пытаются задачу решить (и решают, пусть и криво временами), а винда даже не пытается. При этом после выхода .net это отсутствие попыток объявлено "фичей"... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 1 Всего: 16 |
подразумевалось, что общедоступные библиотеки будут регистрироваться в системе и для всех программ будет использоваться один экземпляр кода в памяти. И подразумевалось, что новые версии не будут противоречить предыдущим. В общем, хотелось как лучше а вышло как всегда насколько я знаю, с появлением .NET появился GAC и проблема была решена - в системе могут быть зарегистрированы несколько версий сборки |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Почитай Рихтера "CLR via C#", там это всё подробно расписано(глава 2 (закрытое развёртывание), глава 3 (совместно используемые сборки)), лень пересказывать...
Да, проблема dll-hell`a полностью решена, но как видно многие не удосужились узнать про это... у меня даже есть подозрение, что некоторые до сих пор не в курсе, что такое "политика издателя" применительно к совместно используемым библиотекам... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]()
|
| Правила раздела "Философия программирования": | |
|
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Философия программирования | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |