Я оцениваю две объектных базы данных, db4o (http://www.db4o.com) и База данных Eloquera (http://eloquera.com) для ближайшего проекта. Я должен выбрать тот. Мое основное требование является масштабируемостью, многопользовательской поддержкой и легкой эволюцией типа для RAD.
Обменяйтесь своим опытом реального мира.
Если у Вас есть оба, можно ли сравнить эти два? Который Вы предпочитаете?
Последние 2 года я использовал DB4O, а теперь перехожу на Eloquera. Мои причины, по порядку:
Я создаю коммерческий продукт, и лицензирование DB4O на основе роялти НАМНОГО выше; DB4O сказала, что мы можем "поговорить об этом", но я очень маленький магазин разработчиков, и отдавать огромный кусок от каждой продажи, которую я делаю, просто не имеет никакого смысла, когда есть отличная альтернатива.
Я использую Db4oTool.exe для модификации своих assmeblies на этапе после сборки, и это действительно замедляет процесс сборки. Eloquera не нужно модифицировать мои сборки.
Я нашел ошибку в коде DB4O, и прошло много месяцев, прежде чем она была интегрирована в их кодовую базу. Я нашел ошибки в Eloquera, и они исправили их за день или два
DB4O еще не работает на .NET 4 (хотя у них наконец-то есть ранняя бета-версия). DB4O - это единственное, что удерживает меня от использования VS2010 (и .NET 4). Я пытался перейти на VS2010, но VS2010 автоматически конвертирует все модульные тесты в .NET 4, поэтому все мои модульные тесты, связанные с персистентностью, сразу же провалились.
DB4O на самом деле не предназначен для потокобезопасности.
В DB4O есть функции и многие API, которые явно перенесены из Java.
Robert
Если вам интересно узнать об опыте пользователей с db4o, я предлагаю вам также задать вопрос на наших форумах пользователей db4o .
Хотя db4o изначально разрабатывался для встроенного использования в приложениях с ограниченными ресурсами (и теперь очень хорошо работает на ограниченных платформах, таких как Android, CompactFramework и Silverlight), я знаю, что у нас есть много пользователей, которые с радостью используют db4o для веб-приложений.
Действительно, в db4o-bashing-post от leatrop есть некоторая правильность: ядро сервера db4o в настоящее время позволяет входить только одному потоку для хранения и запроса задач в конкретной базе данных.
Однако есть несколько способов улучшить масштабирование приложений db4o:
Поскольку затраты на установку баз данных db4o очень низкие (один вызов API), можно работать с несколькими базами данных. Вы можете использовать систему репликации db4o (dRS) для распределения объектов между несколькими базами данных. Также возможно создавать резервные копии баз данных db4o во время их работы и реплицировать эти резервные копии на несколько машин.Подход с использованием нескольких баз данных (для временных интервалов данных или для различных сценариев использования в вашем приложении) может быть очень удобен для целей резервного копирования и отладки. Вам не нужно копировать всю базу данных, если вы хотите протестировать только некоторые аспекты своего живого приложения.
Если вы все же обнаружите, что db4o недостаточно хорошо масштабируется для одновременных пользователей или размеров базы данных, вы можете позже переключиться на нашу высокопроизводительную объектную базу данных Versant VOD . Он был создан для работы в облаке и зарекомендовал себя для тысяч одновременных пользователей с многотерабайтными базами данных. VOD для .NET также поставляется с поставщиком LINQ, поэтому интерфейсы db4o и VOD совместимы.
Моя рекомендация: начните с db4o. Это самая простая объектная база данных для начала работы и разработки. Просто сохраните любой объект в одной строке кода, без настройки схем или файлов сопоставления. Используйте LINQ для запроса (или собственных запросов, если вы работаете с Java).
db4o имеет открытый исходный код, а бесплатный (под лицензией GPL).
Eloquera ( www.eloquera.com ) изначально спроектирован и разработан для использования в веб-среде и разработан как родное приложение .NET на C #.
Eloquera не была перенесена с Java, как многие другие базы данных.
Eloquera изначально как часть архитектуры поддерживает:
Я могу поспорить с Карлом относительно DB4O, самой простой базы данных на рынке, поскольку Eloquera может делать то же самое с точки зрения API.
Eloquera моложе Versant, и в ней еще есть некоторые корпоративные функции.
В прошлом месяце отдел исследований и разработок Eloquera заключил контракт с Eloquera Parallel Server, чтобы обеспечить горизонтальное масштабирование, которое, возможно, будет намного дешевле, чем VOD Versant.
Некоторые отличительные особенности