XML против SQlite против доступа - PullRequest
5 голосов
/ 22 декабря 2009

Вопрос: Мы запустили проект для клиента, который включает в себя то, что обычно делается с базой данных.

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

Проблема в том, что весь код на стороне сервера будет другим, если я использую XML, SQlite или Access.

Я склоняюсь к SQlite, но я не знаю. Будет ли добавление базы данных в файл MS-Access лучшим решением? Если бы я поместил его в базу данных доступа, нужен ли клиенту установлен MS-Access или только MSFT MDAC? Если я использую Access DB, будет ли он работать под Linux и с Mono, или нет замены MDAC?

Ответы [ 5 ]

8 голосов
/ 22 декабря 2009

Я хотел бы рассмотреть вопрос об использовании NHibernate , вы можете подключить его к SQLite, но позже сможете обновить его до полной базы данных, не меняя большого количества кода. Если вы не заинтересованы в этом, я бы использовал SQLite напрямую над файлами XML.

4 голосов
/ 22 декабря 2009

Вам не нужно устанавливать Access для использования Jet Engine. Насколько я помню, Jet установлен со всеми последними версиями Windows. Вы можете использовать Jet (Access) with Linux. Jet требует очень мало способов управления базами данных по сравнению с альтернативами, включая SQLite.

3 голосов
/ 22 декабря 2009

Я бы использовал SQLite поверх Access - для SQLite вам просто нужно отправить библиотеки DLL, для Access вам нужен установщик (хотя я думаю, что он встроен в последние версии Windows). Также SQLite - лучшая БД.

Или вы, конечно, можете абстрагировать механизм хранения данных, используя шаблон Repository или аналогичный? Если вы хотите сохранить данные в файле, затем загрузить их и открыть из своего репозитория с помощью Linq-To-Objects, то позже вы можете просто вставить их вместо Linq-to-SQL, не изменяя код вашего клиента .

2 голосов
/ 22 декабря 2009

У вас могут быть проблемы с использованием sqlite в средах со средним уровнем доверия (например, на виртуальном хостинге). Если вы открыты для других решений, вы можете попробовать VistaDB . Он поддерживается всеми основными orm (nhibernate, openaccess, entityspaces, subsonic и многие другие ..).

1 голос
/ 22 декабря 2009

Все последние версии Windows вплоть до Windows 7 поставлялись с копией JET (механизм данных ms-access). Таким образом, вам не нужен ни mdac, ни вообще установка ms-доступа.

Вы даже можете написать сценарий Windows на чистой коробке Windows без какого-либо установленного программного обеспечения, и, таким образом, вы можете читать данные из файла mdb (ms-access).

Итак, проблема здесь не устанавливается, так как «JET» (ядро базы данных, которое использует ms-access) все равно поставляется с windows.

Я думаю, что единственным исключением или соображением здесь является то, планируете ли вы работать над 64-разрядными выпусками операционной системы и использовать внутрипроцессные 64-разрядные приложения?

Существует 64-разрядная версия ms-access для Office 2010, и, насколько я знаю, также будет отдельная загрузка для установки механизма JET (теперь называемого ACE) на 64 устройства.

Если вы планируете работать только на 32-разрядных компьютерах (или использовать 32-разрядные выпуски программного обеспечения на 64-разрядном компьютере), то вам не нужен ms-доступ, и вам не нужно устанавливать что-либо для чтения и использования mdb (ms -доступ к файлам).

Поскольку JET поставляется со всеми последними версиями Windows, ваши решения не будут основаны на установке JET (вам не нужно), вашими решениями будут другие вопросы, и если JET отвечает вашим требованиям.

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