Discussion Board

Results 1 to 13 of 13
  1. #1
    Regular Contributor
    Join Date
    May 2009
    Location
    Russia
    Posts
    73

    Настройки программы

    Привет всем.

    Меня интересует как лучше организовать настройки программы? То есть сделать их бинарным или нет, как удобнее распределить по категориям, использовать ассоциативние массивы или что-нибудь другое?
    Last edited by Kvet; 2009-06-28 at 11:17. Reason: подправил

  2. #2
    Nokia Developer Expert
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355

    Re: Настройки программы

    Желательно хранить их в приватной папке процесса - так они автоматически удаляются при деинсталляции, а это требуется Symbian Signed (надеюсь в вашем проекте один процесс требующий настроек). Все остальное - дело вкуса. Советую не заморачиваться с ini форматом и писать бинарником - все равно ваши настройки читать никто не будет.

  3. #3
    Nokia Developer Champion
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,348

    Re: Настройки программы

    Да, согласен, хранение настроек в приватной папке программы хороший тон, чтобы не оставлять "хвостов" при деинсталляции ПО. Но, если требуется некоторая наглядность или, скажем, имеется много параметров, состояние которых необходимо визуально отслеживать, то можно писать/читать настройки как обычный текстовый файл, доступный для модификации со стороны пользователя. Но это скорее исключение, чем правило.

  4. #4
    Regular Contributor
    Join Date
    Sep 2008
    Posts
    116

    Re: Настройки программы

    А что благородные доны скажут про xml в качестве формата хранения настроек?

  5. #5
    Nokia Developer Champion
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,348

    Re: Настройки программы

    На мой взгляд, использование xml для хранения настроек программы неоправданно - в большинстве случаев требуется хранить относительно небольшое число параметров и записать/прочитать текстовый или бинарный файл легче и быстрее, чем использовать обработчик xml, который тянет за собой целый фреймворк. И всё ради чего? Сохранить/прочитать 10-15 строк? Да и объём служебных данных в xml-файле запросто может превышать объём полезной информации, то бишь самих параметров, которые необходимо прочитать. В общем, на мой взгляд - использование xml в данном случае это неоптимальный подход к решению вопроса хранения настроек программы.

  6. #6
    Regular Contributor
    Join Date
    Jun 2008
    Posts
    51

    Re: Настройки программы

    Если не брать в расчет не только критерии Symbian Signed то:
    - в случае бинарного формата настроек, если программа что-то записала не так, или ссылается на несуществующий элемент Вы получите неработающее приложение (либо пишите проверку валидности элементов). Без возможности визуального контроля того, что же там произошло.
    - в случае бинарного формата забываете про твикинг или недокументированные настройки.
    - если файл настроек расположен в приватной папке, забываете про бэкап настроек (например копировании на ПК). Если программа использует десятки параметров это очевидно оправдано.

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

    Формат MS-ini imho оптимален (про пароли сказал уже мнение). А при удалении можно написать екзешник который будет запускаться и спрашивать, удалять ли файл настроек или нет (sis формат это позволяет). Правда не знаю как это соотноситься с signing criteria, но это удобнее для юзера.

    xml вообще самоописываемый формат, мало того зачастую избыточный, зачем он нужен в настройках непонятно. Если хранить большие объемы данных (история или еще что-то) правильнее и быстрее использовать sql.

    все imho, естественно.

  7. #7
    Registered User
    Join Date
    Nov 2007
    Posts
    84

    Re: Настройки программы

    Используй sql. Очень удобно но не рекомендую использовать sql для хранения больших обьёмов информации - база данных конкретно на симбиане начинает оочень сильно тупить. Если много информации - используй бинарный формат с offsetами. Если же просто настройки - или .ini, или же sql.
    2privatejoker: засаливать пароли в файлах тоже совершенно не обязательно. Если нужно что-то закриптить, просто криптится массив байт, конвертируется в base64 строку и кладётся в .ini файл. Эффект будет тот же.

  8. #8
    Super Contributor
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536

    Re: Настройки программы

    Quote Originally Posted by JasFas0la View Post
    Используй sql. Очень удобно но не рекомендую использовать sql для хранения больших обьёмов информации - база данных конкретно на симбиане начинает оочень сильно тупить. Если много информации - используй бинарный формат с offsetами. Если же просто настройки - или .ini, или же sql.
    2privatejoker: засаливать пароли в файлах тоже совершенно не обязательно. Если нужно что-то закриптить, просто криптится массив байт, конвертируется в base64 строку и кладётся в .ini файл. Эффект будет тот же.
    Где-то был пример, использующий SQLite на девайсах под S60 3rd FP1. Там была база википедии Symbian больше 1GB размером. Так вот, на N95 8gb этот пример не тормозил совершенно - поиск и "пролистывание" страниц работали красиво и без видимых задержек.

  9. #9
    Regular Contributor
    Join Date
    Jun 2008
    Posts
    51

    Re: Настройки программы

    Ну по сути base64 это те же бинарные данные, кодированные в ASCII белиберду для хранения в plain виде. Засаливать имеется в виду: на пароль применяем "соль" (уникальна для устройства, имей например), и без ключа(соли) и метода засаливания (или за-xor-ивания), разбираться можно оочень долго.

  10. #10
    Registered User
    Join Date
    Nov 2007
    Posts
    84

    Re: Настройки программы

    Quote Originally Posted by Den123 View Post
    Где-то был пример, использующий SQLite на девайсах под S60 3rd FP1. Там была база википедии Symbian больше 1GB размером. Так вот, на N95 8gb этот пример не тормозил совершенно - поиск и "пролистывание" страниц работали красиво и без видимых задержек.
    тогда поконкретнее: я имею ввиду DBMS (RDbs, RDbView итд.). Поддержка оной ведь ещё чуть-ли не из 6го симбиана тянется (возможно ошибаюсь). Так вот приходилось иметь дело с базой весом несколько сот мегабайт (кэш карт). Как только база разрасталась, отклик на запрос затягивался на несколько секунд и приложение становилось абсолютно неюзабильным..
    Last edited by JasFas0la; 2009-08-12 at 20:09.

  11. #11
    Super Contributor
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536

    Re: Настройки программы

    Нет, я именно про SQLite писал.
    Пример вот здесь.

    Встроенная поддержка SQLite появилась начиная с 3.2, а вот для 3.1 требуются особые приседания.

  12. #12
    Nokia Developer Expert
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355

    Re: Настройки программы

    Quote Originally Posted by JasFas0la View Post
    Как только база разрасталась, отклик на запрос затягивался на несколько секунд и приложение становилось абсолютно неюзабильным..
    Индексы, кстати, для ускорения запросов создавать пробовали?

  13. #13
    Registered User
    Join Date
    Nov 2007
    Posts
    84

    Re: Настройки программы

    пробовали. Стало немного быстрее, но не очень. Да и потом отказались от использования базы данных, так и не достигнув "победного конца"

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×