Основываясь на ваших примерах, вы можете использовать это регулярное выражение,
^\d+(?:'(?: +\d+"(?: +\d+\/\d+)?)?|")$
Объяснение:
^
- Начало ввода \d+
- одна или несколько цифр (?:'
- группа без захвата, за которой следует одинарная кавычка (?:
- запуск группы без захвата (?: +\d+\/\d+)?
- соответствует одному или нескольким пробелам, за которыми следуют одна или несколько цифр, затем буквенный /
, затем снова одна или несколько цифр и целое из него является необязательным, поскольку он помещается в группу без захвата, за которой следует ?
)?
- закрытие предыдущей группы без захвата, и ?
означает, что даже эта группа является необязательной |")
- Чередование со вспомогательным регистром, в котором после числа может следовать только двойная кавычка и закрытие группы $
- Конец ввода После дополнительных исследований и реализации моей собственной персистентности настроек на основе файлов XML с использованием IsolatedStorage , я обнаружил класс IsolatedStorageSettings и IsolatedStorageSettings .ApplicationSettings , который представляет собой набор ключей / значений специально для хранения пользовательских настроек приложения.
Теперь все это кажется очевидным. Конечно, в долгосрочной перспективе механизм резервного копирования и восстановления настроек с использованием серверной базы данных был бы хорошим усовершенствованием этого сохранения настроек на стороне клиента.
Если для вас важно, чтобы пользователи имели доступ к своим предпочтениям в автономном режиме, то, похоже, вам подходит изолированное хранилище. Если более важно, чтобы пользователи могли сохранять настройки, даже если они отключили изолированное хранилище (это действительно проблема? У меня возникнет соблазн позвонить по этому поводу в YAGNI, но я не очень разбираюсь в платформе Silverlight). .) тогда вам нужно разместить базу данных. Если оба важны, то вы, вероятно, смотрите на какое-то гибридное решение; используя изолированное хранилище, если оно доступно, затем возвращаясь к базе данных.
Другими словами, я думаю, что потребности вашего приложения более важны, чем некоторая абстрактная лучшая практика.
Я думаю, что в общем случае по умолчанию будет храниться на сервере; мы можем делать это только в том случае, если есть конкретные веские причины пытаться хранить данные на клиенте. Чем больше вы можете рассчитывать на хранение в среде вы можете Чем больше вы контролируете, тем больше вы рискуете.
С учетом сказанного и ставя себя на сторону аргумента «база данных», я бы спросил, какова обратная сторона базы данных? Вы упомянули об использовании XML - ваши данные только частично структурированы? Если так, почему бы не хранить XML в базе данных SQL? Создание чего-то такого простого, как правило, не считается «бременем» по большинству стандартов. Простой веб-сервис может выступать посредником между вашим клиентом Silverlight и базой данных настроек.
почему бы не хранить XML в базе данных SQL? Создание чего-то такого простого, как правило, не считается «бременем» по большинству стандартов. Простой веб-сервис может выступать посредником между вашим клиентом Silverlight и базой данных настроек. почему бы не хранить XML в базе данных SQL? Создание чего-то такого простого, как правило, не считается «бременем» по большинству стандартов. Простой веб-сервис может выступать посредником между вашим клиентом Silverlight и базой данных настроек.