Устойчивость данных приложения WinForm (C #) - PullRequest
2 голосов
/ 30 июля 2009

Я полагаю, что лучшие способы «переменного краткосрочного» сопротивления в приложении ASP.NET:

  1. Переменная Sessions (Session Scope)
  2. Переменная приложения (область применения)
  3. Просмотр страницы (Page Scope)
  4. Настройки приложения (Область применения)
  5. ???

Каковы наилучшие способы «переменного кратковременного» сопротивления в приложении Windows Form:

  1. Область применения формы
  2. Область сеанса пользователя
  3. Глобальная область применения

Спасибо

Ответы [ 5 ]

3 голосов
/ 30 июля 2009

Ну, для «Области формы» вы можете просто использовать поля или свойства. Для настроек приложения и настроек сеанса вы можете использовать (статический) класс или все, что удобно.

Обратите внимание, что на самом деле нет разницы между приложением и сессией в приложении WinForms, вы больше не на сервере.

2 голосов
/ 30 июля 2009

Щелкните правой кнопкой мыши по проекту, выберите «Свойства» -> «Настройки». Вы можете редактировать постоянные поля (то есть настройки), указав имя, тип и область действия (для всего пользователя или для всего приложения).

Вы можете получить к ним доступ из кода через <Пространство имен по умолчанию> .Properties.Settings.Default.

Настройки сохраняются между запусками приложения.

Эти параметры следует использовать и для области действия формы.

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

1 голос
/ 30 июля 2009

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

альтернативный текст http://img268.imageshack.us/img268/9186/projectsettings.png

0 голосов
/ 30 июля 2009

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

Чтобы сохранить его за пределами приложения, используйте класс Properties или сохраните данные в реестре (в надлежащим образом определенном и названном месте).

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

0 голосов
/ 30 июля 2009

Для переменных, доступных только через форму, я бы просто сделал их закрытыми полями. В приложении выигрышных форм нет такого понятия, как «сессия», однако вы можете использовать CallContext для имитации сеанса, поскольку HttpContext и Session в веб-приложении основаны на этом классе.

Что-нибудь глобальное, что я мог бы хранить в самом объекте приложения или в файле конфигурации приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...