XML или SQL?

2

Я только начинаю заниматься разработкой настольных приложений и выбрал С# для этого. После создания некоторых базовых программ, я хочу получить более полезные творения для себя. Я думал о создании трекера Project Time, а также о собственной программе типа безопасного паролей. Для обоих из них требуется получение информации, которая должна быть сохранена.

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

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

Теги:
database

9 ответов

6
Лучший ответ

Я использую sqlite для настольных приложений, которым нужен хороший способ хранения реляционной информации. Множество других людей тоже.

SQLite - простой, надежный, быстрый и легкий. Есть много поставщиков данных .NET для sqlite, и там есть хороший Приложение SQLite, чтобы проверить ваш файл данных.

SQL Server [Express] подходит для "больших" приложений или приложений, которым нужны функции "реальной" базы данных SQL (например, хранимые процедуры или что-то еще). Вы можете сделать встроенный SQL Server Express, если у вас достаточно памяти на ваших целевых машинах.

XML подходит для информации о конфигурации (только для чтения), но использование его в качестве формата хранения r/w просто требует много времени в вашем отладчике.

4

SQL Server не подходит для настольных приложений. Однако, если вы хотите использовать базу данных вместо XML, вы должны использовать формат базы данных SQLite из-за не требуя сервера и требуя только одна DLL, поддерживающая как механизм БД, так и драйвер ADO.NET.

  • 0
    Знаете, я бы сказал, что вы не ответили на его вопрос ... конечно, SQLite может быть отличным вариантом, если он хочет использовать SQL ... но он все еще пытается решить это. Все голосуют за это только потому, что им нравится SQLite или что-то в этом роде?
1

Рассмотрим SQL Server Compact, который вы можете включить в свое настольное приложение.

1

Вы думаете о распространении этих? Персональное использование? Корпоративное использование?

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

Если вы хотите распространять это или не заботитесь о централизации данных, просто перейдите к XML. Там действительно ничего плохого в этом, и вам просто не нужна вся мощь, которую SQL даст вам... ценой взвинчивания дополнительных системных ресурсов, увеличения размера загрузки и кривой обучения...

0

Я не уверен, что кто-то спросил вас, что вы пытаетесь сохранить. Бывают случаи, когда собственный XML-массив имеет огромные преимущества по сравнению с реляционной моделью. Вот почему так много коммерческого развития (MarkLogic, Documentum xDB и т.д.) И разработки с открытым исходным кодом (eXist, Berkeley) начинаются вокруг нереляционных подходов.

Однако, как вы видите по предположениям, сделанным в этом потоке, большинство данных, которые разработчики считают целесообразными, могут обрабатываться RDB, и многие даже предпочитают хранить xml таким образом.

0

Это зависит от среднего/ожидаемого размера данных для вашего приложения. Для чего-то вроде безопасного пароля данные будут, вероятно, в KB, а не в диапазоне GB, а XML может быть лучшим выбором, особенно для переносимости (например, для синхронизации между машинами). Если модель данных сложна (например, более 10, значительных объектов) или хранит тысячи элементов, то более подходящей является база данных в стиле SQL.

Пример приложения, использующего зашифрованный XML для хранения: ToDoList из AbstractSpoon - источник также доступен.

Другая простая в установке база данных (1 сборка) VistaDB.net - рекомендуется, синтаксис очень совместим с MS SQL Server.

0

Итак, у вас есть множество вариантов. Сначала вы можете шифровать/дешифровать любой файл, который вам нужен, если вы используете двухсторонний алгоритм. Таким образом можно использовать XML файл.

На маршруте SQL есть несколько двигателей баз данных Light Wight SQL Server Compact Edition и SQLite, которые работают с отдельным файлом. Вы также захотите зашифровать их, если вы их использовали.

В принципе, ваши варианты открыты, было бы неплохо узнать, как работают обе системы, если вы хотите потратить время на это.

0

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

Вы должны проверить SQLite.

  • 0
    Ты шутишь? XML является / может быть отличным способом хранения данных и используется таким образом все время ...
  • 1
    Конечно, если вам нравится, чтобы ваш формат данных был более подробным, чем данные, которые вы храните.
Показать ещё 25 комментариев
0

У вас есть возможность использовать из SQL Express в верхнем конце до нулевой базы данных, например SQLLite. Они кажутся лучшими альтернативами, чем XML для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню