Re[15]: Формат конфигов
От: WolfHound  
Дата: 25.06.05 10:33
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>http://validator.w3.org/check?uri=http%3A%2F%2Fgzip.rsdn.ru%2Ftoc%2F%3Furl%3DFrame%2FMain.aspx

WF>http://validator.w3.org/check?uri=http%3A%2F%2Fgzip.rsdn.ru
http://validator.w3.org/check?uri=http%3A%2F%2Fgoogle.com%2F&charset=%28detect+automatically%29&doctype=%28detect+automatically%29
http://validator.w3.org/check?uri=http%3A%2F%2Ftinyurl.com%2F4ru9q&charset=%28detect+automatically%29&doctype=%28detect+automatically%29
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: Формат конфигов
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 25.06.05 13:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Andrei N.Sobchuck, Вы писали:


ANS>>С графами в xml намного лучше чем в .ini?


AVK>http://www.w3.org/TR/xlink/


Ты ЭТО называеш "лучше" и предлагаеш использовать в конфигах?
http://www.smalltalk.ru | RSDN@Home 1.1.4 beta 7 rev. 447
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[20]: Формат конфигов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.06.05 13:48
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Я понимаю Мне интересно, что у тебя разного в офисе и дома? Может и я захочу.


Прокси, размеры колонок, положение докинга, режим автосинхронизации.

ANS>ЗЫ. А список отправленных постов в Янусе как посмотреть?


Никак. А зачем?
... << RSDN@Home 1.2.0 alpha rev. 500>>
AVK Blog
Re[21]: Формат конфигов
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 25.06.05 13:58
Оценка:
Здравствуйте, AndrewVK, Вы писали:
ANS>>ЗЫ. А список отправленных постов в Янусе как посмотреть?

AVK>Никак. А зачем?


Да вот, несколько раз начал отвечать на один и тот же пост, потом (через час) смотрю висит несколько окон и не помню, я таки ответил или только собирался Решил проверить, что я отправлял, и, опаньки. Пришлось аж на сайт лезть.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[28]: Формат конфигов
От: Павел Кузнецов  
Дата: 25.06.05 14:19
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

Ш>>>Правильно делает. Скачай для интереса исходники Scintill ы и погляди на них даже без микроскопа. Просто просятся на фабрику для вторсырья.

Ш>>>
Ш>>><...>
Ш>>>


ПК>>

ПК>>
WH><...>
ПК>>

WH>Итого:
WH>public/protected/private
WH>0/3/7 полей
WH>5/2/0 свойств
WH>7/4/2 методов
WH>3/0/0 константы
WH>Вобщемто не много. А теперь посчитай тоже самое для хидера из Scintill'ы

А почему такой упор на размер класса? Само по себе это мало что означает, может служить только косвенным признаком. Как уже говорилось
Автор: Павел Кузнецов
Дата: 24.06.05
, в исходнике R# совсем не это привлекло мое внимание.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[12]: Формат конфигов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.06.05 14:42
Оценка: 1 (1) +3
Здравствуйте, VladD2, Вы писали:

E>>Кстати, я не изобретал синтаксис -- он уже был изобретен, причем даже не авторами Курла. Я просто сделал парсер этого формата (уже четыре года тому) и использую его для работы с конфигами и подобными вещами. Более того, когда в 2001 году я узнал про Курл, я написал одному из разработчиков Курла о том, что для конфигов Курл удобнее XML (на примере конфига для Java Web Application). И со мной согласились.


VD>Ну, вот теперь попробуй обдуать (я уж и не говорю сделать) что нужно добавить к твоему велосипеду, чтобы сделать универсальный ГУИ для его редактирования. Потом откой Янус...


О! Началось. "Открой Янус, да посмотри!" (c) мой. И где там выражения (ну, хотя бы условные секции) в настройках? И как ты себе представляешь "универсальный ГУИ" для такого языка?

VD>откой его настройки и погляди как редактируется ХМЛ в нем. Потом открой исходники януса и погляди как этот "ХМЛ" вглядит в коде. Думаю ты будешь удивлен, что это просто объект.


sic! Семантика Янусовых настроек легко аппроксимируется статичной структурой данных. eao197 приводит пример куда как более сложной ситуации.

VD>Потом погляди на объем кода и попробуй оценить перерасход своих сил и потерю от не использования готовых решений и стандартов.


Ещё можно посмотреть на перерасход сил от использования "готовых стандартов" там, где они не уместны.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[28]: Формат конфигов
От: Шахтер Интернет  
Дата: 25.06.05 17:58
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Павел Кузнецов, Вы писали:


Ш>>>Правильно делает. Скачай для интереса исходники Scintill ы и погляди на них даже без микроскопа. Просто просятся на фабрику для вторсырья.

Ш>>>
Ш>>><...>
Ш>>>


ПК>>

ПК>>
WH><...>
ПК>>

WH>Итого:
WH>public/protected/private
WH>0/3/7 полей
WH>5/2/0 свойств
WH>7/4/2 методов
WH>3/0/0 константы
WH>Вобщемто не много. А теперь посчитай тоже самое для хидера из Scintill'ы

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


  protected static bool CheckCsFile(string filePath)
        {
            return string.Compare(Path.GetExtension(filePath), ".cs", true) == 0
                            && !filePath.EndsWith(".gen.cs");
        }

        void MakePathLoverCase(ref string[] paths)
        {
            int len = paths.Length;
            string[] newPaths = new string[len];
            for (int i = 0; i < len; i++)
            {
                string path = paths[i];
                newPaths[i] = Path.Combine(
                        Path.GetDirectoryName(path).ToLower(),
                        Path.GetFileName(path));
            }

            paths = newPaths;
        }
   public string[] GetProjectFiles(string projectPath)
        {
            // Открываем диалог выбора фйла проекта.

            string dir = Path.GetDirectoryName(projectPath);

            //if (dir.Length == 0)
            //    dir = Directory.GetCurrentDirectory();

            // Файл проекта - это XML-файл содержащий ряд списков. Их проще 
            // всего читать датасетом. По этому читаем файл в датасет и 
            // выскребаем нужную нам информацию.
                    
            DataSet ds = new DataSet();
            try
            {
                ds.ReadXml(projectPath);
            }
            catch (XmlException ex)
            {
                throw new ApplicationException(
                    string.Format("The file '{0}' not conform MS Visual Studio 2003/2005 "
                    + "or MSBuild project format.", projectPath), ex);
            }

            // Список файлов хранится в таблице "File".
            DataTable dt = ds.Tables["File"];

            if (dt == null)
                return ReadVs80Format(projectPath);
            else
                return ReadVs71Format(dt, dir);
        }
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[14]: Формат конфигов
От: IT Россия linq2db.com
Дата: 25.06.05 18:18
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>А почему этим не пользуются
Автор: Sinclair
Дата: 25.06.05
метры?


Script Engine в .NET очень фигово документирован. К тому же во 2-м фреймворке половина старых методов стали деприкейтед. Может поэтому/
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[33]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, eao197, Вы писали:


E>Ну например, вместо m_file_name удобнее бывает использовать pixmap-file-name или .pixmap.


Для этого досточно сделать примитивную операцию замены "-" на "_".

E>Кроме того бывают случаи, когда после рефакторинга структура класса с конфигурацией не совпадает со структурой тегов в конфигурационном файле.


Синклер тебе говорит об автоматической генерации С++-класса по описанию из схемы. Несовпадать структура не может. После перегенерации они будут идентичны. Метапрограммирование однако рулит.

E>Если говорить про синтаксис -- то это из области субъективных впечатлений. И добавить что-то к вот этому флейму: Чем так уж хорош XML?
Автор: alexqc
Дата: 24.03.04
я вряд ли смогу.


Это не так.

E>Кроме того, это синтаксис не CSS, а Curl.


А это не важно.

E>Если говорить про XML, то я так и не могу понять, зачем мне использовать его для ведения конфигов, особенно в системах, которые вообще в XML не нуждаются. Просто, чтоб был XML?


Просто чтобы не создавать велосипед на ровном месте. Чтобы не городить горы кода и не застовлять пользователей изучать синтаксис твоего чуда.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[35]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>В данном случае XML отдыхает по полной программе по причине громоздкости и слабой читабельности. Точно также, например, как выбор XML для скриптов NAnt является откровенно неудачной идеей: выражение императивных конструкций через декларативные представляет собой достаточно жалкое зрелище.


Жалким зрелещем является велосипидизм на ровном месте. А формат NAnt-а очень даже удобен. Императивные конструкции там применяются не часто и выглядя очень не плохо.

Вот только это очередная попытка подменить тему разговора. Мы роде о конфигах говорили (и о Шарпе если глянуть на название темы). NAnt-овские же файлы проектов — это контент, а не конфиги (в которых должны лежать настройки).


ПК>>> 2) нужно, чтоб можно было легко работать с форматом конфигурационного файла из компонент, в которых нет готовой поддержки XML, но есть, например, поддержка регулярных выражений.


VD>>И как ты это собирашся обесечить для подобного формата?


ПК>Это все было для .ini-подобных файлов. Подветка, начинающаяся с сообщения Миши Бергала к формату, описанному eao197 ранее, не относится.


Нет, Паша, про ини-файлы только ты пыташся речь завести. Если их формат устраивает, то это тоже вполне стандартное и общепринятое решение. Так что завязывать по всюду кивать на ини-файлы.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[33]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, VladD2, Вы писали:


VD>>Напомню, что в замен предлагается написать парсер собственного формата на С++. Можно привести обоснования разумности данного решения, а не пытаться заговорить зубы?


V>Тут правильно подметили, что даже при наличии готового XML-парсера, разбор конфигурационных файлов — не самая простая задача. Особенно если есть уровни вложенности. Вряд ли будет экономнее, чем то, что приведено в самописном парсере.


Будет железно значительно проще. Особенно если есть схема по которой делаются проверки. Дальше остаетя написать довольно простой код вынимающий данные.

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

Ну, и если уж делается парсер, то куда проще воспользоваться генераторами, особенно когда язык поддается LL(1)-разбору.

V>Для сравнения можно посмотреть в рефлекторе ту гору кода, которая пляшет вокруг довольно-таки строго размеченного app.config в .Net. И это при том, что формат app.config с его секциями и именами классов — далеко не user-friendly, скорее наоборот. На "человеческий" config вся эта белиберда мало похожа.


Не все умею решать задачи просто. Это тоже требует определенного таланта.

V>(Хотя я, как программист, вижу здесь весьма гибкое решение, но опять же — с т.з. программиста)


Вот и ты о том же.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[30]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Не, ну я надеюсь, что после всех слов про ускорение разработки на порядок и пр. бла-бла у Влада просто нет другого выхода, кроме как блеснуть мастерством и заткнуть за пояс Scintillу.




Ну, затыкать кого-то за пояс желания нет. Но покая я возился над этим проектом я стал значительно хуже относиться к Сентиле и начал уважать авторов писавших редактор для VS.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

AP>>?


ПК>Гм... Это пример исходников из R#. Не думаю, что исходники обсуждаемого редактора будут сильно отличаться по исполнению...


По-моему тебя попросили обяснить что тебе не нравится в приведенном коде.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Я сначала хотел выкинуть реализацию, оставив от методов и свойств только сигнатуры, но оставил ради того, чтоб более наглядно было, что именно делает та или иная функция.


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

ПК>Особенно позабавило "Открываем диалог выбора фйла проекта" в классе с названием Compiler.


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

ПК> В данном случае для меня было существенно качество проектирования на уровне классов, а не качество реализации.


>> И вообще, можно прочитать пару книжек а ля Гамма или Фаулер и писать на каждом столбе что классы обязаны быть маленькими.


ПК>Здесь "прокол" не в объеме класса, а в неоднородности его обязанностей и в нарушении множества самых базовых принципов OOP


Ну, на счет их понимания мы с тобой к общему мнению не пришли. Вкусы есть вкусы.

ПК>: класс и диалоги открывает,


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

ПК> и в "потроха" ассоциированных классов "лазит",


Это ты про что?

ПК> и знания о формате файлов Visual Studio содержит, и т.п.


Дык это его основная задача. Этот класс всего лишь грузит проекты VS и скармливает их парсеру и другим фишкам. Знания о формате конечно можно было вынести в отдельный файл но смысла в этом особого не было.

>> А можно творить и попадаться на том, что не всегда это верно.


ПК>Правильно, по коду сразу виден подход: "что тут думать, тут прыгать надо".


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

Ну, и наезжать на других намного проще чем сделать что-то самому. С моим подходом есть видимая отдача. А с твоим море теоритических рассуждений. Видимо твой несколько сложнее... настолько что ты можешь написать кучу слов на форуме, но не можешь пары строк кода для сайта или открытого проекта.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>А почему такой упор на размер класса? Само по себе это мало что означает, может служить только косвенным признаком. Как уже говорилось
Автор: Павел Кузнецов
Дата: 24.06.05
, в исходнике R# совсем не это привлекло мое внимание.


Наверно потому-что кто-то забыл объясниться.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Формат конфигов
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.06.05 18:46
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>С графами в xml намного лучше чем в .ini?


Ты давно на ini-файл в последний раз смотрел?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[36]: Формат конфигов
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 25.06.05 20:59
Оценка:
Здравствуйте, VladD2, Вы писали:

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


Под Unix-ом ini-файлы совершенно не стандартное и, исторически, не решение. И функциональность по работе с ini-файлами в Unix-ах реализуется сторонними библиотеками.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[34]: Формат конфигов
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 25.06.05 21:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, eao197, Вы писали:



E>>Ну например, вместо m_file_name удобнее бывает использовать pixmap-file-name или .pixmap.


VD>Для этого досточно сделать примитивную операцию замены "-" на "_".


В конфигах? А зачем? Если я что-то заменил внутри программы и это может не влиять на внешнее окружение, то это и не должно влиять. А так вздумается мне заменить в коде m_pixmap_file_name на m_image_file_name и что, править после этого все конфиги? Править документацию, в которой эти конфиги описаны? Переобучать администраторов, которые эти конфиги правят? Не забывать исправлять конфиги при обновлении версий софта на серверах. И при этом помнить, какие сервера еще не подверглись обновлению?

Нет уж, увольте.

E>>Кроме того бывают случаи, когда после рефакторинга структура класса с конфигурацией не совпадает со структурой тегов в конфигурационном файле.


VD>Синклер тебе говорит об автоматической генерации С++-класса по описанию из схемы. Несовпадать структура не может. После перегенерации они будут идентичны. Метапрограммирование однако рулит.


А можно ссылки на примеры подобных генераторов С++ классов по DTD или XSD?

E>>Кроме того, это синтаксис не CSS, а Curl.


VD>А это не важно.


Это не так.

Например, XML определяет формат записи целых чисел (в десятичном формате, в шестнадцатиричном, в восмеричном, в двоичном)? А вещественных?
Или мне нужно будет обучать пользователей, что если вы хотите записать шестнадцатиричное значение в XML-конфиге, то нужно использовать 0xXXXX. А если восьмеричное, то 0OOOO. А если кому-то придет в голову записывать шестнадцатиричное представление в виде 0XXXXh?
А вот в Curl-е кроме фигурных скобочек такие нюансы так же определены.

E>>Если говорить про XML, то я так и не могу понять, зачем мне использовать его для ведения конфигов, особенно в системах, которые вообще в XML не нуждаются. Просто, чтоб был XML?


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


Конечно, лучше заставлять пользователей изучать XML. Поставлять вместе со своим продуктом продвинутый IDE, который может править XML с учетом DTD. А еще лучше писать такой продвинутый редактор для конфигов. Сопровождать его, документировать и т.д. и т.п.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: Формат конфигов
От: mbergal  
Дата: 25.06.05 22:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, mbergal, Вы писали:


AVK>>>Выглядит как отмазка ИМХО.


M>>Извините, слово "отмазка" отсутствует в лексиконе который я использую для ведения технической дискуссии (да и любой другой). Так что это Ваше утверждение я просто не понял.


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


IMHO, для дискуссии было-бы полезно если-бы Вы так в дальнейшем и писали.


AVK>>>Ерунда это все — удобно, неудобно.


M>>В моем случае "неудобство" — это потеря времени и денег. Не XML-ные config файлы позволяют мне в некоторых моих случаях maximize value/cost ratio.


AVK>Остается только верить тебе на слово, бо доказательств и аргументов никаких.


Так чтобы написать чтобы Вы поняли — надо достаточно много времени приложить и много чего написать. С пол-оборота
Вам непонятно — (use cases подобные моим Вы наверное не встречали) — поработать надо и изложить все в какой-то более проясняющей форме.

AVK>>> Самое главное — не выдавать свою привычку за технический аргумент.


[...]
А, мысль такая — "если кто-то привык в Фаре редактировать ХМЛ файлы — то это не значит что его пользователям это тоже это удобно". Хорошая мысль.

[...]

M>>Как насчет редактирования ASP.NET web.config? Поможет проиллюстрировать Вашу мысль? Или лучше что-то другое?


AVK>web.config не очень хороший пример, там динамически подключаются потребители, поэтому описать это схемой сложно.


OK. Так и запишем — современные IDE "не очень хорошо" помогают редактировать некоторые часто встречаюшиеся XML config files. Или это не то что Вы хотели сказать. Так что они помогают редактировать то? (хочется просто конкретный всеми понимаемый use case для обзора, я не говорю что нет такого в природе — просто я не встречал — следовательно вопрос к знатокам).

А то придется для примера взять NHibernate mapping file (хотя в общем то это не config file), потому как ничего лучше не знаю.
Re[11]: Формат конфигов
От: mbergal  
Дата: 25.06.05 22:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, VladD2, Вы писали:

VD>>Убедил. Окончательно... Для конфигов нужно изобредать собственные языки на базе синтаксиса разных Кюрлов и т.п.
S>Не, ну смотря как и что. Кстати, один из самых экзотических (для меня) способов описания конфига — в использовании скриптового языка и инклуда.
S>Т.е. у нас есть ASP приложение. Все заинтересованные в конфигурации странички включают config.asp с примерно следующим содержанием:
S>
S><% 
S>dim ConnectionDtring, FileOutputPath, AdminEmail, OutgoingSmtpAddress, OutgoingSmtpPort
S>ConnectionDtring="DRIVER=..."
S>FileOutputPath=".."
S>AdminEmail="admin@site.com"
S>OutgoingSmtpAddress="192.168.2.24"
S>OutgoingSmtpPort="25"
S>%>
S>

S>Здорово, правда? Кстати, тут есть еще и такое преимущество, что в качестве значений настроек могут выступать не только константы, но и выражения. Что и не снилось ни ини файлам, ни XML .

Точно. BTW, такое же используется в Mozilla/Firefox (из всем известных програм).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.