Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем хранить натсройки программы. Что бы был доступ 
:(
    Опции темы
Хоббит
Дата 22.6.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



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

Или сделать не статический класс, создавать его элемент. запускать функцию типа Load которая будет грузить настройки программы и работать с ними.
PM MAIL   Вверх
Exception
Дата 22.6.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Хоббит @  22.6.2006,  15:04 Найти цитируемый пост)
храняться


что делают - хранятся

Цитата(Хоббит @  22.6.2006,  15:04 Найти цитируемый пост)
Как организовать класс с данными натсройками, чтобы было красивше.


И чем тебе не нравится стандартный System.Configuration? 
PM   Вверх
Prehistorik
Дата 22.6.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуй работать с AppConfig... Там уже всё сделано :-) 
--------------------
Есть только один бог - Ассемблер, и С - пророк его. 
PM MAIL   Вверх
Хоббит
Дата 22.6.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



вот те раз... пояните что такое System.Comfgi и AppConfig чем они отличаються...
Мне надо хранить настройки программы типа .размеры окон .рабочая директория .настройки видимости контролов. панелей и.т.д... для удобства работы

А также надо хоранить данные проектов, которые программа создает (типа файлов) то есть почти теже настройки что и для программы, только отдельные для каждого файла проекта 
PM MAIL   Вверх
Pankon
Дата 22.6.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вначале вставь app.config
Проект -> Вставить -> Конфиг. файл

А потом смотри 
System.Configuration.ConfigurationManager.AppSettings  

Это сообщение отредактировал(а) Pankon - 22.6.2006, 17:02
PM MAIL   Вверх
mr.DUDA
Дата 22.6.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Pankon @  22.6.2006,  17:01 Найти цитируемый пост)
Вначале вставь app.config
Проект -> Вставить -> Конфиг. файл

А потом смотри 
System.Configuration.ConfigurationManager.AppSettings  

ИМХО, не катит, потому что хранить нужно информацию динамически изменяемую приложением:

Цитата(Хоббит @  22.6.2006,  16:50 Найти цитируемый пост)
Мне надо хранить настройки программы типа .размеры окон .рабочая директория .настройки видимости контролов. панелей и.т.д... для удобства работы


В таких случаях можно либо воспользоваться средствами .NET 2.0 (вроде, специальные конфиги создаются с доп. расширением ".config.user"), либо создав типизированный датасет, сохранять и загружать из него в XML-файл в директории приложения, а уже в датасете (в виде таблиц с полями) хранить хоть какие угодно настройки. Например, добавить табличку "WindowLayouts" с ключевым полем "FormName" и полями "X", "Y", "Width", "Height", "State" и т.п. Датасет можно запихнуть в статик-класс (или синглтон, как кому больше нравится) и делать Load при первом обращении на чтение, а Save - при выходе из приложения. Тогда  прочитать или записать любую настройку обязан уже класс-обёртка датасета, а приложение работает с удобным классом конфигурации. 


--------------------
user posted image
PM MAIL WWW   Вверх
Hidrag
Дата 23.6.2006, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



.... а почему про реестр никто не вспомнил или я чего то не понимаю? Разве там не удобно хранить настройки? 


--------------------
user posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 23.6.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Hidrag @  23.6.2006,  06:31 Найти цитируемый пост)
.... а почему про реестр никто не вспомнил или я чего то не понимаю? Разве там не удобно хранить настройки? 

удобно, если только не предполагается copy deployment и наличие настроек по умолчанию 


--------------------
user posted image
PM MAIL WWW   Вверх
Pankon
Дата 23.6.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Хоббит @  22.6.2006,  16:50 Найти цитируемый пост)
размеры окон
 и другие подобние вещи (например, измененный текст в текстбоксе smile) можно сохранять автоматом (mr.DUDA - воспользоваться средствами .NET).
В дизайнере -> выбрать элемент управления -> Свойства -> Данные -> Установки приложения(ApplicationSettings) -> PropertyBinding -> Вылетает окно (Установки для элемента управления) -> Выбираешь свойство (Size, Text, Location, ...) -> В дропдавн выбираешь нью -> задаешь Name -> Ок

Все  smile 

Посмотреть все используемые установки
Проект -> Свойства -> Установки
Здесь, кстати, можно задать уровень "доступа" - Пользователь или Приложение.


Студия сама пихает нужные узлы в апп.конфиг (в userSettings) и организует классы для сериализации.

 smile   

Это сообщение отредактировал(а) Pankon - 23.6.2006, 12:59
PM MAIL   Вверх
ivashkanet
Дата 23.6.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Цитата(Pankon @  23.6.2006,  12:45 Найти цитируемый пост)
В дизайнере -> выбрать элемент управления -> Свойства -> Данные -> Установки приложения(ApplicationSettings) -> PropertyBinding -> Вылетает окно (Установки для элемента управления) -> Выбираешь свойство (Size, Text, Location, ...) -> В дропдавн выбираеш нью -> задаешь Name -> Ок

Класс, а я и не знал  smile  
PM MAIL WWW ICQ   Вверх
Хоббит
Дата 23.6.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а изменять их как... например надо хранить адресс сервера БД 
PM MAIL   Вверх
ivashkanet
Дата 23.6.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Хоббит, тебе ж сказали: 
Цитата(Pankon @  23.6.2006,  12:45 Найти цитируемый пост)
Посмотреть все используемые установки
Проект -> Свойства -> Установки
Здесь, кстати, можно задать уровень "доступа" - Пользователь или Приложение.

2 Pankon, у тебя что? Студия русифицированная? 
PM MAIL WWW ICQ   Вверх
Pankon
Дата 23.6.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет 
Это я пытался переводить  smile  

Это сообщение отредактировал(а) Pankon - 23.6.2006, 13:50
PM MAIL   Вверх
mr.DUDA
Дата 23.6.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Ага, круто конечно. Только есть неудобства: если таким образом привязать размер формы к settings, то в дизайнере изменить размер не получится - при открытии формы, будут восстанавливаться настройки из settings. Другое неудобство: файл "моё_приложение.user.config" располагается в нескольких местах сразу (вот незадача), но только не в папке с приложением. Например, нажав на кнопку "Synchronize" (в окне редактирования setting-ов), получаю приаттаченный мессадж бокс. Это что же выходит, конфиг для приложения лежит в восьми директориях сразу !  smile 

З.Ы. так и не получилось привязать размер/позицию формы к сеттингам - просто ничего не сохраняется, и всё.  smile 

З.Ы.(2) а то что сделано руками, будет работать как предполагалось...  smile  

Присоединённый файл ( Кол-во скачиваний: 82 )
Присоединённый файл  shot.JPG 63,85 Kb


--------------------
user posted image
PM MAIL WWW   Вверх
Pankon
Дата 23.6.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(mr.DUDA @  23.6.2006,  14:09 Найти цитируемый пост)
круто конечно
 Согласен.

Цитата(mr.DUDA @  23.6.2006,  14:09 Найти цитируемый пост)
если таким образом привязать размер формы к settings, то в дизайнере изменить размер не получится - при открытии формы, будут восстанавливаться настройки из settings
, что, кстати, показывает, что сеттинги работают..., и именно поэтому и есть кнопочка "Synchronize".

Цитата(mr.DUDA @  23.6.2006,  14:09 Найти цитируемый пост)
лежит в восьми директориях сразу
 странно, у меня он удаляет только из "одной" директории...(но об этом позже)



Цитата(mr.DUDA @  23.6.2006,  14:09 Найти цитируемый пост)
так и не получилось привязать размер/позицию формы к сеттингам - просто ничего не сохраняется, и всё
 А как же я это сделал с первого раза smile (самому стало интересно)

как я писал выше  добираюсь до окна установок.. и выбираю свойство Location (раз уж размер, так и местоположение тоже потестим), даю имя MyLocation(Score-User), нахожу ClientSize, даю имя для "установки" MyClientSize(Score-User). Все.
Запускаю... Меняю размер и местоположение.. Закрываю... Снова запускаю - Ура - Новые установки работают.
Дизaйнер. Хм... Остались старые размеры... Хочу снова иметь размеры, как в дизайнере  smile  smile  smile 
Проект -> Свойства -> Установки -> (Сверху кнопочка ) Синхринизировать(нажимаю) -> окно "Удалить один файл где-то в "C:\Do...\Lokale Einstellungen\Anwendungsdaten\...\WindowsApplication1.vshos_Url_vvqvm5ec15fnt2kctiy1x4zdx2w5ervc\1.0.0.0\user.config"

Теперь компилирую.. Из каталога (у меня это) \bin\Release\ запускаю WindowsApplication1.exe. Проверяю.. Все работает  smile 
А вот после запуска ехе в  "C:\Do...\Lokale Einstellungen\Anwendungsdaten\...\ появился новый (что-то такое я уже сверху предпологал(см.выше)) WindowsApplication1.exe_Url_yqe2yhwgoaqgsrrlwbyhvaqxgzec1nox !!!!, где и хранится 1.0.0.0\user.config для экзешника.
А если мы теперь скопируем(или перенесем) наш экзешник (конечно с WindowsApplication1.exe.config) в другое место и запустим, то .. правильно.. появится файл установок для нового местоположения 
"C:\Do...\Lokale Einstellungen\Anwendungsdaten\...\WindowsApplication1.exe_Url_'вероятно хеш местоположения'\версия сборки\user.config"
т.е. Один узер может иметь одно приложение и настройки к нему(одни), а если такая же сборка запускается из другого каталога, то это, извините, "другое" приложение.

Ну вот и все кажется.

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

Цитата(Хоббит @  23.6.2006,  13:39 Найти цитируемый пост)
а изменять их как... например надо хранить адресс сервера БД  
 сейчас напишу, только "попью" ..
 
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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