[image]

поганый реестр

 
1 2 3 4 5 6 7 8
+
-
edit
 

avmich

координатор

Так что параметров конфигурации - много, и свою проблему это, конечно, составляет. Не решаемую одними только copy и del.

>Да, программу интерисует всего один конфиг файл. Вот найти его среди сотни других проблема.

>Я фигею дорогая редакция. Найти файл в своем каталоге с извесным именем - проблема. Функция OpenFile есть - слышали наверное?

Да файл-то нужно найти не программе, а администратору! Программа-то, конечно, знает, где она сидит - по крайней мере, эта задача попроще. А вот что делать администратору, которому нужно поменять какой-то параметр, но для всех программ сразу?

Это объясняет и твоё следующее утверждение :)

>А как быть с версиями программ? Искать по всему диску? Уважаемый пользователь, подождите в момент инсталяции пару часов, я просканирую все диски и может быть найду, а, если не найду, то сами виноваты.

>О Аллах! Что вам до версий! зачем их искать? Исть прога, копируем ее каталог на хард, запускаем exe - ВСЕ!

Ну вот смотри, у меня Ворд-97. Хочу поставить Ворд-2000. Этот новый Ворд должен, конечно, тщательно сохранить все те настройки, что я сделал в проедыдущем Ворде. А он даже не знает, куда я прошлый Ворд поставил! Вот и будет шуршать диском.

Только не говори, что это несложно - подумаешь, найти одну директорию. С учётом общих библиотек, распределённых настроек и настроения программистов в Редмонде в день падения рынка окажется, что надо проверить кучу разных вещей - файлов, лежащих в разных местах.

>Так настройки кнопочек-то зачастую многоюзеровские И хранятся, соответсвенно, в HKEY_LOCAL_USER

>А прога может хранить их у себя. Не надорвется.

И что, мне после установки новой программы опять ей, программе, говорить, что я люблю кнопки не светло-серые, а зелёный-градиент-в-синий? Да ты что? %-/

>Изолирование прог и виндов повысит надежность работы того и другого в разы. Поставил и забыл. Если глючная прога - стер и все.

Во, вот с этим согласен :) только с учётом вышеописанных нужд, этот вариант не подходит. Нужно искать другой...
   
+
-
edit
 

Mishka

модератор
★★★
>>Да, программу интерисует всего один конфиг файл. Вот найти его среди сотни других проблема.

>>Я фигею дорогая редакция. Найти файл в своем каталоге с извесным именем - проблема. Функция OpenFile есть - слышали наверное?

На самом деле Женя не понял и другого. Женя, Вы представляете, сколько работы стоит за OpenFile? И не знаете почему систему новостей на Юнихе начали переводить на DBMS? У вас есть файл с именем /1/2/3/4/5/6/7/config.ini - система открывает гланый католог и ищет в нем линейно файл с именем 1, проверяет, что это специальный файл - поддиректория, открывает его и ищет в нем файл с именем 2 .... Если система посложнее, то каждый раз еще проверяются права доступа (в NT access lists) Это немного упрощенно. Так вот, попробуйте провести эксперимент создайте несколько уровней поддиректорий, в каждой внесите по 100 файлов (директории тоже считайте за фалы). А потом сравните, сколько времени будет открываться файл в корневой и в самой нижней. Особенно показательно в ДОСе, где нет файлового кэша(не запускайте программку соответствующую). А в каких-нибудь Виндах или Линухе запустите задачки, которые съедят память, чтоб кэширование уменьшить. А результаты сообщите здесь, на форуме.
А, если учесть еще и фрагментацию, то дело вообще труба.

NTFS, конечно, сделана как база данных, но насколько я читал книги создателей NTFS 4.0, там не было вроде никакой приличной индексации. Но я посмотрю в книгу еще раз.
   

TEvg

аксакал

админ. бан
]Вот я, скажем, написал программу со встроенной системой помощи. Нажимаешь кнопку F1, она запускает браузер и открывает файл с подсказками. Какой браузер запускать, если на компьютере их несколько установлено (у меня сейчас их три)?
]Тот, который по умолчанию, конечно. А как узнать, какой по умолчанию?

Вы вызываете функцию ShellExecute задаете файл. Все! Винда сама смотрит ассоциации, смотрит что там по умолчанию и вызывает нужную прогу.

]Во, ты сам и ответил, зачем нужер реестр. Это и есть БД ОС.

Дык! Только зачем его все грязными руками трогают? Винда была в 5 раз безглючнее если бы туда никого не пускала.

]Хм... мне скорее сном разума кажется, когда компьютер с 512 мегабайтами памяти свопится при работе трёх простых программ

Задумка длюлюков - хорошая, реализация - косячная. Лучше бы ее и не было.

]В принципе, конечно, хорошо бы жить в таком простом мире . К сожалению, программы усложняются с каждым годом, и конфигурирование их - дело всё более тонкое.

Фотошоп и Опера прекрасно обходятся без настроек в реестре. Это не самые простые программы. А когда косячная прога Васи Пупкина написаная на VB пихает в реестр всякий мусор - наверное его родители переворачиваются в гробу. Из-за их поминания юзерами.

]Да файл-то нужно найти не программе, а администратору!

И админу проще. Залез в каталог вот вам и ini или там подкаталог config имеется. А реестр - мусорка. Попробуй там руками ключ найти. Если прога неправильно написаная - фиг найдешь.

]А вот что делать администратору, которому нужно поменять какой-то параметр, но для всех программ сразу?

Это как? src=/forum/smilies/eek.gif [image link error]
Что за такой волшебный параметр, что он для всех прог сразу?

]Ну вот смотри, у меня Ворд-97. Хочу поставить Ворд-2000. Этот новый Ворд должен, конечно, тщательно сохранить все те настройки, что я сделал в проедыдущем Ворде. А он даже не знает, куда я прошлый Ворд поставил! Вот и будет шуршать диском.

А теперь смотри. Комп с вордом-97. Я ставлю 2000. Он ищет старые версии и говорит - поставится не могу, удали сперва старый. Ладно деинсталим старый. Деинсталятор говорит - тут какой-то косяк - я деинсталить не могу. Все приехали. Запускаем regedit смотрим реестр - оказывается ворд запихал тыщи ключей и все по разным местам - фиг найдешь. Это не фантастика - попробуй грубо сотри каталог офиса. А потом попробуй чего-нить поставить. Хоть тот же хоть новую версию. Еще один возможный косяк - я настраивал ворд и так настроил что обратно переделать не могу. Ладно. Деинсталим. Ставим новый. А он гад те же кривые настройки хватает. Кривые руки? Да! Знаешь сколько таких юзеров с кривыми руками. А потом сидит админ и парится. А ведь перенос старых натроек можно сделать простым копированием ini файла.

]С учётом общих библиотек, распределённых настроек и настроения программистов в Редмонде

А если все настройки вместе, библиотеки вместе - как я и предлагаю - шариться по диску не надо.

]И что, мне после установки новой программы опять ей, программе, говорить, что я люблю кнопки не светло-серые, а зелёный-градиент-в-синий? Да ты что? %-/

У меня настройки монитора хранятся в mga.mon (карта Matrox Millenium). Когда ставлю дрова, инсталяшка меня спрашивает - перезапишем файл? Я говорю no! И она ставится дальше, хватает старые настройки. И усе! Сильно сложно? Тяжело для юзера?
Теперь представим что нету файла - все в реестре. Винда померла, ставим сначала, а старую грохаем. И все! Извольте каждый раз настраивать руками. Или делать экспорт/импорт реестра. Неужто проще?
   
+
-
edit
 

Mishka

модератор
★★★
>Вот я, скажем, написал программу со встроенной системой помощи. Нажимаешь кнопку F1, она запускает браузер и открывает файл с подсказками. Какой браузер запускать, если на компьютере их несколько установлено (у меня сейчас их три)?
>Тот, который по умолчанию, конечно. А как узнать, какой по умолчанию?

Вы вызываете функцию ShellExecute задаете файл. Все! Винда сама смотрит ассоциации, смотрит что там по умолчанию и вызывает нужную прогу.

>Во, ты сам и ответил, зачем нужер реестр. Это и есть БД ОС.

Дык! Только зачем его все грязными руками трогают? Винда была в 5 раз безглючнее если бы туда никого не пускала.

>Хм... мне скорее сном разума кажется, когда компьютер с 512 мегабайтами памяти свопится при работе трёх простых программ

Задумка длюлюков - хорошая, реализация - косячная. Лучше бы ее и не было.

>В принципе, конечно, хорошо бы жить в таком простом мире . К сожалению, программы усложняются с каждым годом, и конфигурирование их - дело всё более тонкое.

Фотошоп и Опера прекрасно обходятся без настроек в реестре. Это не самые простые программы. А когда косячная прога Васи Пупкина написаная на VB пихает в реестр всякий мусор - наверное его родители переворачиваются в гробу. Из-за их поминания юзерами.

>Да файл-то нужно найти не программе, а администратору!

И админу проще. Залез в каталог вот вам и ini или там подкаталог config имеется. А реестр - мусорка. Попробуй там руками ключ найти. Если прога неправильно написаная - фиг найдешь.

>А вот что делать администратору, которому нужно поменять какой-то параметр, но для всех программ сразу?

Это как? :eek:
Что за такой волшебный параметр, что он для всех прог сразу?

>Ну вот смотри, у меня Ворд-97. Хочу поставить Ворд-2000. Этот новый Ворд должен, конечно, тщательно сохранить все те настройки, что я сделал в проедыдущем Ворде. А он даже не знает, куда я прошлый Ворд поставил! Вот и будет шуршать диском.

А теперь смотри. Комп с вордом-97. Я ставлю 2000. Он ищет старые версии и говорит - поставится не могу, удали сперва старый. Ладно деинсталим старый. Деинсталятор говорит - тут какой-то косяк - я деинсталить не могу. Все приехали. Запускаем regedit смотрим реестр - оказывается ворд запихал тыщи ключей и все по разным местам - фиг найдешь. Это не фантастика - попробуй грубо сотри каталог офиса. А потом попробуй чего-нить поставить. Хоть тот же хоть новую версию. Еще один возможный косяк - я настраивал ворд и так настроил что обратно переделать не могу. Ладно. Деинсталим. Ставим новый. А он гад те же кривые настройки хватает. Кривые руки? Да! Знаешь сколько таких юзеров с кривыми руками. А потом сидит админ и парится. А ведь перенос старых натроек можно сделать простым копированием ini файла.

>С учётом общих библиотек, распределённых настроек и настроения программистов в Редмонде

А если все настройки вместе, библиотеки вместе - как я и предлагаю - шариться по диску не надо.

>И что, мне после установки новой программы опять ей, программе, говорить, что я люблю кнопки не светло-серые, а зелёный-градиент-в-синий? Да ты что? %-/

У меня настройки монитора хранятся в mga.mon (карта Matrox Millenium). Когда ставлю дрова, инсталяшка меня спрашивает - перезапишем файл? Я говорю no! И она ставится дальше, хватает старые настройки. И усе! Сильно сложно? Тяжело для юзера?
Теперь представим что нету файла - все в реестре. Винда померла, ставим сначала, а старую грохаем. И все! Извольте каждый раз настраивать руками. Или делать экспорт/импорт реестра. Неужто проще?
   

TEvg

аксакал

админ. бан
TEvg>Сразу - я не за тотальное использование текстовых конфигурациоников - в одних случаях лучше текст, в других - БД.
TEvg>Я за раздельное хранение - тараканы отдельно, котлеты отдельно!

Правильно, надо. Тогда вопрос, почему все храним у себя? Или же конфиги отдельно, код отдельно, данные отдельно?

TEvg>Какие проблемы дарагой? Всегда настраиваешь проги в реестре? А нафига? Обычно в самой проге есть соответствующие менюшки, кнопочки.

А какая тогда разница, где конфа храниться?


TEvg>Зачем? ОС открывает файлик где все описано или лезет в БД (свою БД, системную).

А файлик как найти? Скорее наоборот, открываем системную БД, ищем в ней про программу и переходим в локальную БД.


TEvg>Общие DLL - сон разума. Идея конечно хорошая была, но.. Но реализация косячная. Во-1 каждая прога тащит с собой DLL и

Так все же сон разума или хорошая? Я скажу, что shared object появилось в Юнихе ранее. Идея таже. Или просто библиотеки возьмите - DLL просто обобщение этой идеи.

TEvg>норовит ее куда-нить в WINDOWS/SYSTEM кинуть. Во-2 имеем

Системные - в системный каталог, а общие для продукта - в общий для продукта каталог.

TEvg>геморрой с версиями, совместимостью и пр. В-3 При

А думать надо когда пишите программы - лично Вы часто доступаетесь к DLL с целью проверки ее версии? А сами эту информацию поставляете?

TEvg>деинсталяции DLL частенько не стирают, происходит засирание виндов. В-4 нормальной документации на системные DLL

А вот тут как раз, если реестр правильно с инсталятором использованы, то DLL должна быть уничтожена, когда счетчик ссылок на нее равен 0. Что, никогда не получали сообщений о том, что надо ли стирать библиотеки которые в общем пользовании, но вроде их никто не использует?

TEvg>доступной всем нет (знакомо, не правда ли?), в результате программеры делают свои реализации, изобретают велосипеды.

Это уже совсем не в тему.

TEvg>Когда прога - вещь в себе - шо я и предлагаю - такого не происходит.

Правильно, все изобретаем велосипеды. Все свое ношу с собой и места на диске хранически не хватает.

>>Идея, облегчающая создание единого и универсального инсталятора/деинсталятора.

TEvg>Контрольный вопрос - зачем в 90% случаев вообще нужен инсталятор/деинсталятор? Для настроек достаточно иметь маленькую утилитку config.exe и/или менюшки, кнопочки настроек. Для инсталяции достаточно copy, для деинсталяции del.

То есть про интеграцию мы не слышали, про то, что не надо изобретать велосипедов там, где система или другие программы что-то делают - тоже не знаем. Как с системой работать, как под пользователя подстраиваться, как умно обновлять, чтобы система знала - не думаем.


>>Да, программу интерисует всего один конфиг файл. Вот найти его среди сотни других проблема.

TEvg>Я фигею дорогая редакция. Найти файл в своем каталоге с извесным именем - проблема. Функция OpenFile есть - слышали наверное?

смотри предыдущий пост.

>>Каждая поддиректория файл, каждый файл ищется последовательным перебором.

TEvg>Зачем??? Что за бред?? Зачем проге свой конфиг искать, когда он находится в определенном программером месте??


Операционнкой, а так смотри там же.

TEvg>О Аллах! Что вам до версий! зачем их искать? Исть прога, копируем ее каталог на хард, запускаем exe - ВСЕ!

А вы не делаете бета тестов? И не пробуете до того как окончательно перейти на новую версию? И все новые версии делают абсолютно то что надо?

TEvg>А прога может хранить их у себя. Не надорвется.

А как насчет разделения?

TEvg>Изолирование прог и виндов повысит надежность работы того и другого в разы. Поставил и забыл. Если глючная прога - стер и все.

Если она не взаимодействует с другими программами и не использует системных ресурсов. А как вы себе представляете разделение виндов и программ? Файлами небось пользуетесь? И системными директориями иногда? Попробуйте посмотреть на реестр как на специальный файл(ы)в системе там и папочки есть, и аналоги файлов.
   
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
>Правильно, надо. Тогда вопрос, почему все храним у себя? Или же конфиги отдельно, код отдельно, данные отдельно?

Угу отдельно. Код в exe, конф в ini, данные еще в каком-нить файле. И все это в каталоге проги.

А вы бы хотели хранить все в реестре? Код - в реестре, ресурсы - в реестре, настройки в реестре.. Где-то попадалась такая идея..

>А какая тогда разница, где конфа храниться?

Пока все работает - никакой. В случае глюков - разница имеется - либо прога с глюками локализована, либо размазана.

>Так все же сон разума или хорошая?

Все же сон разума.

>Системные - в системный каталог

Интересно зачем тектовому редактору системные Dлюлюки?

>А думать надо когда пишите программы - лично Вы часто доступаетесь к DLL с целью проверки ее версии? А сами эту информацию поставляете?

Я из чужих библиотек как правило только kernel32.dll и юзаю. Иногда opengl32.dll. Чем меньше чужих глюков - тем спокойнее и мне и клиенту. Клиент получает прогу которую можно поставить и не трогать месяцами, не беспокоиться о IE, Office, ADO и проч. Переставил винду - но проблем.

>А вот тут как раз, если реестр правильно с инсталятором использованы, то DLL должна быть уничтожена, когда счетчик ссылок на нее равен 0. Что, никогда не получали сообщений о том, что надо ли стирать библиотеки которые в общем пользовании, но вроде их никто не использует?

Хороший источник глюков.

>Это уже совсем не в тему.

Еще как в тему!
Вроде DLL - экономия ресурсов. А на деле что получается?

>Правильно, все изобретаем велосипеды. Все свое ношу с собой и места на диске хранически не хватает.

Неверно. Сравните IE и Opera. Кто больше? А кто библиотеки пихает?

>То есть про интеграцию мы не слышали

Интеграция глюков уже в печенках сидит.

>про то, что не надо изобретать велосипедов там, где система или другие программы что-то делают - тоже не знаем.

Конечно не знаем. Что винда делает - загадка природы.

>как умно обновлять, чтобы система знала - не думаем.

Умно обновлять - это когда система не знает. И ей и нам спокойнее.

>смотри предыдущий пост.

Ай ай.. Значит найти тыщу-другую екзешников, длюлюков и проч - раз плюнуть. А один ini в текущем каталоге - ужасно сложно?

>А вы не делаете бета тестов? И не пробуете до того как окончательно перейти на новую версию? И все новые версии делают абсолютно то что надо?

Объясните по-русски - ЗАЧЕМ ОДНОЙ ВЕРСИИ ЗНАТЬ ПРО ДРУГУЮ? Зачем релизу знать про глючную бету? ЧТО ОН С НЕЙ ДЕЛАТЬ БУДЕТ? А если очень надо - может и найти (офис и винда любят чего-то искать) или можно ручками показать.

>А как насчет разделения?

Прога должна быть МАКСИМАЛЬНО отделена от других прог и от ОС. Только так достижима надежность.

>А как вы себе представляете разделение виндов и программ?

Хотя бы так - каждая прога - в своем каталоге со всем барахлом.

>Файлами небось пользуетесь?

Чужими? Стараюсь не пользоваться. В 99% случаев это возможно.

>И системными директориями иногда?

Опять же в 99% случаев такой надобности нет. Если я пишу прикладную прогу, а не системную.

>Попробуйте посмотреть на реестр как на специальный файл(ы)в системе там и папочки есть, и аналоги файлов.

Для проги он ЧУЖОЙ. Он системный. В этом все дело. Чем меньше ненужных связей тем надежнее система.
   
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
TEvg>Общие DLL - сон разума. Идея конечно хорошая была, но.. Но реализация косячная.

Господи, а ещё, говорит, программер! :D Ты ж, вроде, по винды пишешь? Погляди сам на досуге, сколько DLL-ек использует простейший "Hello world" :D В то же Linux тоже давно уже используются динамические библиотеки...

А на счёт конфликта версий DLL - я уже лет пять с таким не сталкивался :)

TEvg>Контрольный вопрос - зачем в 90% случаев вообще нужен инсталятор/деинсталятор?

Ну, ладно, я понимаю, Билл Гейтс, Микрософт и всё MSDN-сообщество - идиоты. Но не понимаю, почему вдруг в том же Linux'е практически любая программа требует инсталлятора ещё покруче виндового :D

TEvg>Я фигею дорогая редакция. Найти файл в своем каталоге с извесным именем - проблема. Функция OpenFile есть - слышали наверное?

Жень, ты представляешь как работает файловая система? Если в каталоге у тебя 10000 файлов, то в FAT/FAT32 тебе потребуется в среднем 5000 сравнений, чтобы только найти нужную запись! И 5000 чтений с диска. В NTFS дело получше - там файловая система уже в некотрой степени база данынх. Там в среднем тебе хватит 100 сравнений. В *nix обычно как и в FAT. Мне, вон, уже в форумах (всего-то по 2-3 тыс файлов!) раскидывать данные по подкаталогам (по 100 файлов в подкаталоге) - там тоже, знаешь ли, только open FILE используются :)

TEvg>Зачем??? Что за бред?? Зачем проге свой конфиг искать, когда он находится в определенном программером месте??

А как программа узнает, где этот файл физически на диске лежит? Телепатически? То, что программа не занимается его поиском, ещё не значит, что этим никто не занимается. Спросите операционную систему, она вам много хорошего расскажет :)

>>в HKEY_LOCAL_USER
TEvg>А прога может хранить их у себя. Не надорвется.

Тоже метод. Но редко реализуемый и всегда неудобный. Я уже молу про секьюрность такого метода.

=KRoN=>>А ты в курсе из-за чего Авиабаза переезжает сейчас на новый сервер? В первую очередь - из-за plain/text.
TEvg>А кто мешает использовать бинарные файлы настроек? Прямо уж индексированную базу мало какой отдельной проге надо. А вот в 10-20 КБ бинарного настроечного файла СТОЛЬКО можно записать!

А чем неиндексированный бинарник лучше текста? Ничем. Так же тупо перебирать придётся записи в поисках нужной. Кроме того, придётся ещё отдельную программу конфигурации писать, что зачастую по сложности сопоставимо с самой программой. Ну и, наконец, большинство настроек всё равно текстовые.

TEvg>А система пусть свой реестр использует, кто же против. Ей да, нужно что-то посерьезнее ini-файлов, ибо настроек много.

Ну, слава Богу, хоть тут разум возобладал! :D

=KRoN=>>Между прочим, механизм работы с простыми INI-шниками никто не отменял. А многие программы, в т.ч. и популярные хранят свои настройки у себя. Реестр же сделан в первую очередь для самой операционки.
TEvg>Тогда появляется вопрс, зачем же Майкрософт так настойчиво рекомендует ВСЕМ хранить все свои насторйки у себя в реестре?

[ слишком длинный топик - автонарезка ]
   
RU Сын советского программиста #15.10.2002 09:23
+
-
edit
 
=KRoN=>Так настройки кнопочек-то зачастую многоюзеровские :) И хранятся, соответсвенно, в HKEY_LOCAL_USER :)

А что глобального в настройках кнопочек? :D
   
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
Не глобального, а юзеровского. Каждому юзеру данного ПК обычно хочется своих кнопочек.
   
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
>У меня настройки монитора хранятся в mga.mon (карта Matrox Millenium). Когда ставлю дрова, инсталяшка меня спрашивает - перезапишем файл? Я говорю no! И она ставится дальше, хватает старые настройки. И усе! Сильно сложно? Тяжело для юзера?

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

Кстати, ведь Микрософт, когда вводила реестр, программистов просто обязывала пользоваться именно им. Типа, пишите в реестр, а не будете, так в будущих версиях Windows всё равно мы сами будем транслировать GetPivateProfileString в обращение к реестру...

Интересно, в XP они это сделали?
   
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
TEvg>2 штуки. user32.dll и kernel32.dll

Ага. "Вассал моего вассала - не мой вассал." Ты хоть раз заглядывал в kernel32.dll? Вот список DLL, которые он вызывает:

apphelp.dll
gdiplus.dll
setupapi.dll
rasdlg.dll
cscdll.dll
netshell.dll
printui.dll
keymgr.dll
mobsync.dll
mssign32.dll
pidgen.dll
msrating.dll
syssetup.dll
powrprof.dll
cabinet.dll
shdocvw.dll
sfc.dll
shell32.dll
crypt32.dll
wtwain_32.dll
KERNEL32.dll
wmi.dll
msacm32.dll
ntdsapi.dll
rpcrt4.dll
activeds.dll
wintrust.dll
ntdll.dll
wldap32.dll
shlwapi.dll
ws2_32.dll
version.dll
cdfview.dll
kdcsvc.dll
linkinfo.dll
mshtml.dll
samlib.dll
wwzcsapi.dll
utildll.dll
wininet.dll
wtsapi32.dll
efsadu.dll
mscat32.dll
mswsock.dll
scecli.dll
mpr.dll
userenv.dll
netrap.dll
ole32.dll
wmvcore.dll
wzcdlg.dll
secur32.dll
cryptui.dll
rtutils.dll
rasapi32.dll
imm32.dll
uxtheme.dll
twain_32.dll
sti.dll
pautoenr.dll
certcli.dll
imagehlp.dll
gdi32.dll
msimg32.dll
devmgr.dll
winmm.dll
comctl32.dll
pstorec.dll
winsta.dll
shsvcs.dll
query.dll
authz.dll
user32.dll
comdlg32.dll
credui.dll
mlang.dll
browseui.dll
urlmon.dll
oleacc.dll
dnsapi.dll
iphlpapi.dll
winscard.dll
mprapi.dll
netplwiz.dll
mprui.dll
rasman.dll
esent.dll
msgina.dll
ntmarta.dll
ntlsapi.dll
netapi32.dll
ocmanage.dll
inetcomm.dll
ntlanman.dll
mem16.dll
duser.dll
odbc32.dll
netcfgx.dll
advapi32.dll
advpack.dll
dhcpcsvc.dll
regapi.dll
serialui.dll
imgutil.dll
ntdsa.dll
msi.dll
oleaut32.dll
ddraw.dll
lz32.dll

Итого - 109 штук.

TEvg>У меня в каталоге офиса (только ворд и ексел и все) 101 файл, 12 подкаталогов. Если добавить 1-2 файла ini (вместо реестра) - то я полагаю что система не облезет?

143 ключа вида "поле=значение" только для специфических для Office 10.0 файлов. 200кБ текста. Плюс ещё больше (лениво считать) общей "офисной" информации. Ты хочешь, чтобы оно всё это лопатило при проверке, например, на орфографию каждого слова?

TEvg>Операционка посмотрит в ФАТ. И не надо делать из этого трагедию. Откуда операционка знает где лежит запускаемый екзешник? В ФАТе, где же еще!

Жень, ты что, вправду не знаешь, как файловые системы устроены? FAT - это только последовательность цепочек кластеров. Когда ты открываешь файл, операционка:
- Читает FAT
- Ищет корневой каталог (root) указанного диска
- Читает его.
- Ищет (простым текстовым перебором/сравнениями!) в нём запись об имени первого каталога в пути (если файл лежит не в корне).
- Если не находит - читает следующий кластер с root-записью (который может лежать где угодно) и повторяет цикл поиска.
- Когда находит, считывает каталог для найденной директории.
- Ищет аналогично тому, как искала в root'е запись о нужном файле или о подкаталоге нижнего уровня дальше.
- Наконец находит нужную запись файла.
- Только после этой (очень и очень объёмистой!) работе, наконец, будет решать что там делать ещё с этим файлом.

TEvg>А офису винда не даст химичить? А если не даст будет ли он работать?

Офис стаит администратор. В дальнейшем с ним должны работать с обыными юзеровскими привелегиями. Кстати, неадминистратору офис и не поставить - именно потому что винда не даёт писать в реестр.

[ слишком длинный топик - автонарезка ]
   

TEvg

аксакал

админ. бан
>>Например, настройки локали?
TEvg>Это настройка винды. Одна штука. Каждой проге она не нужна. Прога спросит винду - винда ответит.

Жень, это ты спросил - "Что за такой волшебный параметр, что он для всех прог сразу?". И таких параметров - множество. Вплоть до цвета кнопочек по умолчанию.

TEvg>Поставь ворд. Грубо сотри каталог офиса. Попробуй восстановить ворд.

Ну, здрасьте! И нафига я его, спрашивается, буду стирать? Ну а уж если и стору, то не поленюсь стереть и HKEY_LOCAL_MACHINE|HKEY_CURRENT_USERSoftwareMicrosoftOffice

Какя мне разница, тереть настройки на диске или в реестре? :)

TEvg>Теперь представь что глупый юзер поломал ворд, а мне принесли этот комп для устранения глюков.

Гм. У глупого юзера не должно быть привелегий на поломку ворда. А если есть привелегии - он тебе что угодно снесёт. Под тем же Linux'ом с RPM ещё больше геморроя будешь иметь.

TEvg>Блин! Для тех кто в танке. ЗАЧЕМ ТЕКСТОВОМУ РЕДАКТОРУ ПИХАТЬ В WINDOWS/SYSTEM СИСТЕМНЫЕ ДЛЮЛЮКИ??

Если это Notepad - то не зачем. Хватит и системных. А если он, скажем, с XML4 работает, а в Win98 в системе гарантированно только XML3 стоит, да и то, если IE5 ставился. Что, просить юзверя отдельно ещё XML качать? Многие так и делают. Но многие предпочитают избавить юзверя от такой головной боли и включают соответствующие DLL в систему.

TEvg>Ню ню. Програмеров которые такие вещи говорят и такие проги пишут я прошу продемонстрировать работоспособность проги в Windows 95. И все сразу встает на свои места :)

Win95 на сегодня уже не поддерживаемая OS. Или ты попросишь продемонстрировать поддержку этой же программы под Win 3.1? Под DOS? Под CP/M? Твоя программа, которая "никакими DLL не пользуется" под CP/M заработает? :D

TEvg>Что и требовалось доказать. ;) Бедная винда ведь не дохнет шкрябая по ФАТам в поисках ini? ;)

Если это одно чтение за несколько минут, то не сдохнет :) А если это десяток/другой за время запуска... Погляди, вон, сколько времени ресурсоёмкие программы в Linux запускаются, может, проникнешься. Они в массе своей текстовые конфиги лопатят. Да и под виндой я бы предпочёл, чтобы тот же Trillian хранил бы настройки не в текстовых инишниках, а в реестре - лопатит он их при запуске ОЧЕНЬ интенсивно и оттого тормозит. Особенно, если антивирус все файловые операции контролирует.

>>либо легко восстанавливают всё что надо в реестре при первом запуске.
TEvg>А значит держат при себе копию настроек. ;)

Да, естественно. Но ещё раз повторюсь - это мелкие приблуды, которые хранят все настройки в крошечном конфиге меньше килобайта и которые запускаются не чаще пары раз в день.

>>Ну а реестр, как ему и положено, используется тем, кому с ним надо много и быстро работать - ОС, Office и т.п.
TEvg>ОС - надо, Office - нет.

Ню-ню. Офис по ряду параметров настроек ОС мало уступает :)
   
>Ага. "Вассал моего вассала - не мой вассал." Ты хоть раз заглядывал в kernel32.dll? Вот список DLL, которые он вызывает:

Угу. Это евонное дело что он там щупает.

>143 ключа вида "поле=значение" только для специфических для Office 10.0 файлов. 200кБ текста. Плюс ещё больше (лениво считать) общей "офисной" информации. Ты хочешь, чтобы оно всё это лопатило при проверке, например, на орфографию каждого слова?

Все ключи в любой нормальной проге записываются в переменные в ОЗУ, так что лопатить надо один раз.

>- Только после этой (очень и очень объёмистой!) работе, наконец, будет решать что там делать ещё с этим файлом.

И что? Если лопачение dll и exe - нормально, то почему загрузка конфигов нет?

>Офис стаит администратор. В дальнейшем с ним должны работать с обыными юзеровскими привелегиями.

Угу. На вин-9х.

>Если это Notepad - то не зачем. Хватит и системных. А если он, скажем, с XML4 работает, а в Win98 в системе гарантированно только XML3 стоит, да и то, если IE5 ставился.

А мне и юзеру этот XML нафиг не нужен. Мне надо чтоб он *.doc понимал и не выпендривался. А если мне надо - то пусть при установке будет галочка и я ее щелкну.

>Win95 на сегодня уже не поддерживаемая OS.

Ню ню. У нас 115 компов - половина w95. А когда ты пишешь прогу - знаешь что у клиента стоит? Ты потребуешь чтоб он 98 поставил? А он спросит нафига? Клиент ведь всегда прав.

>Или ты попросишь продемонстрировать поддержку этой же программы под Win 3.1? Под DOS? Под CP/M? Твоя программа, которая "никакими DLL не пользуется" под CP/M заработает?

Прога должна работать в любой win-32 системе. Исключения специально оговариваются. При наличии уважительных причин.

>Да и под виндой я бы предпочёл, чтобы тот же Trillian хранил бы настройки не в текстовых инишниках, а в реестре

Да пожалуйста. Только в СВОЕМ реестре.

>Да, естественно. Но ещё раз повторюсь - это мелкие приблуды, которые хранят все настройки в крошечном конфиге меньше килобайта и которые запускаются не чаще пары раз в день.

Opera

>Ню-ню. Офис по ряду параметров настроек ОС мало уступает

Так вот - пусть офис себе свой реестр заведет в своем каталоге. И лазеет там хоть до посинения.
 
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
Похоже, мы близки к согласию.
Монстрам - монструозный реестр.
Средненьким - персональный реестрик.
Мелким утилиткам - мелкие конфиги.
И все счастливы! :D
   
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★★
>>Ага. "Вассал моего вассала - не мой вассал." Ты хоть раз заглядывал в kernel32.dll? Вот список DLL, которые он вызывает:
TEvg>Угу. Это евонное дело что он там щупает.

Ну так не говори тогда, что все остальные DLL тебе не нужны :)

TEvg>Все ключи в любой нормальной проге записываются в переменные в ОЗУ, так что лопатить надо один раз.

До тех пор, пока винды и железо не станут абсолютно стабильными, тех, кто такое делает - надо отстреливать в детстве! :D Представь, что б было с той же Оперой, если б она при каждом падении теряла бы свои открытые странички, потому что держала б их в памяти? Да я б её выкинул давно! Linux и то зависает нередко (а программы под ним не намного устойчивее, чем под виндой).

TEvg>И что? Если лопачение dll и exe - нормально, то почему загрузка конфигов нет?

Бр-р-р... При чём тут это? EXE-шник один раз запустился и всё. А конфиг - читать/писать/читать/писать... А держать хендлы открытыми - за это вообще надо при рождении отстреливать :p

Кроме того, мы итак утяжеляем систему открытием EXE-шника, зачем её ещё инишниками грузить?

>>Офис стаит администратор. В дальнейшем с ним должны работать с обыными юзеровскими привелегиями.
TEvg>Угу. На вин-9х.

Ну мы же про нормальные операционки говорим? :) А так - вон, в Win3.x реестра не было. Пользуйся на здоровье! :D

TEvg>А мне и юзеру этот XML нафиг не нужен. Мне надо чтоб он *.doc понимал и не выпендривался. А если мне надо - то пусть при установке будет галочка и я ее щелкну.

Я ж пример привёл. Вместо XML возьми что угодно ещё.

>>Win95 на сегодня уже не поддерживаемая OS.
TEvg>Ню ню. У нас 115 компов - половина w95. А когда ты пишешь прогу - знаешь что у клиента стоит? Ты потребуешь чтоб он 98 поставил? А он спросит нафига? Клиент ведь всегда прав.

А таких админов, что Win95 в офисе ставят - мне просто жалко :) У меня стоит пара машин с 95-й, народ там других не хочет, так я сразу сказал, что за них я не отвечаю. Ну что взять с системы, у которой максимальное время жизни TCP/IP стека около 3 суток!

TEvg>Прога должна работать в любой win-32 системе. Исключения специально оговариваются. При наличии уважительных причин.

Кому это она должна?

>>Да, естественно. Но ещё раз повторюсь - это мелкие приблуды, которые хранят все настройки в крошечном конфиге меньше килобайта и которые запускаются не чаще пары раз в день.
TEvg>Opera

Опера один раз запустилась и всё, работай весь день. Так что ей вполне дозволительно хранить всё в своём конфиге. Кстати, обращал внимание, как она ЗАДУМЫВАЕТСЯ, когда ты сохраняешь любое малейшее изменение в настройках?

>>Ню-ню. Офис по ряду параметров настроек ОС мало уступает
TEvg>Так вот - пусть офис себе свой реестр заведет в своем каталоге. И лазеет там хоть до посинения.

Ну и нахрена? Если он всё равно к ОС привязан так, что при падении её потом нифига всё равно работать не будет и потребует переустановки? Вот если б был полностью автономным!

А мелочёвка у меня почти вся, повторюсь, конфиги при себе хранит.
   

TEvg

аксакал

админ. бан
Vale>Похоже, мы близки к согласию.
Vale>Монстрам - монструозный реестр.
Vale>Утилиткам - мелкие конфиги.
Vale>И все счастливы! :D

Женя всё равно традиционно против :p
   

BrAB

аксакал
★★
>До тех пор, пока винды и железо не станут абсолютно стабильными, тех, кто такое делает - надо отстреливать в детстве!

А ты случайно каждые 10 секунд код экзешника не подгружаешь? А то ведь код из-за глюков испортится может. :p

>Бр-р-р... При чём тут это? EXE-шник один раз запустился и всё. А конфиг - читать/писать/читать/писать...

Конфиг один раз прочитался. И ВОЗМОЖНО один раз записался.

>Ну мы же про нормальные операционки говорим?

Не про нормальные, а про винду.

>А таких админов, что Win95 в офисе ставят - мне просто жалко

P-166 16-32 MB ОЗУ - что ты туда запихнешь. Да и нельзя NT - наша почтовая прога с ним не совместима (FirstClass). А юзается она по историческим причинам. А про апгрейд - расскажешь моему начальству.

>Кому это она должна?

Клиенту. WIN-32 - стандарт де факто.

>Кстати, обращал внимание, как она ЗАДУМЫВАЕТСЯ, когда ты сохраняешь любое малейшее изменение в настройках?

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

>Если он всё равно к ОС привязан так, что при падении её потом нифига всё равно работать не будет и потребует переустановки?

Я и пытаюсь втолковать - такой подход - не есть хорошо!
   
RU Сын советского программиста #15.10.2002 12:42
+
-
edit
 
TEvg>Не про нормальные, а про винду.
Хм, а чего вы на ней работаете? Linux - ваш рулевой!

>>А таких админов, что Win95 в офисе ставят - мне просто жалко

TEvg>P-166 16-32 MB ОЗУ - что ты туда запихнешь. Да и нельзя NT - наша почтовая прога с ним не совместима (FirstClass). А юзается она по историческим причинам. А про апгрейд - расскажешь моему начальству.

BeOS - она же вам нравиться? Или на ней работать нельзя?

TEvg>Я и пытаюсь втолковать - такой подход - не есть хорошо!
Ага. Кстати, в космическом минимум два человека ОЧЕНЬ ждут вашего ответа.
   
RU Сын советского программиста #15.10.2002 12:45
+
-
edit
 
А вот и я...
Подкоректирую свой список.

Хранить в реестре имеет смысл глобальные настройки.
Пример: :)
- описание типов файлови т.п. (для быстрого поиска)
- конфигурацию стандартного графического интерфейса и т.п. (общий параметр)
- запросы на использование библиотек (для избежания конфликтов)
- версия программы, лицензия и ее местоположение (для программ-установщиков)

А локальные отдельно в местных БД, ini и др. На мой взгляд ето должно облегчить поиск. Особенно если адресс местного хранилища настроек будет записан в виде физического адреса на диске (т.е. номер(а) кластеров), если кретичено время поиска.

А как вам такой вариан:
Локальные настройки хранятся прям в exe-файле программы в бинарном виде и поподают на свое место в ОЗУ прям при загрузкм программы. Правда могут возникнуть затруднения с изменением настроек...


ЗЫ
Говоря раньше о цветах кнопочек, я представлял программы с нестандартным интерфейсоим (пример: Winamp). Просто, я с роду не менял настройки интерфейса винды :)
   
RU Сын советского программиста #15.10.2002 12:46
+
-
edit
 
=KRoN=>Вот список DLL, которые он вызывает:
=KRoN=>apphelp.dll
=KRoN=>...
=KRoN=>Итого - 109 штук.

Просветите, что все сразу? :confused:
   

TEvg

аксакал

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

Mishka>NTFS, конечно, сделана как база данных, но насколько я читал книги создателей NTFS 4.0, там не было вроде никакой приличной индексации. Но я посмотрю в книгу еще раз.

Насколько я знаю, там просто поиск файла в каталоге идёт не последовательным перебором, а бинарным поиском, т.е. среднее число сравнений пропорционально не числу файлов, а log2 от него.

TEvg>Дык! Только зачем его все грязными руками трогают? Винда была в 5 раз безглючнее если бы туда никого не пускала.

Ну, знаешь, в Linux'е тоже можно rm -r /etc задать, если права root'а есть :) А простому ограниченному юзверю и Винда не даст с реестром химичить. А если кто-то всё из-под администратора делает - так в Linux'е тем, кто из под root'а работает - пальцем у виска покрутят :)

TEvg>Это как?
Что за такой волшебный параметр, что он для всех прог сразу?

Например, настройки локали?

TEvg>А теперь смотри. Комп с вордом-97. Я ставлю 2000. Он ищет старые версии и говорит - поставится не могу, удали сперва старый. Ладно деинсталим старый. Деинсталятор говорит - тут какой-то косяк - я деинсталить не могу. Все приехали.

Во-первых, именно в Word'е у меня такого ни разу (95->97->2000->XP) не было. В других программах, ИМХО, тоже. Во-вторых, это беда скорее не виндам присуща, и Linux'у :) Вон, я три дня с Gnome 2.0.3 провозился - так и не смог скомпилить. Всё на несоответствие версий библиотек ругался. А уж с их RPM - это вообще песня! :D

>>Системные - в системный каталог
TEvg>Интересно зачем тектовому редактору системные Dлюлюки?

Нет, Жень, по-моему, ты под виндами не программил. Неужто ты CreateWindow сам пишешь? Вплоть до работы с портами видеоадаптера?

TEvg>Я из чужих библиотек как правило только kernel32.dll

Ой ли? :) Проверь внимательнее. Ещё проверь кого эти dll вызывают. Какие VXD вызывают те DLL и т.д. до уровня железа :)

TEvg>Неверно. Сравните IE и Opera. Кто больше? А кто библиотеки пихает?

Opera больше. Т.к. IE уже сидит в системе :) Кстати, до DLL. Когда мне в своей программе нужно показать DLL я могу легко задействовать соответствующий модуль IE. А вот Оперой или Мозиллой я такого сделать не могу... Так что IE давно уже гораздо больше, чем просто браузер :)

На самом деле, Жень, у меня, наверное, все программы, не требующие переустановки либо хранят все настройки при себе, либо легко восстанавливают всё что надо в реестре при первом запуске. У меня под такие цельный каталог есть большущий - E:Progs :) Так что не всё так плохо, как тебе кажется. А надобности в васяпупкинских VB-программах, мусорящих в реестре как-то нет :) Ну а реестр, как ему и положено, используется тем, кому с ним надо много и быстро работать - ОС, Office и т.п. :)
   
>Господи, а ещё, говорит, программер! Ты ж, вроде, по винды пишешь? Погляди сам на досуге, сколько DLL-ек использует простейший "Hello world"

2 штуки. user32.dll и kernel32.dll

>Жень, ты представляешь как работает файловая система? Если в каталоге у тебя 10000 файлов, то в FAT/FAT32 тебе потребуется в среднем 5000 сравнений, чтобы только найти нужную запись!

У меня в каталоге офиса (только ворд и ексел и все) 101 файл, 12 подкаталогов. Если добавить 1-2 файла ini (вместо реестра) - то я полагаю что система не облезет?

>А как программа узнает, где этот файл физически на диске лежит?

Операционка посмотрит в ФАТ. И не надо делать из этого трагедию. Откуда операционка знает где лежит запускаемый екзешник? В ФАТе, где же еще!

>простому ограниченному юзверю и Винда не даст с реестром химичить.

А офису винда не даст химичить? А если не даст будет ли он работать?

>Например, настройки локали?

Это настройка винды. Одна штука. Каждой проге она не нужна. Прога спросит винду - винда ответит.

>Во-первых, именно в Word'е у меня такого ни разу (95->97->2000->XP) не было.

Поставь ворд. Грубо сотри каталог офиса. Попробуй восстановить ворд.
Теперь представь что глупый юзер поломал ворд, а мне принесли этот комп для устранения глюков.

TEvg>>Интересно зачем тектовому редактору системные Dлюлюки?
>Нет, Жень, по-моему, ты под виндами не программил. Неужто ты CreateWindow сам пишешь? Вплоть до работы с портами видеоадаптера?

Блин! Для тех кто в танке. ЗАЧЕМ ТЕКСТОВОМУ РЕДАКТОРУ ПИХАТЬ В WINDOWS/SYSTEM СИСТЕМНЫЕ ДЛЮЛЮКИ??

>Opera больше. Т.к. IE уже сидит в системе Кстати, до DLL. Когда мне в своей программе нужно показать DLL я могу легко задействовать соответствующий модуль IE. А вот Оперой или Мозиллой я такого сделать не могу... Так что IE давно уже гораздо больше, чем просто браузер

Ню ню. Програмеров которые такие вещи говорят и такие проги пишут я прошу продемонстрировать работоспособность проги в Windows 95. И все сразу встает на свои места :)

>На самом деле, Жень, у меня, наверное, все программы, не требующие переустановки либо хранят все настройки при себе

Что и требовалось доказать. ;) Бедная винда ведь не дохнет шкрябая по ФАТам в поисках ini? ;)

>либо легко восстанавливают всё что надо в реестре при первом запуске.

А значит держат при себе копию настроек. ;)

>Ну а реестр, как ему и положено, используется тем, кому с ним надо много и быстро работать - ОС, Office и т.п.

ОС - надо, Office - нет.
 

Zeus

Динамик

BrAB>Кстати, в космическом минимум два человека ОЧЕНЬ ждут вашего ответа.

Уже три ;):)
   
+
-
edit
 

Voennich

аксакал


=KRoN=>А чем неиндексированный бинарник лучше текста? Ничем. Так же тупо перебирать придётся записи в поисках нужной. Кроме того, придётся ещё отдельную программу конфигурации писать, что зачастую по сложности сопоставимо с самой программой. Ну и, наконец, большинство настроек всё равно текстовые.

Во-1, большинство настроек (по количеству) все-таки числовые и логические. Во-2, бинарный файл при прочих равных меньше. В несколько раз. В-3, парситься он будет явно быстрее - и числа уже в родном формате, и теги/идентификаторы/блоки - одинаковой длины... Насчет перебора - так большинству утилитарных прог (да, тех самых приблуд :) - ибо о программах сложности Офиса мы уже договорились) все равно надо при старте весь конфиг читать. Что касается отдельной программы конфигураций... Зачем? Только сама программа должна иметь доступ к своему конфигу. И все настройки, естественно, должны настраиваться из ее интерфейса. И нечего, повторяю, юзерам настройки руками кривить. Я даже специально конфиги шифрую и CRC-проверку ставлю :p
   
+
-
edit
 

Mishka

модератор
★★★
TEvg
>Фотошоп и Опера прекрасно обходятся без настроек в реестре. >Это не самые простые программы
А не сделать ли Вам уважаемый поиск в реестре по Photoshop ?
   
1 2 3 4 5 6 7 8

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru